如果我使用void spaceChar
查看documentation for space
建议。
但是,如果我真的尝试:
x :: Parser ()
x = void spaceChar
我得到了
* Couldn't match type `Token s0' with `Char'
arising from a use of `spaceChar'
The type variable `s0' is ambiguous
* In the first argument of `void', namely `spaceChar'
In the expression: void spaceChar
In an equation for `x': x = void spaceChar
我认为表达式是正确的,但我需要做些什么来说服类型检查器。我如何让它工作?
答案 0 :(得分:1)
ghci建议使用(Token s ~ Char, MonadParsec e s f) => f ()
类型。那一个应该工作。你在哪里得到了名字Parser
?
答案 1 :(得分:0)
我在尝试制作复制品的同时追踪了这个问题。问题有点深奥:我没有导入Control.Monad。相反,看起来像是在其他地方(不确定在哪里)拾取了void,而void的这个定义导致了该错误的发生。感谢所有试图提供帮助的人。