generated at
値コンストラクタ
0個以上の引数を取って新たな値を作るもの
とは、これ以上評価されない式のこと
データ型定義の、実際に型が取りうる値の種類を指定する
右辺だけの話
data Bool = False | True = の右側の部分のこと
data Shape = Circle Float Float Float Circle
値コンストラクタの型は、ghciの :t で調べられる
上の定義だと :t Circle とすると、 Circle :: Float -> Float -> Float -> Shape が得られる
つまり、値コンストラクタは関数と見ることができる
型コンストラクタ :t では調べられない

Just a のように引数を取るものもあれば True などのように取らないものもある
Just などのように引数を取るものは、データ型の値を返す関数となる
Haskell
data Shape = Circle Float Float Float -- > :t Rectangle -- Rectangle :: Float -> Float -> Float -> Float -> Shape



フィールドに名前をつけたければレコード構文を使えばいい
hs
data Person = Person { Name :: String, age :: Int }