输入Haskell的同义词,给出类型错误

mik*_*ney 0 haskell types ghci

我正在尝试创建一个类似于此的类型同义词:

data Result = Either String [Token]
Run Code Online (Sandbox Code Playgroud)

我遇到了困难,因为当这段代码编译时,当我尝试用[Token]创建一个Result时,haskell抱怨

    Not in scope: data constructor `Result'
Run Code Online (Sandbox Code Playgroud)

如何使用有效的构造函数定义类型同义词?!

Vic*_*tor 6

你是如何创造一个Result?正确的方法是:

如果您将其声明为data:

data Result = Result (Either String [Token])

f :: Result
f = (Result (Left "test"))
Run Code Online (Sandbox Code Playgroud)

或者,如果您声明为type:

type Result = Either String [Token]

f :: Result
f = Left "test"
Run Code Online (Sandbox Code Playgroud)