UP | HOME

Kinds in Haskell

1 Kinds

Think of kinds as the type of a type. The * symbol represents a concrete type. A type constructor has a kind. For example, a type constructor which takes a concrete type as a type argument, has the kind * -> *. The type constructor for Tree has the kind * -> *. No value has a type Tree, but there are values which have an a type Tree Int, for instance.

We use :k to get the kind of a type.