我得到以下内容:
data Pair a = Pair a a
并希望将Eq类型类实例化为它.
instance Eq (Pair a) where (==) (Pair x x') = x == x'
我收到错误:
无法匹配预期类型对a - > Bool'与实际类型Bool'
我写错了什么?
您的实施不起作用,因为
(==) :: a -> a -> Bool
你假设(==)接受一个参数((Pair x x')实际上是一个参数)它实际上需要两个.因此错误,
Couldn't match expected type Pair a -> Bool' with actual type Bool'
(==)
部分应用,所以它返回,Pair a -> Bool
而预计将返回Bool.