class A a where { type T a; } class A a => B b a where { foo :: b -> a -> T a; } main = 1;