Я новичок в Haskell и пытаюсь собрать простую функцию, чтобы проверить, равны ли два числа. Это компилируется, но когда я пытаюсь протестировать программу, он говорит, что это не исчерпывающее описание. Я не понимаю, как это может быть не исчерпывающим с булевой функцией? Заранее спасибо:
data Value = ConstInt Int
| Numequal Value Value
| Ctrue Bool
| Cfalse Bool
deriving (Read, Show)
eval:: Value -> Bool
eval (Numequal e1 e2) =
let x = eval e1
y = eval e2
in case (x, y) of
(i1, i2) ->
if x == y
then False
else True