generated at
型コンストラクタ
0個以上の型を引数に取り新たな型を作るもの
型引数を1つ取って具体型を作るもの
「型引数」と「型コンストラクタ」は違うのか
型コンストラクタは :t では調べられない
:k kindを調べられる


型コンストラクタと値コンストラクタの違い
雑に言うと、右辺が型で、左辺が値やmrsekut
data を使って、以下の様に型を定義したとする
hs
data Id a = Id a -- data 型 = 値
左辺の Id が型コンストラクタ
右辺の Id が値コンストラクタ
constructorも参考




[] はリストの型コンストラクタ
(,) はタプルの型コンストラクタ
Either は型2つを包んで Either a b を作るEitherの型コンストラクタ
Maybe 型という「型コンストラクタ」を使って Maybe Int のような「具体型」を作れる


型コンストラクタと関数の類似点
部分適用ができる
いずれは具体型になる
多相型である



参考