型と型クラス

9.2 代数的データ型

引数のない関数は存在しない

う〜む、今まで考えてもみなかった視点です。
引数のない関数は存在しない。
一方でデータコンストラクタは引数なしもあり。
合わせて覚えておきます。

列挙型スタイルと共用体型スタイル

本文中にあったBool以外の列挙型スタイルの代数的データ型をPreludeモジュールの中で探してみました。

data  Maybe a  =  Nothing | Just a      deriving (Eq, Ord, Read, Show)
data  Either a b  =  Left a | Right b   deriving (Eq, Ord, Read, Show)
data  Ordering  =  LT | EQ | GT
          deriving (Eq, Ord, Enum, Read, Show, Bounded)


もちろん多相的な型宣言も可能なわけですね。
…いや、Maybe aやEither a bは共用体スタイルに当たりますね。