Equals在Haskell中的基本实现

Equals在Haskell中的基本实现,haskell,Haskell,我有点像 data Example = Ex Integer 我将如何为此实现equals 我得到的最远的结果是 instance Eq Example where (Ex _) == (Ex _) = True 但这是错误的,因为这总是正确的。我可以放置一个整数的具体实例,而不是“\u1”字符,但是我必须对每个整数都这样做 谢谢大家抽出时间 但我必须对每个整数都这样做 No,因为Integer是Eqtypeclass的成员。因此,我们可以利用为整数实现的(==),从而“

我有点像

data Example =
    Ex Integer
我将如何为此实现equals

我得到的最远的结果是

instance Eq Example where 
    (Ex _) == (Ex _) = True 
但这是错误的,因为这总是正确的。我可以放置一个整数的具体实例,而不是“\u1”字符,但是我必须对每个整数都这样做

谢谢大家抽出时间

但我必须对每个整数都这样做

No,因为
Integer
Eq
typeclass的成员。因此,我们可以利用为
整数
实现的
(==)
,从而“解包”
Ex
数据构造函数,并检查参数是否相等:

instance Eq Example where 
    Ex x == Ex y = x == y
Eq
的自动实现指定,如果两个项具有相同的数据构造函数,则它们是相同的,并且参数相等(使用
(==)
函数)

data Example = Ex Integer deriving Eq