6

尝试编译 data-memocombinators 0.4.3,得到以下错误:

Data/MemoCombinators.hs:119:10:
    Could not deduce (Num a) arising from a use of `IntTrie.apply'
    from the context (Ord a, Bits a)

我认为Bits曾经源自Num. 也许它很糟糕并且依赖被删除了,但现在包被破坏了。有什么已知的解决方法吗?也许我正在使用一个坏版本的东西?

我暂时Num a在我的包副本中添加了函数签名,但从长远来看,这不可能是正确的。

我正在使用 GHC 7.6.1,基础是 4.6.0.0。

4

1 回答 1

9

GHC 7.6.1 (基础 4.6.0.0)的更新日志中提到了它。

该类Bits不再有Num超类。

您可以通过以下方式编写适用于 Haskell98/Haskell2010 和 GHC 的代码:

  • 每当你创建一个Bits类型的实例时,也要创建Num实例,并且
  • 每当你给一个函数、实例或类一个Bits t约束时,也要给它一个Num t约束。

有关此决定的更多信息,请参阅GHC #5593邮件列表讨论

于 2012-09-24T07:42:02.107 回答