0

我正在尝试开始使用acid-state一个项目,但我在运行演示时遇到了麻烦。

HelloWorld.hs在我的 64 位机器上运行这个示例集合会给我错误

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 位系统上不会出现任何错误。有什么想法吗?我是否未能安装(或安装不当)某些必需的组件?

我正在使用 CabalThe Glorious Glasgow Haskell Compilation System, version 7.4.1在 64 位 Debian Wheezy(通过软件包安装)上运行“” 。机器本身是 64 位 Core i3。32 位机器(成功运行了演示)没有明显的不同。haskell-platform0.14.0

4

1 回答 1

0

这与您正在运行的架构完全无关(很抱歉得出结论)。

原来我有一些配置错误,或者可能cabal安装了一些冲突的库。清除我的.ghc,然后重新安装适当的库就可以了。如果您使用的是 Debian 或类似设备:

rm -r ~/.ghc/*
cabal install acid-state
于 2012-11-06T14:50:02.520 回答