Haskell で再帰型を定義することに慣れようとしています。簡単な演習として、空でないリストのデータ型を定義するのは簡単である (そして潜在的に役立つ) と考えました。
これが私の試みです:
data NonemptyList a = Singleton a | Cons (Singleton a) (NonemptyList a)
コンパイルエラーが発生します:
スコープ外: 型コンストラクターまたはクラス `Singleton'
失敗、ロードされたモジュール: なし。
次のコードはコンパイルできますが、うまくいきません。その理由を正確に説明することはできません。
data NonemptyList a = Singleton a | Cons a (NonemptyList a)
誰かが私のためにこれを明確にすることができますか? どんなコメントでも大歓迎です。
ありがとう
ダン