class D a where { type U a; } class C a where { type S a; type T a; } instance C Int where { type S Int = Bool; type U Int = Bool; }