@@ -0,0 +1,71 @@
1+import nat;
2+
3+data Bool = False | True;
4+
5+infixl 5 ==, /=, ==.;
6+infixl 6 <, <=, >, >=, <., <=., >., >=.;
7+infixl 7 <<, >>;
8+infixl 8 +,-,++,+.,-.;
9+infixl 9 *,/,*.,/.;
10+
11+intToBool : Int -> Bool;
12+intToBool 0 = False;
13+intToBool x = True;
14+
15+boolOp : (a -> a -> Int) -> a -> a -> Bool;
16+boolOp op x y = intToBool (op x y);
17+
18+(+) : Int -> Int -> Int;
19+(+) = prim__addInt;
20+
21+(-) : Int -> Int -> Int;
22+(-) = prim__subInt;
23+
24+(*) : Int -> Int -> Int;
25+(*) = prim__mulInt;
26+
27+div : Int -> Int -> Int;
28+div = prim__divInt;
29+
30+(==) : Int -> Int -> Bool;
31+(==) = boolOp prim__eqInt;
32+
33+(<) : Int -> Int -> Bool;
34+(<) = boolOp prim__ltInt;
35+
36+(<=) : Int -> Int -> Bool;
37+(<=) = boolOp prim__lteInt;
38+
39+(>) : Int -> Int -> Bool;
40+(>) = boolOp prim__gtInt;
41+
42+(>=) : Int -> Int -> Bool;
43+(>=) = boolOp prim__gteInt;
44+
45+(+.) : Float -> Float -> Float;
46+(+.) = prim__addFloat;
47+
48+(-.) : Float -> Float -> Float;
49+(-.) = prim__subFloat;
50+
51+(*.) : Float -> Float -> Float;
52+(*.) = prim__mulFloat;
53+
54+(/.) : Float -> Float -> Float;
55+(/.) = prim__divFloat;
56+
57+(==.) : Float -> Float -> Bool;
58+(==.) = boolOp prim__eqFloat;
59+
60+(<.) : Float -> Float -> Bool;
61+(<.) = boolOp prim__ltFloat;
62+
63+(<=.) : Float -> Float -> Bool;
64+(<=.) = boolOp prim__lteFloat;
65+
66+(>.) : Float -> Float -> Bool;
67+(>.) = boolOp prim__gtFloat;
68+
69+(>=.) : Float -> Float -> Bool;
70+(>=.) = boolOp prim__gteFloat;
71+