The {0} definitions in the signature and implementation are not compatible because a type representation is being hidden ...