compiler complains about overlapping instances when one is clearly more specific
class C a :: a
:: T a = A
instance C (a b) where
C = undef
instance C (T b) where
C = undef
The instance for T b
is clearly more specific than the one for a b
. So this should compile in my opinion.