Higher-kinded types
Kinds in Type Theory
Symbol Kind Examples
* Simple type. AKA nullary
type constructor or proper
type.
Int, String, Double, ...
* -> * Unary type constructor. List, Option, Future, ...
* -> * -> * Binary type constructor. Either, Function1, Map, ...
(* -> *) -> * Higher-order type operator,
higher-kinded type for
friends.
Foo[F[_]], Bar[G[_]],
Functor[F[_]], Monad[M[_]],
...