cro*_*eea 12 haskell annotations ghc
我为自己的数据类型定义了一个NumericPrelude Ring实例,但未能定义one或fromInteger.当我编译程序时,我没有得到警告,因为Ring该类具有默认的相互递归实现one和fromInteger.结果:堆栈溢出很难找到.(实际上,当使用-XRebindableSyntax时,fromIntegeron数字常量不需要是显式的,因此很难弄清楚fromInteger堆栈溢出的罪魁祸首.)
有没有办法让开发人员注释类以指示最小的完整定义?如果GHC可以对不符合此定义的实例发出警告,同时允许一组完整的默认实现,那将非常有用.如果没有,这里接受的做法是什么?开发人员是否应该保留(a?)最小的方法集而没有默认值,以便抛出适当的警告,或者我们依赖用户进行RTFM?
cro*_*eea 11
看起来这可能正在进行中.
http://ghc.haskell.org/trac/ghc/ticket/7633 (及相关:http://ghc.haskell.org/trac/ghc/ticket/6028)
看起来它将被整合到GHC 7.8.1中.
UPDATE
这是GHC 7.8中的最小编译指示.