class C a where { type T a; foo :: a; } instance C Int where { type T Int = Bool; }