小编Eri*_*pal的帖子

使用'=='时没有(Eq a)的实例

我正在尝试为此数据类型编写Eq实例:

data Tree a b = Leaf b | Node a (Tree a b) (Tree a b)
deriving (Show)
Run Code Online (Sandbox Code Playgroud)

我写了一些我认为可行的简单代码:

instance Eq (Tree a b) where
  (Leaf x) == (Leaf y) =  x == y
  (Node val1 l1 r1) == (Node val2 l2 r2)  =  (val1 == val2) && (l1==l2) && (r1==r2)
  _  == _  = False
Run Code Online (Sandbox Code Playgroud)

但后来我得到了错误:

• No instance for (Eq a) arising from a use of ‘==’
  Possible fix: add (Eq a) to the context of the …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass

3
推荐指数
2
解决办法
257
查看次数

标签 统计

haskell ×1

typeclass ×1