:t
では調べられない :k
でkindを調べられる data
を使って、以下の様に型を定義したとするhsdata Id a = Id a
-- data 型 = 値
Id
が型コンストラクタ Id
が値コンストラクタ []
はリストの型コンストラクタ (,)
はタプルの型コンストラクタ Either
は型2つを包んで Either a b
を作るEitherの型コンストラクタ Maybe
型という「型コンストラクタ」を使って Maybe Int
のような「具体型」を作れる