class C a where { type T a; foo :: T a; }