8e1070dfd8fabaae175f00a8e91d0b477e010f58
[ap2015.git] / W / examples / StdEnv.wdef
1 ># StdEnv.wdef
2 #
3 # builtin operator definitions
4 #<
5
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
10
11 prototype op prefix ! a : a -> B
12
13 prototype op infix AND a : a a -> a
14 overload op infix AND N
15 overload op infix AND Z
16
17 prototype op infix OR a : a a -> a
18 overload op infix OR N
19 overload op infix OR Z
20
21 prototype op infix XOR a : a a -> a
22 overload op infix XOR N
23 overload op infix XOR Z
24
25 prototype op infix + a : a a -> a
26 overload op infix + N
27 overload op infix + Z
28 overload op infix + R
29
30 prototype op infix - a : a a -> a
31 overload op infix - N
32 overload op infix - Z
33 overload op infix - R
34
35 prototype op infix * a : a a -> a
36 overload op infix * N
37 overload op infix * Z
38 overload op infix * R
39
40 prototype op infix / a : a a -> a
41 overload op infix / N
42 overload op infix / Z
43 overload op infix / R
44
45 prototype op infix % a : a a -> a
46 overload op infix % N
47 overload op infix % Z
48
49 prototype op infix > a : a a -> B
50 overload op infix > N
51 overload op infix > Z
52 overload op infix > R
53
54 prototype op infix < a : a a -> B
55 overload op infix < N
56 overload op infix < Z
57 overload op infix < R
58
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
66
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
74
75 op infix && : B B -> B
76 op infix || : B B -> B