Hi,
First useful use is in Typeable. In GHC 7.8 class Typeable (a::k) where ... <<==>> class Typeable (a ::**) where ... But we can't write data Foo (a::k)->(a::k)->* ... deriving Typeable