3 # builtin operator definitions
6 prototype op prefix ~ a b : a -> b
7 overload op prefix ~ N Z
8 overload op prefix ~ Z Z
9 overload op prefix ~ R R
11 prototype op prefix ! a : a -> B
13 prototype op infix AND a : a a -> a
14 overload op infix AND N
15 overload op infix AND Z
17 prototype op infix OR a : a a -> a
18 overload op infix OR N
19 overload op infix OR Z
21 prototype op infix XOR a : a a -> a
22 overload op infix XOR N
23 overload op infix XOR Z
25 prototype op infix + a : a a -> a
30 prototype op infix - a : a a -> a
35 prototype op infix * a : a a -> a
40 prototype op infix / a : a a -> a
45 prototype op infix % a : a a -> a
49 prototype op infix > a : a a -> B
54 prototype op infix < a : a a -> B
59 prototype op infix == a : a a -> B
60 overload op infix == B
61 overload op infix == N
62 overload op infix == Z
63 overload op infix == R
64 overload op infix == Char
65 overload op infix == String
67 prototype op infix != a : a a -> B
68 overload op infix != B
69 overload op infix != N
70 overload op infix != Z
71 overload op infix != R
72 overload op infix != Char
73 overload op infix != String
75 op infix && : B B -> B
76 op infix || : B B -> B