データ

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,...)

てな感じ