比特不是来自Num?

n. *_* m. 6 haskell ghc

试图编译数据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)
Run Code Online (Sandbox Code Playgroud)

我认为Bits以前是从中衍生出来的Num.也许它很糟糕并且依赖性被删除了,但现在包装已经坏了.这有什么已知的解决方案吗?也许我正在使用一个坏版本的东西?

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

我使用的是GHC 7.6.1,基数为4.6.0.0.

ham*_*mar 9

在GHC 7.6.1(基础4.6.0.0)的更改日志中提到.

Bits班没有一个Num超了.

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

  • 每当你创建一个Bits类型的实例时,也要生成Num实例,和
  • 每当你给一个函数,实例或类一个Bits t约束时,也给它一个Num t约束.

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