【发布时间】:2012-02-29 20:33:27
【问题描述】:
举个例子,考虑平凡函数
f :: (Integral b) => a -> b
f x = 3 :: Int
GHC 抱怨它无法推断 (b ~ Int)。该定义与签名相匹配,因为它返回的东西是 Integral(即 Int)。为什么 GHC 会/应该强迫我使用更具体的类型签名?
谢谢
【问题讨论】:
-
这个签名说函数可以返回 any
Integral类型,这显然不是真的。
标签: haskell polymorphism