foo*_*bar 3 haskell overloading type-inference typeclass
如果我使用+运算符,Haskell会自动推断类型类Num:
> let add x y = x + y
> :t add
add :: Num a => a -> a -> a
Run Code Online (Sandbox Code Playgroud)
这是否意味着我不能拥有一个带+运算符的多个类型类?
您不能+在同一模块中定义多个类型类(当然,这同样适用于任何其他函数名称 - 而不仅仅是+).
如果你导入多个定义的模块+(无论它是否是类型类的一部分),你需要+在导入除了其中一个之外的所有模块时隐藏,只导入其中一个作为限定条件或总是引用+限定条件.