我需要使用 Parsec 从整数函数中获取 Int 类型。我现在的代码是
aTerm = parens aExpression
<|> liftM GetV identifier
<|> liftM N integer
其中 N 的类型是
N :: Num a => a -> Expr a
我得到的错误是
Shane.hs:227:18:
Couldn't match expected type `Int' with actual type `Integer'
Expected type: Text.Parsec.Prim.ParsecT String u0 Identity Int
Actual type: Text.Parsec.Prim.ParsecT String u0 Identity Integer
In the second argument of `liftM', namely `integer'
In the second argument of `(<|>)', namely `liftM N integer'
Failed, modules loaded: none.
是否可以在这里提取 Int 类型?以某种方式使用 fromInteger?从 Int 更改为 Integer 不是一种选择。