对于一些用户定义的类型,例如下面的 Eq 类型类的实现如何工作?为 Int 或 Float 之类的东西编写实现很简单。但是,所有用户类型的包罗万象是如何完成的,因为它需要对每个可能的值构造函数进行模式匹配之类的事情?我不知道有任何语法可以做到这一点。
data Person = Person { firstName :: String
, lastName :: String
, age :: Int
} deriving (Eq)