redefinition of template parameter 'parameter'
There was a type conflict between two template definitions of parameter. You cannot use non-equivalent types when multiply defining a template parameter.