次のような他のデータ型を使用してデータ型を定義しようとしています:
data A = Something String | SomethingElse Int
data B = Another B | YetAnother A
data C = A | B
x :: [ C ]
x = [ YetAnother (SomethingElse 0), Something "Hello World" ]
しかし、これにより、タイプ B を期待しているときにタイプ A を持つことができないというエラーが表示されます。これはなぜですか?