compiler can't solve overloading
The compiler can't solve the overloading of g
in the definition of f
. With Int
instead of String
is works, so it's probably another problem with type synonyms.
class C a b :: a -> b
f :: a -> () | C a String
f a = g a ""
g :: a b -> () | C a b
g _ _ = undef