T8034.hs:6:3: error: • Couldn't match type ‘F a0’ with ‘F a’ Expected type: F a -> F a Actual type: F a0 -> F a0 NB: ‘F’ is a non-injective type family The type variable ‘a0’ is ambiguous • In the ambiguity check for ‘foo’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes When checking the class method: foo :: forall a. C a => F a -> F a In the class declaration for ‘C’