Generalization #2
New Kinds
Allow algebraic definitions to define new kinds
as well as new types
The primitive kind:
*
5 :: Int :: *
[Int] :: *
[] :: * ~> *
Kind Nat = Zero | Succ Nat
Zero :: Nat
Succ :: Nat ~> Nat
Succ Zero :: Nat