@@ -56,6 +56,10 @@ infix 4 &&, ||;
56(&&) True x = x;
56(&&) True x = x;
57(&&) False _ = False;
57(&&) False _ = False;
59infixl 5 ==, /=, ==.;
63infixl 5 ==, /=, ==.;
60infixl 6 <, <=, >, >=, <., <=., >., >=.;
64infixl 6 <, <=, >, >=, <., <=., >., >=.;
61infixl 7 <<, >>;
65infixl 7 <<, >>;
@@ -92,12 +96,26 @@ instance numInt = NumInstance prim__addInt prim__subInt prim__mulInt;
92instance numFloat : Num Float;
96instance numFloat : Num Float;
93instance numFloat = NumInstance prim__addFloat prim__subFloat prim__mulFloat;
97instance numFloat = NumInstance prim__addFloat prim__subFloat prim__mulFloat;
99+data Eq : Set -> Set where
100+ EqInstance : (eq : a -> a -> Bool) ->
101+ (neq : a -> a -> Bool) ->
104+ (==) : Eq a => a -> a -> Bool;
105+ (==) {{EqInstance eq neq}} x y = eq x y;
107+ (/=) : Eq a => a -> a -> Bool;
108+ (/=) {{EqInstance eq neq}} x y = neq x y;
110+instance EqInt : Eq Int;
111+instance EqInt = EqInstance (boolOp prim__eqInt) (\x, y => not (x == y));
113+instance EqFloat : Eq Float;
114+instance EqFloat = EqInstance (boolOp prim__eqFloat)(\x, y => not (x == y));
95div : Int -> Int -> Int;
116div : Int -> Int -> Int;
96div = prim__divInt;
117div = prim__divInt;
98−(==) : Int -> Int -> Bool;
99−(==) = boolOp prim__eqInt;
101(<) : Int -> Int -> Bool;
119(<) : Int -> Int -> Bool;
102(<) = boolOp prim__ltInt;
120(<) = boolOp prim__ltInt;
@@ -113,9 +131,6 @@ div = prim__divInt;
113(/) : Float -> Float -> Float;
131(/) : Float -> Float -> Float;
114(/) = prim__divFloat;
132(/) = prim__divFloat;
116−(==.) : Float -> Float -> Bool;
117−(==.) = boolOp prim__eqFloat;
119(<.) : Float -> Float -> Bool;
134(<.) : Float -> Float -> Bool;
120(<.) = boolOp prim__ltFloat;
135(<.) = boolOp prim__ltFloat;