我可以收到关于过度限制型签名的警告吗?

时间:2012-04-03 02:53:32

标签: haskell ghc

当我为一个可能更具多态性的函数提供类型签名时,GHC或一些lint工具可以告诉我吗?

1 个答案:

答案 0 :(得分:7)

GHC不会这样做,快速搜索Hackage什么都没有。

实现此类操作的一种简单但可能非常有效的方法是在GHCi中加载模块,使用:browse获取所有类型签名,然后加载没有任何类型签名的副本,使用{{ 1}}再次,并比较两个输出;然后只打印除括号,空格和alpha重命名之外的所有行。但是,这不会完美,特别是如果您的定义无法推断其类型。

我觉得这样的工具会在实践中出现很多误报。