HKT
- higher-kinded types, 型を受け取って型を返す型
- 具体: 値 ex.
0 - 抽象0: 具体型(proper type) ex.
Int - 抽象1: 型パラメータを持つ型, first-order type: ex.
List<T>Array<T>:* -> *Map<K, V>:* -> * -> *- 抽象2: 型パラメータを持つジェネリックな型 ex.
F<T> Mappable<F<_>>:(* -> *) -> *
Haskell
例: Functor
class Functor f where
fmap :: (a -> b) -> f a -> f bf: * -> *