type role A phantom phantom data A (x :: k) (y :: k1) -- Defined at :2:1 A :: k1 -> k2 -> * type role T phantom data T (a :: k) = forall a1. MkT a1 -- Defined at :6:1