@@ -157,145 +157,142 @@ let () = M.myfun M.x
157
157
function myfun(x)
158
158
{var x$ 0 = x;
159
159
for (;;)
160
- {if (x$ 0 )
161
- {var
162
- next= x$ 0 [1 ],
163
- rev_sort=
164
- function(n,l)
165
- {if (2 === n)
166
- {if (l)
167
- {var _e_= l[2 ];
168
- if (_e_)
169
- {var
170
- tl= _e_[2 ],
171
- x2= _e_[1 ],
172
- x1= l[1 ],
173
- s= 0 < caml_int_compare(x1,x2)?[0 ,x1,[0 ,x2,0 ]]:[0 ,x2,[0 ,x1,0 ]];
174
- return [0 ,s,tl]}}}
175
- else
176
- if (3 === n && l)
177
- {var _g_= l[2 ];
178
- if (_g_)
179
- {var _h_= _g_[2 ];
180
- if (_h_)
181
- {var
182
- tl$ 1 = _h_[2 ],
183
- x3= _h_[1 ],
184
- x2$ 0 = _g_[1 ],
185
- x1$ 0 = l[1 ],
186
- s$ 0 =
187
- 0 < caml_int_compare(x1$ 0 ,x2$ 0 )
188
- ?0 < caml_int_compare(x2$ 0 ,x3)
189
- ?[0 ,x1$ 0 ,[0 ,x2$ 0 ,[0 ,x3,0 ]]]
190
- :0 < caml_int_compare(x1$ 0 ,x3)
191
- ?[0 ,x1$ 0 ,[0 ,x3,[0 ,x2$ 0 ,0 ]]]
192
- :[0 ,x3,[0 ,x1$ 0 ,[0 ,x2$ 0 ,0 ]]]
160
+ {if (! x$ 0 )return 0 ;
161
+ var
162
+ next= x$ 0 [1 ],
163
+ rev_sort=
164
+ function(n,l)
165
+ {if (2 === n)
166
+ {if (l)
167
+ {var _e_= l[2 ];
168
+ if (_e_)
169
+ {var
170
+ tl= _e_[2 ],
171
+ x2= _e_[1 ],
172
+ x1= l[1 ],
173
+ s= 0 < caml_int_compare(x1,x2)?[0 ,x1,[0 ,x2,0 ]]:[0 ,x2,[0 ,x1,0 ]];
174
+ return [0 ,s,tl]}}}
175
+ else
176
+ if (3 === n && l)
177
+ {var _g_= l[2 ];
178
+ if (_g_)
179
+ {var _h_= _g_[2 ];
180
+ if (_h_)
181
+ {var
182
+ tl$ 1 = _h_[2 ],
183
+ x3= _h_[1 ],
184
+ x2$ 0 = _g_[1 ],
185
+ x1$ 0 = l[1 ],
186
+ s$ 0 =
187
+ 0 < caml_int_compare(x1$ 0 ,x2$ 0 )
188
+ ?0 < caml_int_compare(x2$ 0 ,x3)
189
+ ?[0 ,x1$ 0 ,[0 ,x2$ 0 ,[0 ,x3,0 ]]]
193
190
:0 < caml_int_compare(x1$ 0 ,x3)
194
- ?[0 ,x2$ 0 ,[0 ,x1$ 0 ,[0 ,x3,0 ]]]
195
- :0 < caml_int_compare(x2$ 0 ,x3)
196
- ?[0 ,x2$ 0 ,[0 ,x3,[0 ,x1$ 0 ,0 ]]]
197
- :[0 ,x3,[0 ,x2$ 0 ,[0 ,x1$ 0 ,0 ]]];
198
- return [0 ,s$ 0 ,tl$ 1 ]}}}
199
- var
200
- n1= n >> 1 ,
201
- n2= n - n1 | 0 ,
202
- match = sort(n1,l),
203
- l2$ 0 = match [2 ],
204
- s1= match [1 ],
205
- match $ 0 = sort(n2,l2$ 0 ),
206
- tl$ 0 = match $ 0 [2 ],
207
- s2= match $ 0 [1 ],
208
- switch$ 0 = 0 ,
209
- l1= s1,
210
- l2= s2,
211
- accu= 0 ;
212
- for (;;)
213
- {if (l1)
214
- {if (l2)
215
- {var t2= l2[2 ],h2= l2[1 ],t1= l1[2 ],h1= l1[1 ];
216
- if (0 < caml_int_compare(h1,h2))
217
- {var accu$ 0 = [0 ,h2,accu],l2= t2,accu= accu$ 0 ;continue}
218
- var accu$ 1 = [0 ,h1,accu],l1= t1,accu= accu$ 1 ;
219
- continue}}
220
- else
221
- switch$ 0 = 1 ;
222
- break}
223
- var _f_= switch$ 0 ?rev_append(l2,accu):rev_append(l1,accu);
224
- return [0 ,_f_,tl$ 0 ]},
225
- sort=
226
- function(n,l)
227
- {if (2 === n)
228
- {if (l)
229
- {var _a_= l[2 ];
230
- if (_a_)
231
- {var
232
- tl= _a_[2 ],
233
- x2= _a_[1 ],
234
- x1= l[1 ],
235
- s= 0 < caml_int_compare(x1,x2)?[0 ,x2,[0 ,x1,0 ]]:[0 ,x1,[0 ,x2,0 ]];
236
- return [0 ,s,tl]}}}
191
+ ?[0 ,x1$ 0 ,[0 ,x3,[0 ,x2$ 0 ,0 ]]]
192
+ :[0 ,x3,[0 ,x1$ 0 ,[0 ,x2$ 0 ,0 ]]]
193
+ :0 < caml_int_compare(x1$ 0 ,x3)
194
+ ?[0 ,x2$ 0 ,[0 ,x1$ 0 ,[0 ,x3,0 ]]]
195
+ :0 < caml_int_compare(x2$ 0 ,x3)
196
+ ?[0 ,x2$ 0 ,[0 ,x3,[0 ,x1$ 0 ,0 ]]]
197
+ :[0 ,x3,[0 ,x2$ 0 ,[0 ,x1$ 0 ,0 ]]];
198
+ return [0 ,s$ 0 ,tl$ 1 ]}}}
199
+ var
200
+ n1= n >> 1 ,
201
+ n2= n - n1 | 0 ,
202
+ match = sort(n1,l),
203
+ l2$ 0 = match [2 ],
204
+ s1= match [1 ],
205
+ match $ 0 = sort(n2,l2$ 0 ),
206
+ tl$ 0 = match $ 0 [2 ],
207
+ s2= match $ 0 [1 ],
208
+ switch$ 0 = 0 ,
209
+ l1= s1,
210
+ l2= s2,
211
+ accu= 0 ;
212
+ for (;;)
213
+ {if (l1)
214
+ {if (l2)
215
+ {var t2= l2[2 ],h2= l2[1 ],t1= l1[2 ],h1= l1[1 ];
216
+ if (0 < caml_int_compare(h1,h2))
217
+ {var accu$ 0 = [0 ,h2,accu],l2= t2,accu= accu$ 0 ;continue}
218
+ var accu$ 1 = [0 ,h1,accu],l1= t1,accu= accu$ 1 ;
219
+ continue}}
237
220
else
238
- if (3 === n && l)
239
- {var _c_= l[2 ];
240
- if (_c_)
241
- {var _d_= _c_[2 ];
242
- if (_d_)
243
- {var
244
- tl$ 1 = _d_[2 ],
245
- x3= _d_[1 ],
246
- x2$ 0 = _c_[1 ],
247
- x1$ 0 = l[1 ],
248
- s$ 0 =
249
- 0 < caml_int_compare(x1$ 0 ,x2$ 0 )
221
+ switch$ 0 = 1 ;
222
+ break}
223
+ var _f_= switch$ 0 ?rev_append(l2,accu):rev_append(l1,accu);
224
+ return [0 ,_f_,tl$ 0 ]},
225
+ sort=
226
+ function(n,l)
227
+ {if (2 === n)
228
+ {if (l)
229
+ {var _a_= l[2 ];
230
+ if (_a_)
231
+ {var
232
+ tl= _a_[2 ],
233
+ x2= _a_[1 ],
234
+ x1= l[1 ],
235
+ s= 0 < caml_int_compare(x1,x2)?[0 ,x2,[0 ,x1,0 ]]:[0 ,x1,[0 ,x2,0 ]];
236
+ return [0 ,s,tl]}}}
237
+ else
238
+ if (3 === n && l)
239
+ {var _c_= l[2 ];
240
+ if (_c_)
241
+ {var _d_= _c_[2 ];
242
+ if (_d_)
243
+ {var
244
+ tl$ 1 = _d_[2 ],
245
+ x3= _d_[1 ],
246
+ x2$ 0 = _c_[1 ],
247
+ x1$ 0 = l[1 ],
248
+ s$ 0 =
249
+ 0 < caml_int_compare(x1$ 0 ,x2$ 0 )
250
+ ?0 < caml_int_compare(x1$ 0 ,x3)
251
+ ?0 < caml_int_compare(x2$ 0 ,x3)
252
+ ?[0 ,x3,[0 ,x2$ 0 ,[0 ,x1$ 0 ,0 ]]]
253
+ :[0 ,x2$ 0 ,[0 ,x3,[0 ,x1$ 0 ,0 ]]]
254
+ :[0 ,x2$ 0 ,[0 ,x1$ 0 ,[0 ,x3,0 ]]]
255
+ :0 < caml_int_compare(x2$ 0 ,x3)
250
256
?0 < caml_int_compare(x1$ 0 ,x3)
251
- ?0 < caml_int_compare(x2$ 0 ,x3)
252
- ?[0 ,x3,[0 ,x2$ 0 ,[0 ,x1$ 0 ,0 ]]]
253
- :[0 ,x2$ 0 ,[0 ,x3,[0 ,x1$ 0 ,0 ]]]
254
- :[0 ,x2$ 0 ,[0 ,x1$ 0 ,[0 ,x3,0 ]]]
255
- :0 < caml_int_compare(x2$ 0 ,x3)
256
- ?0 < caml_int_compare(x1$ 0 ,x3)
257
- ?[0 ,x3,[0 ,x1$ 0 ,[0 ,x2$ 0 ,0 ]]]
258
- :[0 ,x1$ 0 ,[0 ,x3,[0 ,x2$ 0 ,0 ]]]
259
- :[0 ,x1$ 0 ,[0 ,x2$ 0 ,[0 ,x3,0 ]]];
260
- return [0 ,s$ 0 ,tl$ 1 ]}}}
261
- var
262
- n1= n >> 1 ,
263
- n2= n - n1 | 0 ,
264
- match = rev_sort(n1,l),
265
- l2$ 0 = match [2 ],
266
- s1= match [1 ],
267
- match $ 0 = rev_sort(n2,l2$ 0 ),
268
- tl$ 0 = match $ 0 [2 ],
269
- s2= match $ 0 [1 ],
270
- switch$ 0 = 0 ,
271
- l1= s1,
272
- l2= s2,
273
- accu= 0 ;
274
- for (;;)
275
- {if (l1)
276
- {if (l2)
277
- {var t2= l2[2 ],h2= l2[1 ],t1= l1[2 ],h1= l1[1 ];
278
- if (0 < caml_int_compare(h1,h2))
279
- {var accu$ 0 = [0 ,h1,accu],l1= t1,accu= accu$ 0 ;continue}
280
- var accu$ 1 = [0 ,h2,accu],l2= t2,accu= accu$ 1 ;
281
- continue}}
282
- else
283
- switch$ 0 = 1 ;
284
- break}
285
- var _b_= switch$ 0 ?rev_append(l2,accu):rev_append(l1,accu);
286
- return [0 ,_b_,tl$ 0 ]},
287
- len= 0 ,
288
- param= l;
289
- for (;;)
290
- {if (param)
291
- {var param$ 0 = param[2 ],len$ 0 = len + 1 | 0 ,len= len$ 0 ,param= param$ 0 ;
292
- continue}
293
- break}
294
- if (2 < = len)sort(len,l);
295
- var x$ 0 = next;
296
- continue}
297
- break}
298
- return 0 }
257
+ ?[0 ,x3,[0 ,x1$ 0 ,[0 ,x2$ 0 ,0 ]]]
258
+ :[0 ,x1$ 0 ,[0 ,x3,[0 ,x2$ 0 ,0 ]]]
259
+ :[0 ,x1$ 0 ,[0 ,x2$ 0 ,[0 ,x3,0 ]]];
260
+ return [0 ,s$ 0 ,tl$ 1 ]}}}
261
+ var
262
+ n1= n >> 1 ,
263
+ n2= n - n1 | 0 ,
264
+ match = rev_sort(n1,l),
265
+ l2$ 0 = match [2 ],
266
+ s1= match [1 ],
267
+ match $ 0 = rev_sort(n2,l2$ 0 ),
268
+ tl$ 0 = match $ 0 [2 ],
269
+ s2= match $ 0 [1 ],
270
+ switch$ 0 = 0 ,
271
+ l1= s1,
272
+ l2= s2,
273
+ accu= 0 ;
274
+ for (;;)
275
+ {if (l1)
276
+ {if (l2)
277
+ {var t2= l2[2 ],h2= l2[1 ],t1= l1[2 ],h1= l1[1 ];
278
+ if (0 < caml_int_compare(h1,h2))
279
+ {var accu$ 0 = [0 ,h1,accu],l1= t1,accu= accu$ 0 ;continue}
280
+ var accu$ 1 = [0 ,h2,accu],l2= t2,accu= accu$ 1 ;
281
+ continue}}
282
+ else
283
+ switch$ 0 = 1 ;
284
+ break}
285
+ var _b_= switch$ 0 ?rev_append(l2,accu):rev_append(l1,accu);
286
+ return [0 ,_b_,tl$ 0 ]},
287
+ len= 0 ,
288
+ param= l;
289
+ for (;;)
290
+ {if (param)
291
+ {var param$ 0 = param[2 ],len$ 0 = len + 1 | 0 ,len= len$ 0 ,param= param$ 0 ;
292
+ continue}
293
+ break}
294
+ if (2 < = len)sort(len,l);
295
+ var x$ 0 = next}}
299
296
// end | }]
300
297
301
298
let % expect_test _ =
0 commit comments