Higher Kinded Types

( * * )Higher Rank TypesHKT

HKTOCaml 'a list HKTHaskell( List A [A] ) * * A [A]
(c.f. )

FunctorHKT使
class Functor f where
fmap :: (a -> b) -> f a -> f b
f * *


HKTOCamlhigherTypeScriptfp-ts