データ
haskellで新しい型を定義するときの方法
「data宣言」
data TConst TVar1 Tvar2 ... = DConst1 Type11 Type12...| DConst2 Type21 Type22... | ..
「data」が宣言
「TConst」が「型コンストラクタ」
「Tvar」が「型変数」
「DConst」が「データコンストラクタ」
「Typen」がそれぞれのフィールドの数と型
このTConst型のデータの作成は
DConst (value1, value2, ...)
こいつを変数にバインドするときは型指定して
foo :: TConst foo = DConst (value1, value2,...)
てな感じ