2012-04-03 12 views
12

當我爲一個可能更多態的函數提供了一個類型簽名時,GHC或者一些lint工具能告訴我什麼?我可以收到有關過分限制類型簽名的警告嗎?

+1

請注意,最一般的類型簽名並不總是最好的。 'asTypeOf'如果它有更通用的類型,那麼它就相當沒有意義:)而且不那麼平凡,像區域這樣的類型系統技術依賴於「未使用」的類約束。 – 2012-04-12 13:22:22

回答

7

GHC不會這樣做,並且快速搜索Hackage什麼也沒有。

實現這樣的事情是將加載GHCI模塊,使用:browse讓所有的類型簽名,然後沒有任何類型的簽名加載一個副本,再次使用:browse,並比較簡單,但可能很有效的方法兩項產出;那麼只需打印所有不同於括號,空格和字母重命名的行。但是,這不會完美地工作,特別是如果您有無法推斷其類型的定義。

我有一種感覺,這種工具會在實踐中出現很多誤報。

相關問題