@@ -81,22 +81,32 @@ class Num a where {
8181 (*) : a -> a -> a;
8282}
8383
84−instance numInt : Num Int;
85−instance numInt = instanceNum prim__addInt prim__subInt prim__mulInt;
84+instance Num Int where {
85+ (+) = prim__addInt;
86+ (-) = prim__subInt;
87+ (*) = prim__mulInt;
88+}
8689
87−instance numFloat : Num Float;
88−instance numFloat = instanceNum prim__addFloat prim__subFloat prim__mulFloat;
90+instance Num Float where {
91+ (+) = prim__addFloat;
92+ (-) = prim__subFloat;
93+ (*) = prim__mulFloat;
94+}
8995
9096class Eq a where {
9197 (==) : a -> a -> Bool;
9298 (/=) : a -> a -> Bool;
9399}
94100
95−instance EqInt : Eq Int;
96−instance EqInt = instanceEq (boolOp prim__eqInt) (\x, y => not (x == y));
101+instance Eq Int where {
102+ (==) = boolOp prim__eqInt;
103+ (/=) x y = not (x == y);
104+}
97105
98−instance EqFloat : Eq Float;
99−instance EqFloat = instanceEq (boolOp prim__eqFloat) (\x, y => not (x == y));
106+instance Eq Float where {
107+ (==) = boolOp prim__eqFloat;
108+ (/=) x y = not (x == y);
109+}
100110
101111data Ordering = LT | EQ | GT;
102112
@@ -104,20 +114,16 @@ class Eq a => Ord a where {
104114 compare : a -> a -> Ordering;
105115}
106116
107−instance OrdInt : Ord Int;
108−instance OrdInt = instanceOrd cmpInt where {
109− cmpInt : Int -> Int -> Ordering;
110− cmpInt x y = if (x == y) then EQ else
111− if (boolOp prim__ltInt x y) then LT else
112− GT;
117+instance Ord Int where {
118+ compare x y = if (x == y) then EQ else
119+ if (boolOp prim__ltInt x y) then LT else
120+ GT;
113121}
114122
115−instance OrdFloat : Ord Float;
116−instance OrdFloat = instanceOrd cmpFloat where {
117− cmpFloat : Float -> Float -> Ordering;
118− cmpFloat x y = if (x == y) then EQ else
119− if (boolOp prim__ltFloat x y) then LT else
120− GT;
123+instance Ord Float where {
124+ compare x y = if (x == y) then EQ else
125+ if (boolOp prim__ltFloat x y) then LT else
126+ GT;
121127}
122128
123129div : Int -> Int -> Int;