1f 1 = -1
2f (-1) = 1
3f (-2) = 2
4f (-3) = 3
5
6data Z a = Higher a a
7         | Same a a
8         | Lower a a
9
10infixr 7 `Higher`
11
12infixr 6 `Same`
13
14infixr 5 `Lower`
15
16g :: Z Int -> ()
17g (-1 `Higher` x) = ()
18g (-2 `Same` x) = ()
19g (-3 `Lower` x) = ()
20