blob: f455d41b6ed72b5cdcfe8cc8028126978ac4969f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
module ShouldSucceed where
data T a = D (B a) | C
data B b = X | Y b
instance (Eq a) => Eq (T a) where
(D x) == (D y) = x == y
C == C = True
a == b = False
a /= b = not (a == b)
instance (Eq b) => Eq (B b) where
X == X = True
(Y a) == (Y b) = a == b
a == b = False
a /= b = not (a == b)
|