无法在haskell提示中分配

时间:2013-08-17 11:27:19

标签: haskell

在GHCi提示符下,

我能够做到,

Prelude Text.Parsec> :t (oneOf "aeiou")

并获取(oneOf "aeiou") :: Stream s m Char => ParsecT s u m Char

但是当我这样做时,

let s = oneOf "aeiou"

我收到以下错误,

interactive>:36:9:
    No instance for (Stream s0 m0 Char)
      arising from a use of `oneOf'
    Possible fix: add an instance declaration for (Stream s0 m0 Char)
    In the expression: oneOf "aeiou"
    In an equation for `m': m = oneOf "aeiou"

有人可以告诉我为什么我无法分配给s?

1 个答案:

答案 0 :(得分:6)

这是行动中的monomorphism restriction

This question密切相关,但不是ghci let,但想法是一样的。