スマートコンストラクタ
#Haskell
#Haskell_idiom
バリデーション可能なコンストラクタ
実装
データコンストラクタをエクスポートしない
代わりにバリデーションをおこなう専用の関数(スマートコンストラクタ)を用意する
パターンマッチを提供するために
PatternSynonyms
を併用することが多い