类声明和实例声明之间有什么区别?

mez*_*hic 3 haskell instance typeclass

我目前正在阅读这篇文章,但老实说,我正在努力想知道什么

class Eq a where 
  (==)                  :: a -> a -> Bool
Run Code Online (Sandbox Code Playgroud)

实现,其中

instance Eq Integer where 
  x == y                =  x `integerEq` y
Run Code Online (Sandbox Code Playgroud)

没有达到。我理解第二个代码定义了对两个 Integer 类型执行相等的结果应该是什么。那么第一个的目的是什么??

Mat*_*hid 8

class声明说:“我要定义一堆现在功能将几种不同类型的工作”。该instance声明说:“这是这些功能是如何工作的这个类型”。

在您的具体示例中,class Eq表示“Eq表示具有名为==“的函数的任何类型,而instance Eq Integer表示“这就是”的==工作方式Integer