## Rank N Kinds

2013-07-26 20:42:07 GMT

It was discussed a bit here: http://ghc.haskell.org/trac/ghc/ticket/8090 Rank N Kinds: Main Idea is: If we assume an infinite hierarchy of classifications, we have True :: Bool :: * ::(Continue reading)**::*** ::**** :: ... Bool = False, True, ... * = Bool, Sting, Maybe Int, ...**= *, *->Bool, *->(*->*), ...*** =**,**->*, (**->**)->*, ... ... RankNKinds is also a part of lambda-cube. PlyKinds is just type of**(Rank2Kinds) class Foo (a :: k) where <<==>> class Foo (a ::**) where*** is significant to work with**data and classes; more general: Rank(N)Kinds is significant to work with Rank(N-1)Kinds First useful use is in Typeable. In GHC 7.8 class Typeable (a::k) where ... <<==>> class Typeable (a ::**) where ... But we can't write