Concept:Higher-kinded polymorphism


== Headline ==
Type parameters of a higher [[kind]] than "*"
== Illustration ==
Higher-kinded polymorphism is popular in [[Language:Haskell]] with several well-known [[type class]]es being parameterized in [[type constructor]]s
rather than [[type]]s. For instance, the following important Haskell type classes use kind "*->*":
* Type class ''Functor''; see the concept of [[functor]].
* Type class ''Monad''; see the concept of [[monad]].
For comparison, many popular Haskell type classes are not higher-kinded, i.e., they are parameterized in kind "*", e.g.:
* Type class ''Show''.
* Type class ''Eq''.
== Metadata ==
* [[relatesTo::http://en.wikipedia.org/wiki/Type_class#Higher-kinded_polymorphism]]
* [[memberOf::Vocabulary:Programming]]
* [[instanceOf::Concept]]
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX