@grain/binaryen.ml 0.12.1 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. binaryen-archive/CHANGELOG.md +32 -0
  2. binaryen-archive/README.md +24 -0
  3. binaryen-archive/binaryen.opam +4 -4
  4. binaryen-archive/esy.lock/index.json +102 -100
  5. binaryen-archive/esy.lock/opam/{cmdliner.1.0.4 → cmdliner.1.1.0}/opam +17 -20
  6. binaryen-archive/esy.lock/opam/{ocaml-lsp-server.1.9.1 → ocaml-lsp-server.1.10.3}/opam +4 -4
  7. binaryen-archive/esy.lock/opam/{ocamlbuild.0.14.0 → ocamlbuild.0.14.1}/opam +18 -15
  8. binaryen-archive/esy.lock/opam/ocamlformat.0.20.1/opam +2 -0
  9. binaryen-archive/esy.lock/opam/{ppxlib.0.24.0 → ppxlib.0.25.0}/opam +4 -4
  10. binaryen-archive/esy.lock/opam/stdlib-shims.0.3.0/opam +1 -1
  11. binaryen-archive/esy.lock/opam/uchar.0.0.2/opam +1 -1
  12. binaryen-archive/esy.lock/opam/uutf.1.0.3/opam +36 -0
  13. binaryen-archive/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.1_opam_override/files/winpatch.patch +11 -0
  14. binaryen-archive/esy.lock/overrides/{opam__s__ocamlbuild_opam__c__0.14.0_opam_override → opam__s__ocamlbuild_opam__c__0.14.1_opam_override}/package.json +5 -3
  15. binaryen-archive/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.3_opam_override/files/findlib.patch +14 -0
  16. binaryen-archive/esy.lock/overrides/opam__s__uchar_opam__c__0.0.2_opam_override/files/winpatch.patch +11 -0
  17. binaryen-archive/esy.lock/overrides/opam__s__uchar_opam__c__0.0.2_opam_override/package.json +11 -0
  18. binaryen-archive/js/binaryen.es5.js +363 -5
  19. binaryen-archive/js/dune +1 -1
  20. binaryen-archive/js/export.ml +0 -3
  21. binaryen-archive/js/expression.ml +161 -0
  22. binaryen-archive/js/literal.ml +0 -1
  23. binaryen-archive/js/module.ml +6 -9
  24. binaryen-archive/js/op.ml +0 -223
  25. binaryen-archive/js/prelude.js +2 -11
  26. binaryen-archive/js/type.ml +0 -9
  27. binaryen-archive/package.json +4 -4
  28. binaryen-archive/src/binaryen_stubs_expressions.c +250 -0
  29. binaryen-archive/src/binaryen_stubs_features.c +24 -0
  30. binaryen-archive/src/element_segment.ml +0 -1
  31. binaryen-archive/src/export.ml +0 -2
  32. binaryen-archive/src/expression.ml +94 -63
  33. binaryen-archive/src/function.ml +0 -6
  34. binaryen-archive/src/global.ml +0 -2
  35. binaryen-archive/src/literal.ml +0 -3
  36. binaryen-archive/src/module.ml +17 -9
  37. binaryen-archive/src/settings.ml +0 -6
  38. binaryen-archive/src/type.ml +0 -1
  39. binaryen-archive/test/config/ocamlopt_flags.ml +8 -1
  40. binaryen-archive/test/test.expected +8 -0
  41. binaryen-archive/test/test.ml +44 -22
  42. binaryen-archive/virtual/element_segment.mli +0 -4
  43. binaryen-archive/virtual/export.mli +0 -15
  44. binaryen-archive/virtual/expression.mli +93 -115
  45. binaryen-archive/virtual/function.mli +0 -12
  46. binaryen-archive/virtual/global.mli +0 -8
  47. binaryen-archive/virtual/import.mli +0 -4
  48. binaryen-archive/virtual/literal.mli +0 -5
  49. binaryen-archive/virtual/module.mli +4 -29
  50. binaryen-archive/virtual/op.mli +0 -315
  51. binaryen-archive/virtual/settings.mli +0 -17
  52. binaryen-archive/virtual/table.mli +0 -3
  53. binaryen-archive/virtual/type.mli +0 -11
  54. binaryen-archive/esy.lock/opam/uutf.1.0.2/opam +0 -40
  55. binaryen-archive/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch +0 -463
  56. binaryen-archive/js/postlude.js +0 -2
@@ -1,633 +1,318 @@
1
1
  type t
2
2
 
3
3
  val clz_int32 : t
4
-
5
4
  val ctz_int32 : t
6
-
7
5
  val popcnt_int32 : t
8
-
9
6
  val neg_float32 : t
10
-
11
7
  val abs_float32 : t
12
-
13
8
  val ceil_float32 : t
14
-
15
9
  val floor_float32 : t
16
-
17
10
  val trunc_float32 : t
18
-
19
11
  val nearest_float32 : t
20
-
21
12
  val sqrt_float32 : t
22
-
23
13
  val eq_z_int32 : t
24
-
25
14
  val clz_int64 : t
26
-
27
15
  val ctz_int64 : t
28
-
29
16
  val popcnt_int64 : t
30
-
31
17
  val neg_float64 : t
32
-
33
18
  val abs_float64 : t
34
-
35
19
  val ceil_float64 : t
36
-
37
20
  val floor_float64 : t
38
-
39
21
  val trunc_float64 : t
40
-
41
22
  val nearest_float64 : t
42
-
43
23
  val sqrt_float64 : t
44
-
45
24
  val eq_z_int64 : t
46
-
47
25
  val extend_s_int32 : t
48
-
49
26
  val extend_u_int32 : t
50
-
51
27
  val wrap_int64 : t
52
-
53
28
  val trunc_s_float32_to_int32 : t
54
-
55
29
  val trunc_s_float32_to_int64 : t
56
-
57
30
  val trunc_u_float32_to_int32 : t
58
-
59
31
  val trunc_u_float32_to_int64 : t
60
-
61
32
  val trunc_s_float64_to_int32 : t
62
-
63
33
  val trunc_s_float64_to_int64 : t
64
-
65
34
  val trunc_u_float64_to_int32 : t
66
-
67
35
  val trunc_u_float64_to_int64 : t
68
-
69
36
  val reinterpret_float32 : t
70
-
71
37
  val reinterpret_float64 : t
72
-
73
38
  val convert_s_int32_to_float32 : t
74
-
75
39
  val convert_s_int32_to_float64 : t
76
-
77
40
  val convert_u_int32_to_float32 : t
78
-
79
41
  val convert_u_int32_to_float64 : t
80
-
81
42
  val convert_s_int64_to_float32 : t
82
-
83
43
  val convert_s_int64_to_float64 : t
84
-
85
44
  val convert_u_int64_to_float32 : t
86
-
87
45
  val convert_u_int64_to_float64 : t
88
-
89
46
  val promote_float32 : t
90
-
91
47
  val demote_float64 : t
92
-
93
48
  val reinterpret_int32 : t
94
-
95
49
  val reinterpret_int64 : t
96
-
97
50
  val extend_s8_int32 : t
98
-
99
51
  val extend_s16_int32 : t
100
-
101
52
  val extend_s8_int64 : t
102
-
103
53
  val extend_s16_int64 : t
104
-
105
54
  val extend_s32_int64 : t
106
-
107
55
  val add_int32 : t
108
-
109
56
  val sub_int32 : t
110
-
111
57
  val mul_int32 : t
112
-
113
58
  val div_s_int32 : t
114
-
115
59
  val div_u_int32 : t
116
-
117
60
  val rem_s_int32 : t
118
-
119
61
  val rem_u_int32 : t
120
-
121
62
  val and_int32 : t
122
-
123
63
  val or_int32 : t
124
-
125
64
  val xor_int32 : t
126
-
127
65
  val shl_int32 : t
128
-
129
66
  val shr_u_int32 : t
130
-
131
67
  val shr_s_int32 : t
132
-
133
68
  val rot_l_int32 : t
134
-
135
69
  val rot_r_int32 : t
136
-
137
70
  val eq_int32 : t
138
-
139
71
  val ne_int32 : t
140
-
141
72
  val lt_s_int32 : t
142
-
143
73
  val lt_u_int32 : t
144
-
145
74
  val le_s_int32 : t
146
-
147
75
  val le_u_int32 : t
148
-
149
76
  val gt_s_int32 : t
150
-
151
77
  val gt_u_int32 : t
152
-
153
78
  val ge_s_int32 : t
154
-
155
79
  val ge_u_int32 : t
156
-
157
80
  val add_int64 : t
158
-
159
81
  val sub_int64 : t
160
-
161
82
  val mul_int64 : t
162
-
163
83
  val div_s_int64 : t
164
-
165
84
  val div_u_int64 : t
166
-
167
85
  val rem_s_int64 : t
168
-
169
86
  val rem_u_int64 : t
170
-
171
87
  val and_int64 : t
172
-
173
88
  val or_int64 : t
174
-
175
89
  val xor_int64 : t
176
-
177
90
  val shl_int64 : t
178
-
179
91
  val shr_u_int64 : t
180
-
181
92
  val shr_s_int64 : t
182
-
183
93
  val rot_l_int64 : t
184
-
185
94
  val rot_r_int64 : t
186
-
187
95
  val eq_int64 : t
188
-
189
96
  val ne_int64 : t
190
-
191
97
  val lt_s_int64 : t
192
-
193
98
  val lt_u_int64 : t
194
-
195
99
  val le_s_int64 : t
196
-
197
100
  val le_u_int64 : t
198
-
199
101
  val gt_s_int64 : t
200
-
201
102
  val gt_u_int64 : t
202
-
203
103
  val ge_s_int64 : t
204
-
205
104
  val ge_u_int64 : t
206
-
207
105
  val add_float32 : t
208
-
209
106
  val sub_float32 : t
210
-
211
107
  val mul_float32 : t
212
-
213
108
  val div_float32 : t
214
-
215
109
  val copy_sign_float32 : t
216
-
217
110
  val min_float32 : t
218
-
219
111
  val max_float32 : t
220
-
221
112
  val eq_float32 : t
222
-
223
113
  val ne_float32 : t
224
-
225
114
  val lt_float32 : t
226
-
227
115
  val le_float32 : t
228
-
229
116
  val gt_float32 : t
230
-
231
117
  val ge_float32 : t
232
-
233
118
  val add_float64 : t
234
-
235
119
  val sub_float64 : t
236
-
237
120
  val mul_float64 : t
238
-
239
121
  val div_float64 : t
240
-
241
122
  val copy_sign_float64 : t
242
-
243
123
  val min_float64 : t
244
-
245
124
  val max_float64 : t
246
-
247
125
  val eq_float64 : t
248
-
249
126
  val ne_float64 : t
250
-
251
127
  val lt_float64 : t
252
-
253
128
  val le_float64 : t
254
-
255
129
  val gt_float64 : t
256
-
257
130
  val ge_float64 : t
258
-
259
131
  val atomic_rmw_add : t
260
-
261
132
  val atomic_rmw_sub : t
262
-
263
133
  val atomic_rmw_and : t
264
-
265
134
  val atomic_rmw_or : t
266
-
267
135
  val atomic_rmw_xor : t
268
-
269
136
  val atomic_rmw_xchg : t
270
-
271
137
  val trunc_sat_s_float32_to_int32 : t
272
-
273
138
  val trunc_sat_s_float32_to_int64 : t
274
-
275
139
  val trunc_sat_u_float32_to_int32 : t
276
-
277
140
  val trunc_sat_u_float32_to_int64 : t
278
-
279
141
  val trunc_sat_s_float64_to_int32 : t
280
-
281
142
  val trunc_sat_s_float64_to_int64 : t
282
-
283
143
  val trunc_sat_u_float64_to_int32 : t
284
-
285
144
  val trunc_sat_u_float64_to_int64 : t
286
-
287
145
  val splat_vec_i8x16 : t
288
-
289
146
  val extract_lane_s_vec_i8x16 : t
290
-
291
147
  val extract_lane_u_vec_i8x16 : t
292
-
293
148
  val replace_lane_vec_i8x16 : t
294
-
295
149
  val splat_vec_i16x8 : t
296
-
297
150
  val extract_lane_s_vec_i16x8 : t
298
-
299
151
  val extract_lane_u_vec_i16x8 : t
300
-
301
152
  val replace_lane_vec_i16x8 : t
302
-
303
153
  val splat_vec_i32x4 : t
304
-
305
154
  val extract_lane_vec_i32x4 : t
306
-
307
155
  val replace_lane_vec_i32x4 : t
308
-
309
156
  val splat_vec_i64x2 : t
310
-
311
157
  val extract_lane_vec_i64x2 : t
312
-
313
158
  val replace_lane_vec_i64x2 : t
314
-
315
159
  val splat_vec_f32x4 : t
316
-
317
160
  val extract_lane_vec_f32x4 : t
318
-
319
161
  val replace_lane_vec_f32x4 : t
320
-
321
162
  val splat_vec_f64x2 : t
322
-
323
163
  val extract_lane_vec_f64x2 : t
324
-
325
164
  val replace_lane_vec_f64x2 : t
326
-
327
165
  val eq_vec_i8x16 : t
328
-
329
166
  val ne_vec_i8x16 : t
330
-
331
167
  val lt_s_vec_i8x16 : t
332
-
333
168
  val lt_u_vec_i8x16 : t
334
-
335
169
  val gt_s_vec_i8x16 : t
336
-
337
170
  val gt_u_vec_i8x16 : t
338
-
339
171
  val le_s_vec_i8x16 : t
340
-
341
172
  val le_u_vec_i8x16 : t
342
-
343
173
  val ge_s_vec_i8x16 : t
344
-
345
174
  val ge_u_vec_i8x16 : t
346
-
347
175
  val eq_vec_i16x8 : t
348
-
349
176
  val ne_vec_i16x8 : t
350
-
351
177
  val lt_s_vec_i16x8 : t
352
-
353
178
  val lt_u_vec_i16x8 : t
354
-
355
179
  val gt_s_vec_i16x8 : t
356
-
357
180
  val gt_u_vec_i16x8 : t
358
-
359
181
  val le_s_vec_i16x8 : t
360
-
361
182
  val le_u_vec_i16x8 : t
362
-
363
183
  val ge_s_vec_i16x8 : t
364
-
365
184
  val ge_u_vec_i16x8 : t
366
-
367
185
  val eq_vec_i32x4 : t
368
-
369
186
  val ne_vec_i32x4 : t
370
-
371
187
  val lt_s_vec_i32x4 : t
372
-
373
188
  val lt_u_vec_i32x4 : t
374
-
375
189
  val gt_s_vec_i32x4 : t
376
-
377
190
  val gt_u_vec_i32x4 : t
378
-
379
191
  val le_s_vec_i32x4 : t
380
-
381
192
  val le_u_vec_i32x4 : t
382
-
383
193
  val ge_s_vec_i32x4 : t
384
-
385
194
  val ge_u_vec_i32x4 : t
386
-
387
195
  val eq_vec_f32x4 : t
388
-
389
196
  val ne_vec_f32x4 : t
390
-
391
197
  val lt_vec_f32x4 : t
392
-
393
198
  val gt_vec_f32x4 : t
394
-
395
199
  val le_vec_f32x4 : t
396
-
397
200
  val ge_vec_f32x4 : t
398
-
399
201
  val eq_vec_f64x2 : t
400
-
401
202
  val ne_vec_f64x2 : t
402
-
403
203
  val lt_vec_f64x2 : t
404
-
405
204
  val gt_vec_f64x2 : t
406
-
407
205
  val le_vec_f64x2 : t
408
-
409
206
  val ge_vec_f64x2 : t
410
-
411
207
  val not_vec128 : t
412
-
413
208
  val and_vec128 : t
414
-
415
209
  val or_vec128 : t
416
-
417
210
  val xor_vec128 : t
418
-
419
211
  val and_not_vec128 : t
420
-
421
212
  val bitselect_vec128 : t
422
-
423
213
  val abs_vec_i8x16 : t
424
-
425
214
  val neg_vec_i8x16 : t
426
-
427
215
  val all_true_vec_i8x16 : t
428
-
429
216
  val bitmask_vec_i8x16 : t
430
-
431
217
  val shl_vec_i8x16 : t
432
-
433
218
  val shr_s_vec_i8x16 : t
434
-
435
219
  val shr_u_vec_i8x16 : t
436
-
437
220
  val add_vec_i8x16 : t
438
-
439
221
  val add_sat_s_vec_i8x16 : t
440
-
441
222
  val add_sat_u_vec_i8x16 : t
442
-
443
223
  val sub_vec_i8x16 : t
444
-
445
224
  val sub_sat_s_vec_i8x16 : t
446
-
447
225
  val sub_sat_u_vec_i8x16 : t
448
-
449
226
  val min_s_vec_i8x16 : t
450
-
451
227
  val min_u_vec_i8x16 : t
452
-
453
228
  val max_s_vec_i8x16 : t
454
-
455
229
  val max_u_vec_i8x16 : t
456
-
457
230
  val avgr_u_vec_i8x16 : t
458
-
459
231
  val abs_vec_i16x8 : t
460
-
461
232
  val neg_vec_i16x8 : t
462
-
463
233
  val all_true_vec_i16x8 : t
464
-
465
234
  val bitmask_vec_i16x8 : t
466
-
467
235
  val shl_vec_i16x8 : t
468
-
469
236
  val shr_s_vec_i16x8 : t
470
-
471
237
  val shr_u_vec_i16x8 : t
472
-
473
238
  val add_vec_i16x8 : t
474
-
475
239
  val add_sat_s_vec_i16x8 : t
476
-
477
240
  val add_sat_u_vec_i16x8 : t
478
-
479
241
  val sub_vec_i16x8 : t
480
-
481
242
  val sub_sat_s_vec_i16x8 : t
482
-
483
243
  val sub_sat_u_vec_i16x8 : t
484
-
485
244
  val mul_vec_i16x8 : t
486
-
487
245
  val min_s_vec_i16x8 : t
488
-
489
246
  val min_u_vec_i16x8 : t
490
-
491
247
  val max_s_vec_i16x8 : t
492
-
493
248
  val max_u_vec_i16x8 : t
494
-
495
249
  val avgr_u_vec_i16x8 : t
496
-
497
250
  val abs_vec_i32x4 : t
498
-
499
251
  val neg_vec_i32x4 : t
500
-
501
252
  val all_true_vec_i32x4 : t
502
-
503
253
  val bitmask_vec_i32x4 : t
504
-
505
254
  val shl_vec_i32x4 : t
506
-
507
255
  val shr_s_vec_i32x4 : t
508
-
509
256
  val shr_u_vec_i32x4 : t
510
-
511
257
  val add_vec_i32x4 : t
512
-
513
258
  val sub_vec_i32x4 : t
514
-
515
259
  val mul_vec_i32x4 : t
516
-
517
260
  val min_s_vec_i32x4 : t
518
-
519
261
  val min_u_vec_i32x4 : t
520
-
521
262
  val max_s_vec_i32x4 : t
522
-
523
263
  val max_u_vec_i32x4 : t
524
-
525
264
  val dot_s_vec_i16x8_to_vec_i32x4 : t
526
-
527
265
  val neg_vec_i64x2 : t
528
-
529
266
  val shl_vec_i64x2 : t
530
-
531
267
  val shr_s_vec_i64x2 : t
532
-
533
268
  val shr_u_vec_i64x2 : t
534
-
535
269
  val add_vec_i64x2 : t
536
-
537
270
  val sub_vec_i64x2 : t
538
-
539
271
  val mul_vec_i64x2 : t
540
-
541
272
  val abs_vec_f32x4 : t
542
-
543
273
  val neg_vec_f32x4 : t
544
-
545
274
  val sqrt_vec_f32x4 : t
546
-
547
275
  val add_vec_f32x4 : t
548
-
549
276
  val sub_vec_f32x4 : t
550
-
551
277
  val mul_vec_f32x4 : t
552
-
553
278
  val div_vec_f32x4 : t
554
-
555
279
  val min_vec_f32x4 : t
556
-
557
280
  val max_vec_f32x4 : t
558
-
559
281
  val p_min_vec_f32x4 : t
560
-
561
282
  val p_max_vec_f32x4 : t
562
-
563
283
  val ceil_vec_f32x4 : t
564
-
565
284
  val floor_vec_f32x4 : t
566
-
567
285
  val trunc_vec_f32x4 : t
568
-
569
286
  val nearest_vec_f32x4 : t
570
-
571
287
  val abs_vec_f64x2 : t
572
-
573
288
  val neg_vec_f64x2 : t
