【发布时间】:2013-11-21 22:03:12
【问题描述】:
嘿,
我已经为自然数定义了一个数据结构,并且想定义一个Eq 实例,以查看两个数字是否相等,但我不断收到消息:
“'Eq' 的出现模棱两可。它可以指 Main.eq 或 Prelude.eq”
你能告诉我,我可能做错了什么吗?
data Nat = Z | S Nat deriving Show
class Eq a where
(==) :: a -> a -> Bool
instance Eq Nat where
Z == Z = True
(S x) == (S y) = x == y
x == y = False
非常感谢!
【问题讨论】:
-
我确实认为您不应该定义自己的
Eq,这样class Eq a where (==) :: a -> a -> Bool就显得多余了
标签: haskell