为什么我不能
z = x?但我能做到吗?
y s = x s我是Haskell的新手,这是我在GHCi上尝试过的:
Prelude> import Happstack.Server
Prelude Happstack.Server> let x s = ok $ toResponse $ "Some string"
Prelude Happstack.Server> :t x
x :: FilterMonad Response m => t -> m Response
Prelude Happstack.Server> let y s = x s
Prelude Happstack.Server> :t y
y :: FilterMonad Response m => t -> m Response
Prelude Happstack.Server> let z = x
<interactive>:1:9:
No instance for (FilterMonad Response m0)
arising from a use of `x'发布于 2011-05-15 14:42:24
看起来像是monomorphism restriction的另一个病例。
您可以显式包含参数,即y s = x s,包含显式类型签名,或者使用-XNoMonomorphismRestriction运行GHCi。
https://stackoverflow.com/questions/6006890
复制相似问题