我正在尝试将acid-state
用于项目,但我在运行演示时遇到了麻烦。
在我的64位框中从HelloWorld.hs
运行this example collection会给我错误
acid-state.hs:26:7:
No instance for (MonadState
HelloWorldState (Update HelloWorldState))
arising from a use of `put'
Possible fix:
add an instance declaration for
(MonadState HelloWorldState (Update HelloWorldState))
In the expression: put (HelloWorldState newValue)
In an equation for `writeState':
writeState newValue = put (HelloWorldState newValue)
acid-state.hs:29:43:
No instance for (MonadReader
HelloWorldState (Query HelloWorldState))
arising from a use of `ask'
Possible fix:
add an instance declaration for
(MonadReader HelloWorldState (Query HelloWorldState))
In a stmt of a 'do' block: HelloWorldState string <- ask
In the expression:
do { HelloWorldState string <- ask;
return string }
In an equation for `queryState':
queryState
= do { HelloWorldState string <- ask;
return string }
同样的事情也发生在HelloWorldNoTH.hs
上。这些错误都不会出现在32位系统上。有什么想法在这里发生了什么?我是否未能安装(或不正确地安装)某些必需组件?
我在64位Debian Wheezy上运行“The Glorious Glasgow Haskell Compilation System, version 7.4.1
”(通过haskell-platform
包安装),使用Cabal 0.14.0
。该机器本身是64位Core i3。 32位机器(成功运行演示)的方式并不明显。
答案 0 :(得分:0)
这与你正在运行的架构完全无关(抱歉跳到结论)。
事实证明我有一些配置错误,或者可能安装了一些有冲突的cabal
库。清除我的.ghc
,然后重新安装相应的库就可以了。如果你使用Debian或类似的话:
rm -r ~/.ghc/*
cabal install acid-state