@@ -13,7 +13,19 @@ external __LOC_OF__: 'a => (string, 'a) = "%loc_LOC"
13
13
external __LINE_OF__ : 'a => (int , 'a ) = "%loc_LINE"
14
14
external __POS_OF__ : 'a => ((string , int , int , int ), 'a ) = "%loc_POS"
15
15
16
+ /* Unified operations */
17
+
18
+ external \"~+" : 'a => 'a = "%plus"
19
+ external \"~-" : 'a => 'a = "%neg"
20
+
21
+ external \"+" : ('a , 'a ) => 'a = "%add"
22
+ external \"-" : ('a , 'a ) => 'a = "%sub"
23
+ external \"*" : ('a , 'a ) => 'a = "%mul"
24
+ external \"/" : ('a , 'a ) => 'a = "%div"
25
+ external mod : ('a , 'a ) => 'a = "%mod"
26
+
16
27
/* Comparisons */
28
+ /* Note: Later comparisons will be converted to unified operations too */
17
29
18
30
external \"=" : ('a , 'a ) => bool = "%equal"
19
31
external \"<>" : ('a , 'a ) => bool = "%notequal"
@@ -37,15 +49,8 @@ external \"||": (bool, bool) => bool = "%sequor"
37
49
38
50
/* Integer operations */
39
51
40
- external \"~-" : int => int = "%negint"
41
- external \"~+" : int => int = "%identity"
42
52
external succ : int => int = "%succint"
43
53
external pred : int => int = "%predint"
44
- external \"+" : (int , int ) => int = "%addint"
45
- external \"-" : (int , int ) => int = "%subint"
46
- external \"*" : (int , int ) => int = "%mulint"
47
- external \"/" : (int , int ) => int = "%divint"
48
- external mod : (int , int ) => int = "%modint"
49
54
50
55
external land : (int , int ) => int = "%andint"
51
56
external lor : (int , int ) => int = "%orint"
0 commit comments