如果我使用 +
运算符,Haskell 会自动推断类型类 Num
:
> let add x y = x + y
> :t add
add :: Num a => a -> a -> a
这是否意味着我不能使用
+
运算符拥有多个类型类? 最佳答案
在同一个模块中不能有多个定义 +
的类型类(当然这同样适用于任何其他函数名称 - 不仅仅是 +
)。
如果您导入多个定义 +
的模块(无论它是否作为类型类的一部分),您要么需要在导入除其中一个以外的所有模块时隐藏 +
,导入除其中之一以外的所有模块,或者始终引用 +
限定.
关于haskell - 从运算符推断类型类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7242160/