Constraint
*
以外のkindの一つprelude> :k Eq
Eq :: * -> Constraint
> :k Monad
Monad :: (* -> *) -> Constraint
Constraint
ができる data
で定義されたものは別 *
ができるprelude// 普通のもの
> :k (Bool, Int)
(Bool, Int) :: *
// 型制約種のもの
> :k (Monad Maybe, Monoid Bool)
(Monad Maybe, Monoid Bool) :: Constraint
(Constraint, Constraint, .. )
を受け取り、全てを満たす Constraint
を返す