以前の質問の続きになったので、これを新しい質問に始めました。
同様のコンストラクターで構成される2つのデータ型がある場合:
data A = X | Y | Z
data B = X | Y
どういうわけかこれを次のように表すことができる方法はありませんか?
data A = C | Z
data B = C
data C = X | Y
あなたが私がしていることを見ることができるなら-私はXをグループ化しようとしています| Yを1つのデータ型に変換し、他の複数のデータ型で使用できるようにします。コンパイラにこれを許可させることができないようです。許可する場合、XまたはYに対してパターンマッチングを行うことができず、Cのみですか?
Cが複数回宣言されたというエラーメッセージが表示されます。
タイプを使用できると思いましたが、複数のタイプを使用することはできません。
編集
私が長い道のりを宣言したとしても(以下のように)、それはまだコンパイルされず、XとYには複数の宣言があると言います:
data A = X | Y | Z
data B = X | Y