@@ -7,7 +7,9 @@ function set(t, newK, newD, cmp) {
7
7
if ( t !== null ) {
8
8
var k = t . key ;
9
9
var c = cmp ( newK , k ) ;
10
- if ( c ) {
10
+ if ( c === 0 ) {
11
+ return Belt_internalAVLtree . updateValue ( t , newD ) ;
12
+ } else {
11
13
var l = t . left ;
12
14
var r = t . right ;
13
15
var v = t . value ;
@@ -16,8 +18,6 @@ function set(t, newK, newD, cmp) {
16
18
} else {
17
19
return Belt_internalAVLtree . bal ( l , k , v , set ( r , newK , newD , cmp ) ) ;
18
20
}
19
- } else {
20
- return Belt_internalAVLtree . updateValue ( t , newD ) ;
21
21
}
22
22
} else {
23
23
return Belt_internalAVLtree . singleton ( newK , newD ) ;
@@ -28,43 +28,43 @@ function updateU(t, newK, f, cmp) {
28
28
if ( t !== null ) {
29
29
var k = t . key ;
30
30
var c = cmp ( newK , k ) ;
31
- if ( c ) {
32
- var l = t . left ;
33
- var r = t . right ;
31
+ if ( c === 0 ) {
32
+ var match = f ( /* Some */ [ t . value ] ) ;
33
+ if ( match ) {
34
+ return Belt_internalAVLtree . updateValue ( t , match [ 0 ] ) ;
35
+ } else {
36
+ var l = t . left ;
37
+ var r = t . right ;
38
+ if ( l !== null ) {
39
+ if ( r !== null ) {
40
+ var kr = [ r . key ] ;
41
+ var vr = [ r . value ] ;
42
+ var r$1 = Belt_internalAVLtree . removeMinAuxWithRef ( r , kr , vr ) ;
43
+ return Belt_internalAVLtree . bal ( l , kr [ 0 ] , vr [ 0 ] , r$1 ) ;
44
+ } else {
45
+ return l ;
46
+ }
47
+ } else {
48
+ return r ;
49
+ }
50
+ }
51
+ } else {
52
+ var l$1 = t . left ;
53
+ var r$2 = t . right ;
34
54
var v = t . value ;
35
55
if ( c < 0 ) {
36
- var ll = updateU ( l , newK , f , cmp ) ;
37
- if ( l === ll ) {
56
+ var ll = updateU ( l$1 , newK , f , cmp ) ;
57
+ if ( l$1 === ll ) {
38
58
return t ;
39
59
} else {
40
- return Belt_internalAVLtree . bal ( ll , k , v , r ) ;
60
+ return Belt_internalAVLtree . bal ( ll , k , v , r$2 ) ;
41
61
}
42
62
} else {
43
- var rr = updateU ( r , newK , f , cmp ) ;
44
- if ( r === rr ) {
63
+ var rr = updateU ( r$2 , newK , f , cmp ) ;
64
+ if ( r$2 === rr ) {
45
65
return t ;
46
66
} else {
47
- return Belt_internalAVLtree . bal ( l , k , v , rr ) ;
48
- }
49
- }
50
- } else {
51
- var match = f ( /* Some */ [ t . value ] ) ;
52
- if ( match ) {
53
- return Belt_internalAVLtree . updateValue ( t , match [ 0 ] ) ;
54
- } else {
55
- var l$1 = t . left ;
56
- var r$1 = t . right ;
57
- if ( l$1 !== null ) {
58
- if ( r$1 !== null ) {
59
- var kr = [ r$1 . key ] ;
60
- var vr = [ r$1 . value ] ;
61
- var r$2 = Belt_internalAVLtree . removeMinAuxWithRef ( r$1 , kr , vr ) ;
62
- return Belt_internalAVLtree . bal ( l$1 , kr [ 0 ] , vr [ 0 ] , r$2 ) ;
63
- } else {
64
- return l$1 ;
65
- }
66
- } else {
67
- return r$1 ;
67
+ return Belt_internalAVLtree . bal ( l$1 , k , v , rr ) ;
68
68
}
69
69
}
70
70
}
@@ -87,39 +87,39 @@ function removeAux0(n, x, cmp) {
87
87
var v = n . key ;
88
88
var r = n . right ;
89
89
var c = cmp ( x , v ) ;
90
- if ( c ) {
91
- if ( c < 0 ) {
92
- if ( l !== null ) {
93
- var ll = removeAux0 ( l , x , cmp ) ;
94
- if ( ll === l ) {
95
- return n ;
96
- } else {
97
- return Belt_internalAVLtree . bal ( ll , v , n . value , r ) ;
98
- }
90
+ if ( c === 0 ) {
91
+ if ( l !== null ) {
92
+ if ( r !== null ) {
93
+ var kr = [ r . key ] ;
94
+ var vr = [ r . value ] ;
95
+ var r$1 = Belt_internalAVLtree . removeMinAuxWithRef ( r , kr , vr ) ;
96
+ return Belt_internalAVLtree . bal ( l , kr [ 0 ] , vr [ 0 ] , r$1 ) ;
99
97
} else {
100
- return n ;
98
+ return l ;
101
99
}
102
- } else if ( r !== null ) {
103
- var rr = removeAux0 ( r , x , cmp ) ;
104
- if ( rr === r ) {
100
+ } else {
101
+ return r ;
102
+ }
103
+ } else if ( c < 0 ) {
104
+ if ( l !== null ) {
105
+ var ll = removeAux0 ( l , x , cmp ) ;
106
+ if ( ll === l ) {
105
107
return n ;
106
108
} else {
107
- return Belt_internalAVLtree . bal ( l , v , n . value , rr ) ;
109
+ return Belt_internalAVLtree . bal ( ll , v , n . value , r ) ;
108
110
}
109
111
} else {
110
112
return n ;
111
113
}
112
- } else if ( l !== null ) {
113
- if ( r !== null ) {
114
- var kr = [ r . key ] ;
115
- var vr = [ r . value ] ;
116
- var r$1 = Belt_internalAVLtree . removeMinAuxWithRef ( r , kr , vr ) ;
117
- return Belt_internalAVLtree . bal ( l , kr [ 0 ] , vr [ 0 ] , r$1 ) ;
114
+ } else if ( r !== null ) {
115
+ var rr = removeAux0 ( r , x , cmp ) ;
116
+ if ( rr === r ) {
117
+ return n ;
118
118
} else {
119
- return l ;
119
+ return Belt_internalAVLtree . bal ( l , v , n . value , rr ) ;
120
120
}
121
121
} else {
122
- return r ;
122
+ return n ;
123
123
}
124
124
}
125
125
@@ -147,37 +147,35 @@ function splitAuxPivot(n, x, pres, cmp) {
147
147
var d = n . value ;
148
148
var r = n . right ;
149
149
var c = cmp ( x , v ) ;
150
- if ( c ) {
151
- if ( c < 0 ) {
152
- if ( l !== null ) {
153
- var match = splitAuxPivot ( l , x , pres , cmp ) ;
154
- return /* tuple */ [
155
- match [ 0 ] ,
156
- Belt_internalAVLtree . join ( match [ 1 ] , v , d , r )
157
- ] ;
158
- } else {
159
- return /* tuple */ [
160
- Belt_internalAVLtree . empty ,
161
- n
162
- ] ;
163
- }
164
- } else if ( r !== null ) {
165
- var match$1 = splitAuxPivot ( r , x , pres , cmp ) ;
150
+ if ( c === 0 ) {
151
+ pres [ 0 ] = /* Some */ [ d ] ;
152
+ return /* tuple */ [
153
+ l ,
154
+ r
155
+ ] ;
156
+ } else if ( c < 0 ) {
157
+ if ( l !== null ) {
158
+ var match = splitAuxPivot ( l , x , pres , cmp ) ;
166
159
return /* tuple */ [
167
- Belt_internalAVLtree . join ( l , v , d , match$1 [ 0 ] ) ,
168
- match$1 [ 1 ]
160
+ match [ 0 ] ,
161
+ Belt_internalAVLtree . join ( match [ 1 ] , v , d , r )
169
162
] ;
170
163
} else {
171
164
return /* tuple */ [
172
- n ,
173
- Belt_internalAVLtree . empty
165
+ Belt_internalAVLtree . empty ,
166
+ n
174
167
] ;
175
168
}
169
+ } else if ( r !== null ) {
170
+ var match$1 = splitAuxPivot ( r , x , pres , cmp ) ;
171
+ return /* tuple */ [
172
+ Belt_internalAVLtree . join ( l , v , d , match$1 [ 0 ] ) ,
173
+ match$1 [ 1 ]
174
+ ] ;
176
175
} else {
177
- pres [ 0 ] = /* Some */ [ d ] ;
178
176
return /* tuple */ [
179
- l ,
180
- r
177
+ n ,
178
+ Belt_internalAVLtree . empty
181
179
] ;
182
180
}
183
181
}
0 commit comments