@@ -21,4 +21,86 @@ infixl 9 .;
21(.) : (b -> c) -> (a -> b) -> a -> c;
21(.) : (b -> c) -> (a -> b) -> a -> c;
22(.) f g x = f (g x);
22(.) f g x = f (g x);
24+data Bool = False | True;
26+boolElim : (x:Bool) -> a -> a -> a;
27+boolElim True t e = t;
28+boolElim False t e = e;
30+syntax if [test] then [t] else [e] = boolElim test t e;
33+infixl 6 <, <=, >, >=, <., <=., >., >=.;
35+infixl 8 +,-,++,+.,-.;
40+intToBool : Int -> Bool;
44+boolOp : (a -> a -> Int) -> a -> a -> Bool;
45+boolOp op x y = intToBool (op x y);
47+(+) : Int -> Int -> Int;
50+(-) : Int -> Int -> Int;
53+(*) : Int -> Int -> Int;
56+div : Int -> Int -> Int;
59+(==) : Int -> Int -> Bool;
60+(==) = boolOp prim__eqInt;
62+(<) : Int -> Int -> Bool;
63+(<) = boolOp prim__ltInt;
65+(<=) : Int -> Int -> Bool;
66+(<=) = boolOp prim__lteInt;
68+(>) : Int -> Int -> Bool;
69+(>) = boolOp prim__gtInt;
71+(>=) : Int -> Int -> Bool;
72+(>=) = boolOp prim__gteInt;
74+(+.) : Float -> Float -> Float;
75+(+.) = prim__addFloat;
77+(-.) : Float -> Float -> Float;
78+(-.) = prim__subFloat;
80+(*.) : Float -> Float -> Float;
81+(*.) = prim__mulFloat;
83+(/.) : Float -> Float -> Float;
84+(/.) = prim__divFloat;
86+(==.) : Float -> Float -> Bool;
87+(==.) = boolOp prim__eqFloat;
89+(<.) : Float -> Float -> Bool;
90+(<.) = boolOp prim__ltFloat;
92+(<=.) : Float -> Float -> Bool;
93+(<=.) = boolOp prim__lteFloat;
95+(>.) : Float -> Float -> Bool;
96+(>.) = boolOp prim__gtFloat;
98+(>=.) : Float -> Float -> Bool;
99+(>=.) = boolOp prim__gteFloat;
103+(++) : String -> String -> String;