データの宣言 Haskellでは型をdata宣言を通じて導入、または宣言します。一般的にデータ宣言はこのように行います。 data [context =>] type tv1 ... tvi = con1 c1t1 c1c2... c1tn | ... | conm cmt1 ... cmtq [deriving] まだHaskellをあまり理解していいない方にはおそらく説明になっていないかもしれません。 上の宣言の本質は、dataキーワードを使って、付属的なコンテキストを与え、型の名前と多くのtype variableを与えることにあります。 その後、多くのconstructorが続きます。これらはtype variableかtype constantのリストになっています。最後に付属的にderivingが続きます。 他にも多くの微妙な事柄が必要です。たとえばデータコンストラクタに必要な