574
-
575
289
  val sqrt_vec_f64x2 : t
576
-
577
290
  val add_vec_f64x2 : t
578
-
579
291
  val sub_vec_f64x2 : t
580
-
581
292
  val mul_vec_f64x2 : t
582
-
583
293
  val div_vec_f64x2 : t
584
-
585
294
  val min_vec_f64x2 : t
586
-
587
295
  val max_vec_f64x2 : t
588
-
589
296
  val p_min_vec_f64x2 : t
590
-
591
297
  val p_max_vec_f64x2 : t
592
-
593
298
  val ceil_vec_f64x2 : t
594
-
595
299
  val floor_vec_f64x2 : t
596
-
597
300
  val trunc_vec_f64x2 : t
598
-
599
301
  val nearest_vec_f64x2 : t
600
-
601
302
  val trunc_sat_s_vec_f32x4_to_vec_i32x4 : t
602
-
603
303
  val trunc_sat_u_vec_f32x4_to_vec_i32x4 : t
604
-
605
304
  val convert_s_vec_i32x4_to_vec_f32x4 : t
606
-
607
305
  val convert_u_vec_i32x4_to_vec_f32x4 : t
608
-
609
306
  val narrow_s_vec_i16x8_to_vec_i8x16 : t
610
-
611
307
  val narrow_u_vec_i16x8_to_vec_i8x16 : t
612
-
613
308
  val narrow_s_vec_i32x4_to_vec_i16x8 : t
614
-
615
309
  val narrow_u_vec_i32x4_to_vec_i16x8 : t
616
-
617
310
  val swizzle_vec8x16 : t
618
-
619
311
  val ref_is_null : t
620
-
621
312
  val ref_is_func : t
622
-
623
313
  val ref_is_data : t
624
-
625
314
  val ref_is_i31 : t
626
-
627
315
  val ref_as_non_null : t
628
-
629
316
  val ref_as_func : t
630
-
631
317
  val ref_as_data : t
632
-
633
318
  val ref_as_i31 : t
@@ -1,35 +1,18 @@
1
1
  val get_optimize_level : unit -> int
2
-
3
2
  val set_optimize_level : int -> unit
4
-
5
3
  val get_shrink_level : unit -> int
6
-
7
4
  val set_shrink_level : int -> unit
8
-
9
5
  val get_debug_info : unit -> bool
10
-
11
6
  val set_debug_info : bool -> unit
12
-
13
7
  val get_low_memory_unused : unit -> bool
14
-
15
8
  val set_low_memory_unused : bool -> unit
16
-
17
9
  val get_pass_argument : string -> string
18
-
19
10
  val set_pass_argument : string -> string -> unit
20
-
21
11
  val get_always_inline_max_size : unit -> int
22
-
23
12
  val set_always_inline_max_size : int -> unit
24
-
25
13
  val get_flexible_inline_max_size : unit -> int
26
-
27
14
  val set_flexible_inline_max_size : int -> unit
28
-
29
15
  val get_one_caller_inline_max_size : unit -> int
30
-
31
16
  val set_one_caller_inline_max_size : int -> unit
32
-
33
17
  val set_colors_enabled : bool -> unit
34
-
35
18
  val are_colors_enabled : unit -> bool
@@ -11,9 +11,6 @@ val add_active_element_segment :
11
11
  Element_segment.t
12
12
 
13
13
  val remove_element_segment : Module.t -> string -> unit
14
-
15
14
  val get_num_element_segments : Module.t -> int
16
-
17
15
  val get_element_segment : Module.t -> string -> Element_segment.t
18
-
19
16
  val get_element_segment_by_index : Module.t -> int -> Element_segment.t
@@ -1,25 +1,14 @@
1
1
  type t
2
2
 
3
3
  val none : t
4
-
5
4
  val int32 : t
6
-
7
5
  val int64 : t
8
-
9
6
  val float32 : t
10
-
11
7
  val float64 : t
12
-
13
8
  val vec128 : t
14
-
15
9
  val funcref : t
16
-
17
10
  val externref : t
18
-
19
11
  val unreachable : t
20
-
21
12
  val auto : t
22
-
23
13
  val create : t array -> t
24
-
25
14
  val expand : t -> t array