基本上我已经创建了一个具有三个属性的类型,我们称之为“Foo”
type Foo = Foo Att1 Att2 Att3
每个属性都是 3 个值之一,我用这种格式声明了每个属性:
data Att1 = A | B | C
现在,在对何时使用“数据”或“类型”之间的区别进行了一些猜测之后,我尝试制作 Foo 的 2D 列表:
type fooList = fooList [[Foo A A A, Foo B A C], [Foo C A B, Foo B B A]]
编辑:当我组装这个列表时,我也会遇到同样的错误
data fooList = fooList [[Foo A A A, Foo B A C], [Foo C A B, Foo B B A]]
这在编译时导致两个主要错误:
Not in scope: type constructor or class ‘A’
A data constructor of that name is in scope; did you mean DataKinds?
和
Illegal Type ["Copy of foolist"]. Perhaps you intended to use DataKinds
我在哪里错了?我或多或少地尝试跟随 learnyouahaskell 到发球台,但无论我尝试了多少种方法,我都会不断收到类似的错误。