gpt4 book ai didi

haskell - Haskell 的最小完整定义注释

转载 作者:行者123 更新时间:2023-12-02 01:08:32 26 4
gpt4 key购买 nike

我定义了一个NumericPrelude我自己的数据类型的 Ring 实例,但未能定义 onefromInteger。当我编译该程序时,我没有收到任何警告,因为 Ring 类具有 onefromInteger 的默认相互递归实现>。结果是:很难发现堆栈溢出。 (事实上​​,当使用 -XRebindableSyntax 时,数字常量上的 fromInteger 不需要是显式的,因此很难找出 fromInteger 是堆栈溢出的罪魁祸首。)

开发人员是否可以通过注释类来指示最小完整定义?如果 GHC 能够对不符合此定义的实例发出警告,同时允许完整的默认实现集,那将非常有帮助。如果不是,这里公认的做法是什么?开发人员是否应该保留(a?)最小的方法集而不使用默认值,以便抛出适当的警告,或者我们是否依赖用户使用 RTFM?

最佳答案

看起来这可能正在进行中。

http://ghc.haskell.org/trac/ghc/ticket/7633(及相关:http://ghc.haskell.org/trac/ghc/ticket/6028)

看起来它将集成到 GHC 7.8.1 中。

更新

这是minimal pragma在 GHC 7.8 中。

关于haskell - Haskell 的最小完整定义注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17689622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com