为什么此Haskell语句在GHCi中有效,但无法编译?

时间:2018-12-24 07:47:22

标签: haskell unicode

在GHCi中,以下工作非常花哨:

let (≠) = (/=)

但是尝试从源文件编译它会导致错误:

(≠) = (/=)

这是错误,供参考:

“由于使用'/ ='而产生的歧义类型变量'a0'阻止了约束'(Eq a0)'的求解。”

我在做什么错了?

1 个答案:

答案 0 :(得分:6)

您需要添加类型签名,否则Haskell尝试分配一种特定类型,但是由于类型不明确而感到困惑。

(≠) :: Eq a => a -> a -> Bool
(≠) = (/=)