酸状态示例错误

时间:2012-11-03 19:45:26

标签: haskell compiler-errors acid-state

我正在尝试将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位机器(成功运行演示)的方式并不明显。

1 个答案:

答案 0 :(得分:0)

这与你正在运行的架构完全无关(抱歉跳到结论)。

事实证明我有一些配置错误,或者可能安装了一些有冲突的cabal库。清除我的.ghc,然后重新安装相应的库就可以了。如果你使用Debian或类似的话:

rm -r ~/.ghc/*
cabal install acid-state