haskell - 无法解析data / newtype声明中的数据构造函数:[Int Int Int]

时间:2016-03-06 05:24:53

标签: haskell

我正在尝试声明一个Either类型列表的数据类型。

data EitherInts = [Either Int Int]

但是当我尝试编译这种类型时,我收到一个错误:

Cannot parse data constructor in a data/newtype declaration: [Either Int Int]

我不知道为什么。我做错了什么?

1 个答案:

答案 0 :(得分:9)

data用于定义新的代数数据类型,每个数据类型都必须有自己的构造函数。所以你可以写

data EitherInts = EitherInts [Either Int Int]

但你可能并不是这个意思:你想要某种类型的同义词。最简单的是类型别名:

type EitherInts = [Either Int Int]

的行为与[Either Int Int]完全相同 - 它只是该现有类型的新缩写名称。