![](/img/trans.png)
[英]Best practices with monad transformers : to hide or not to hide 'liftIO'
[英]Snap Monad, LiftIO and ghc 7.4.1
我正在尝试使用ghc 7.0.4和7.4.1一起工作的一些代码。
在我看来,从Snap内部访问IO的旧方法不再进行类型检查。
在ghc 7.0.4中,有文献记载的IO编译方式。
a :: Snap ()
a = liftIO fireTheMissiles
http://hackage.haskell.org/packages/archive/snap-core/0.8.1/doc/html/Snap-Core.html
在GHC 7.4.1中,
No instance for (MonadIO Snap)
arising from a use of `liftIO'
Possible fix: add an instance declaration for (MonadIO Snap)
我很好奇周围会发生什么有吸引力的工作。
我的猜测是您的某些软件包的版本有冲突(可能是transformers
)。 当您尝试使用版本0.3时,可能会针对其他版本(可能是0.2.2)构建了Snap。 结果,您的范围内没有MonadIO
实例(从0.3开始)。 这只是一个猜测,但是我已经看到同一件事发生了很多次。
避免这种情况的最简单方法之一是使代码无效化。 如果您尝试使用同一软件包的不同版本,cabal会警告您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.