@tellahq/rescript 10.1.0-alpha.2 → 10.1.4-republish-2
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.
- package/CHANGELOG.md +204 -2
- package/README.md +1 -1
- package/darwinarm64/bsb_helper.exe +0 -0
- package/darwinarm64/bsc.exe +0 -0
- package/darwinarm64/ninja.exe +0 -0
- package/darwinarm64/rescript.exe +0 -0
- package/docs/docson/build-schema.json +497 -516
- package/lib/4.06.1/bsb_helper.ml +6 -1
- package/lib/4.06.1/rescript.ml +1414 -1191
- package/lib/4.06.1/whole_compiler.ml +69844 -69069
- package/lib/es6/belt_internalBuckets.js +13 -13
- package/lib/es6/caml_float.js +5 -5
- package/lib/es6/caml_format.js +1 -1
- package/lib/es6/caml_int64.js +1 -1
- package/lib/es6/caml_obj.js +26 -6
- package/lib/es6/complex.js +4 -4
- package/lib/es6/js.js +3 -0
- package/lib/es6/js_promise2.js +16 -0
- package/lib/es6/jsxPPXReactSupport.js +26 -0
- package/lib/js/belt_internalBuckets.js +13 -13
- package/lib/js/caml_float.js +5 -5
- package/lib/js/caml_format.js +1 -1
- package/lib/js/caml_int64.js +1 -1
- package/lib/js/caml_obj.js +26 -6
- package/lib/js/complex.js +4 -4
- package/lib/js/js.js +3 -0
- package/lib/js/js_promise2.js +14 -0
- package/lib/js/jsxPPXReactSupport.js +24 -0
- package/package.json +2 -1
- package/scripts/buildNinjaBinary.js +29 -0
- package/scripts/install.js +7 -3
- package/scripts/installUtils.js +9 -1
- package/scripts/rescript_arg.js +2 -4
- package/scripts/rescript_format.js +73 -39
- package/win32/refmt.exe +0 -0
- package/darwin/bsb_helper.exe +0 -0
- package/darwin/bsc.exe +0 -0
- package/darwin/ninja.COPYING +0 -202
- package/darwin/ninja.exe +0 -0
- package/darwin/rescript.exe +0 -0
- package/darwinarm64/ninja.COPYING +0 -202
- package/freebsd/ninja.COPYING +0 -202
- package/lib/ocaml/arg.cmi +0 -0
- package/lib/ocaml/arg.cmt +0 -0
- package/lib/ocaml/arg.cmti +0 -0
- package/lib/ocaml/arg.ml +0 -359
- package/lib/ocaml/arg.mli +0 -185
- package/lib/ocaml/array.cmi +0 -0
- package/lib/ocaml/array.cmt +0 -0
- package/lib/ocaml/array.cmti +0 -0
- package/lib/ocaml/array.ml +0 -307
- package/lib/ocaml/array.mli +0 -275
- package/lib/ocaml/arrayLabels.cmi +0 -0
- package/lib/ocaml/arrayLabels.cmt +0 -0
- package/lib/ocaml/arrayLabels.cmti +0 -0
- package/lib/ocaml/arrayLabels.ml +0 -307
- package/lib/ocaml/arrayLabels.mli +0 -276
- package/lib/ocaml/belt.cmi +0 -0
- package/lib/ocaml/belt.cmt +0 -0
- package/lib/ocaml/belt.ml +0 -352
- package/lib/ocaml/belt_Array.cmi +0 -0
- package/lib/ocaml/belt_Array.cmt +0 -0
- package/lib/ocaml/belt_Array.cmti +0 -0
- package/lib/ocaml/belt_Array.ml +0 -525
- package/lib/ocaml/belt_Array.mli +0 -707
- package/lib/ocaml/belt_Float.cmi +0 -0
- package/lib/ocaml/belt_Float.cmt +0 -0
- package/lib/ocaml/belt_Float.cmti +0 -0
- package/lib/ocaml/belt_Float.ml +0 -50
- package/lib/ocaml/belt_Float.mli +0 -106
- package/lib/ocaml/belt_HashMap.cmi +0 -0
- package/lib/ocaml/belt_HashMap.cmt +0 -0
- package/lib/ocaml/belt_HashMap.cmti +0 -0
- package/lib/ocaml/belt_HashMap.ml +0 -226
- package/lib/ocaml/belt_HashMap.mli +0 -436
- package/lib/ocaml/belt_HashMapInt.cmi +0 -0
- package/lib/ocaml/belt_HashMapInt.cmt +0 -0
- package/lib/ocaml/belt_HashMapInt.cmti +0 -0
- package/lib/ocaml/belt_HashMapInt.ml +0 -206
- package/lib/ocaml/belt_HashMapInt.mli +0 -50
- package/lib/ocaml/belt_HashMapString.cmi +0 -0
- package/lib/ocaml/belt_HashMapString.cmt +0 -0
- package/lib/ocaml/belt_HashMapString.cmti +0 -0
- package/lib/ocaml/belt_HashMapString.ml +0 -206
- package/lib/ocaml/belt_HashMapString.mli +0 -50
- package/lib/ocaml/belt_HashSet.cmi +0 -0
- package/lib/ocaml/belt_HashSet.cmt +0 -0
- package/lib/ocaml/belt_HashSet.cmti +0 -0
- package/lib/ocaml/belt_HashSet.ml +0 -196
- package/lib/ocaml/belt_HashSet.mli +0 -125
- package/lib/ocaml/belt_HashSetInt.cmi +0 -0
- package/lib/ocaml/belt_HashSetInt.cmt +0 -0
- package/lib/ocaml/belt_HashSetInt.cmti +0 -0
- package/lib/ocaml/belt_HashSetInt.ml +0 -155
- package/lib/ocaml/belt_HashSetInt.mli +0 -74
- package/lib/ocaml/belt_HashSetString.cmi +0 -0
- package/lib/ocaml/belt_HashSetString.cmt +0 -0
- package/lib/ocaml/belt_HashSetString.cmti +0 -0
- package/lib/ocaml/belt_HashSetString.ml +0 -156
- package/lib/ocaml/belt_HashSetString.mli +0 -74
- package/lib/ocaml/belt_Id.cmi +0 -0
- package/lib/ocaml/belt_Id.cmt +0 -0
- package/lib/ocaml/belt_Id.cmti +0 -0
- package/lib/ocaml/belt_Id.ml +0 -133
- package/lib/ocaml/belt_Id.mli +0 -171
- package/lib/ocaml/belt_Int.cmi +0 -0
- package/lib/ocaml/belt_Int.cmt +0 -0
- package/lib/ocaml/belt_Int.cmti +0 -0
- package/lib/ocaml/belt_Int.ml +0 -50
- package/lib/ocaml/belt_Int.mli +0 -103
- package/lib/ocaml/belt_List.cmi +0 -0
- package/lib/ocaml/belt_List.cmt +0 -0
- package/lib/ocaml/belt_List.cmti +0 -0
- package/lib/ocaml/belt_List.ml +0 -803
- package/lib/ocaml/belt_List.mli +0 -844
- package/lib/ocaml/belt_Map.cmi +0 -0
- package/lib/ocaml/belt_Map.cmt +0 -0
- package/lib/ocaml/belt_Map.cmti +0 -0
- package/lib/ocaml/belt_Map.ml +0 -170
- package/lib/ocaml/belt_Map.mli +0 -496
- package/lib/ocaml/belt_MapDict.cmi +0 -0
- package/lib/ocaml/belt_MapDict.cmt +0 -0
- package/lib/ocaml/belt_MapDict.cmti +0 -0
- package/lib/ocaml/belt_MapDict.ml +0 -278
- package/lib/ocaml/belt_MapDict.mli +0 -268
- package/lib/ocaml/belt_MapInt.cmi +0 -0
- package/lib/ocaml/belt_MapInt.cmt +0 -0
- package/lib/ocaml/belt_MapInt.cmti +0 -0
- package/lib/ocaml/belt_MapInt.ml +0 -169
- package/lib/ocaml/belt_MapInt.mli +0 -187
- package/lib/ocaml/belt_MapString.cmi +0 -0
- package/lib/ocaml/belt_MapString.cmt +0 -0
- package/lib/ocaml/belt_MapString.cmti +0 -0
- package/lib/ocaml/belt_MapString.ml +0 -169
- package/lib/ocaml/belt_MapString.mli +0 -187
- package/lib/ocaml/belt_MutableMap.cmi +0 -0
- package/lib/ocaml/belt_MutableMap.cmt +0 -0
- package/lib/ocaml/belt_MutableMap.cmti +0 -0
- package/lib/ocaml/belt_MutableMap.ml +0 -241
- package/lib/ocaml/belt_MutableMap.mli +0 -145
- package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
- package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
- package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
- package/lib/ocaml/belt_MutableMapInt.ml +0 -172
- package/lib/ocaml/belt_MutableMapInt.mli +0 -135
- package/lib/ocaml/belt_MutableMapString.cmi +0 -0
- package/lib/ocaml/belt_MutableMapString.cmt +0 -0
- package/lib/ocaml/belt_MutableMapString.cmti +0 -0
- package/lib/ocaml/belt_MutableMapString.ml +0 -172
- package/lib/ocaml/belt_MutableMapString.mli +0 -135
- package/lib/ocaml/belt_MutableQueue.cmi +0 -0
- package/lib/ocaml/belt_MutableQueue.cmt +0 -0
- package/lib/ocaml/belt_MutableQueue.cmti +0 -0
- package/lib/ocaml/belt_MutableQueue.ml +0 -222
- package/lib/ocaml/belt_MutableQueue.mli +0 -116
- package/lib/ocaml/belt_MutableSet.cmi +0 -0
- package/lib/ocaml/belt_MutableSet.cmt +0 -0
- package/lib/ocaml/belt_MutableSet.cmti +0 -0
- package/lib/ocaml/belt_MutableSet.ml +0 -371
- package/lib/ocaml/belt_MutableSet.mli +0 -617
- package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
- package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
- package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
- package/lib/ocaml/belt_MutableSetInt.ml +0 -342
- package/lib/ocaml/belt_MutableSetInt.mli +0 -124
- package/lib/ocaml/belt_MutableSetString.cmi +0 -0
- package/lib/ocaml/belt_MutableSetString.cmt +0 -0
- package/lib/ocaml/belt_MutableSetString.cmti +0 -0
- package/lib/ocaml/belt_MutableSetString.ml +0 -342
- package/lib/ocaml/belt_MutableSetString.mli +0 -124
- package/lib/ocaml/belt_MutableStack.cmi +0 -0
- package/lib/ocaml/belt_MutableStack.cmt +0 -0
- package/lib/ocaml/belt_MutableStack.cmti +0 -0
- package/lib/ocaml/belt_MutableStack.ml +0 -106
- package/lib/ocaml/belt_MutableStack.mli +0 -63
- package/lib/ocaml/belt_Option.cmi +0 -0
- package/lib/ocaml/belt_Option.cmt +0 -0
- package/lib/ocaml/belt_Option.cmti +0 -0
- package/lib/ocaml/belt_Option.ml +0 -93
- package/lib/ocaml/belt_Option.mli +0 -270
- package/lib/ocaml/belt_Range.cmi +0 -0
- package/lib/ocaml/belt_Range.cmt +0 -0
- package/lib/ocaml/belt_Range.cmti +0 -0
- package/lib/ocaml/belt_Range.ml +0 -76
- package/lib/ocaml/belt_Range.mli +0 -114
- package/lib/ocaml/belt_Result.cmi +0 -0
- package/lib/ocaml/belt_Result.cmt +0 -0
- package/lib/ocaml/belt_Result.cmti +0 -0
- package/lib/ocaml/belt_Result.ml +0 -75
- package/lib/ocaml/belt_Result.mli +0 -205
- package/lib/ocaml/belt_Set.cmi +0 -0
- package/lib/ocaml/belt_Set.cmt +0 -0
- package/lib/ocaml/belt_Set.cmti +0 -0
- package/lib/ocaml/belt_Set.cppo.ml +0 -205
- package/lib/ocaml/belt_Set.cppo.mli +0 -153
- package/lib/ocaml/belt_Set.ml +0 -164
- package/lib/ocaml/belt_Set.mli +0 -523
- package/lib/ocaml/belt_SetDict.cmi +0 -0
- package/lib/ocaml/belt_SetDict.cmt +0 -0
- package/lib/ocaml/belt_SetDict.cmti +0 -0
- package/lib/ocaml/belt_SetDict.ml +0 -237
- package/lib/ocaml/belt_SetDict.mli +0 -567
- package/lib/ocaml/belt_SetInt.cmi +0 -0
- package/lib/ocaml/belt_SetInt.cmt +0 -0
- package/lib/ocaml/belt_SetInt.cmti +0 -0
- package/lib/ocaml/belt_SetInt.ml +0 -201
- package/lib/ocaml/belt_SetInt.mli +0 -151
- package/lib/ocaml/belt_SetString.cmi +0 -0
- package/lib/ocaml/belt_SetString.cmt +0 -0
- package/lib/ocaml/belt_SetString.cmti +0 -0
- package/lib/ocaml/belt_SetString.ml +0 -201
- package/lib/ocaml/belt_SetString.mli +0 -151
- package/lib/ocaml/belt_SortArray.cmi +0 -0
- package/lib/ocaml/belt_SortArray.cmt +0 -0
- package/lib/ocaml/belt_SortArray.cmti +0 -0
- package/lib/ocaml/belt_SortArray.ml +0 -322
- package/lib/ocaml/belt_SortArray.mli +0 -146
- package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
- package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
- package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
- package/lib/ocaml/belt_SortArrayInt.ml +0 -263
- package/lib/ocaml/belt_SortArrayInt.mli +0 -93
- package/lib/ocaml/belt_SortArrayString.cmi +0 -0
- package/lib/ocaml/belt_SortArrayString.cmt +0 -0
- package/lib/ocaml/belt_SortArrayString.cmti +0 -0
- package/lib/ocaml/belt_SortArrayString.ml +0 -263
- package/lib/ocaml/belt_SortArrayString.mli +0 -93
- package/lib/ocaml/belt_internalAVLset.cmt +0 -0
- package/lib/ocaml/belt_internalAVLset.cmti +0 -0
- package/lib/ocaml/belt_internalAVLset.ml +0 -665
- package/lib/ocaml/belt_internalAVLset.mli +0 -124
- package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
- package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
- package/lib/ocaml/belt_internalAVLtree.ml +0 -762
- package/lib/ocaml/belt_internalAVLtree.mli +0 -215
- package/lib/ocaml/belt_internalBuckets.cmt +0 -0
- package/lib/ocaml/belt_internalBuckets.cmti +0 -0
- package/lib/ocaml/belt_internalBuckets.ml +0 -218
- package/lib/ocaml/belt_internalBuckets.mli +0 -57
- package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
- package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
- package/lib/ocaml/belt_internalBucketsType.ml +0 -59
- package/lib/ocaml/belt_internalBucketsType.mli +0 -46
- package/lib/ocaml/belt_internalMapInt.cmt +0 -0
- package/lib/ocaml/belt_internalMapInt.ml +0 -227
- package/lib/ocaml/belt_internalMapString.cmt +0 -0
- package/lib/ocaml/belt_internalMapString.ml +0 -227
- package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
- package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
- package/lib/ocaml/belt_internalSetBuckets.ml +0 -157
- package/lib/ocaml/belt_internalSetBuckets.mli +0 -47
- package/lib/ocaml/belt_internalSetInt.cmt +0 -0
- package/lib/ocaml/belt_internalSetInt.ml +0 -129
- package/lib/ocaml/belt_internalSetString.cmt +0 -0
- package/lib/ocaml/belt_internalSetString.ml +0 -129
- package/lib/ocaml/belt_internals.cmti +0 -0
- package/lib/ocaml/belt_internals.mli +0 -79
- package/lib/ocaml/buffer.cmi +0 -0
- package/lib/ocaml/buffer.cmt +0 -0
- package/lib/ocaml/buffer.cmti +0 -0
- package/lib/ocaml/buffer.ml +0 -250
- package/lib/ocaml/buffer.mli +0 -149
- package/lib/ocaml/bytes.cmi +0 -0
- package/lib/ocaml/bytes.cmt +0 -0
- package/lib/ocaml/bytes.cmti +0 -0
- package/lib/ocaml/bytes.ml +0 -431
- package/lib/ocaml/bytes.mli +0 -430
- package/lib/ocaml/bytesLabels.cmi +0 -0
- package/lib/ocaml/bytesLabels.cmt +0 -0
- package/lib/ocaml/bytesLabels.cmti +0 -0
- package/lib/ocaml/bytesLabels.ml +0 -428
- package/lib/ocaml/bytesLabels.mli +0 -276
- package/lib/ocaml/callback.cmi +0 -0
- package/lib/ocaml/callback.cmt +0 -0
- package/lib/ocaml/callback.cmti +0 -0
- package/lib/ocaml/callback.ml +0 -20
- package/lib/ocaml/callback.mli +0 -34
- package/lib/ocaml/camlinternalLazy.cmi +0 -0
- package/lib/ocaml/camlinternalLazy.cmt +0 -0
- package/lib/ocaml/camlinternalLazy.cmti +0 -0
- package/lib/ocaml/camlinternalLazy.ml +0 -89
- package/lib/ocaml/camlinternalLazy.mli +0 -27
- package/lib/ocaml/camlinternalMod.cmi +0 -0
- package/lib/ocaml/camlinternalMod.cmt +0 -0
- package/lib/ocaml/camlinternalMod.cmti +0 -0
- package/lib/ocaml/camlinternalMod.ml +0 -21
- package/lib/ocaml/camlinternalMod.mli +0 -25
- package/lib/ocaml/char.cmi +0 -0
- package/lib/ocaml/char.cmt +0 -0
- package/lib/ocaml/char.cmti +0 -0
- package/lib/ocaml/char.ml +0 -76
- package/lib/ocaml/char.mli +0 -72
- package/lib/ocaml/complex.cmi +0 -0
- package/lib/ocaml/complex.cmt +0 -0
- package/lib/ocaml/complex.cmti +0 -0
- package/lib/ocaml/complex.ml +0 -87
- package/lib/ocaml/complex.mli +0 -86
- package/lib/ocaml/digest.cmi +0 -0
- package/lib/ocaml/digest.cmt +0 -0
- package/lib/ocaml/digest.cmti +0 -0
- package/lib/ocaml/digest.ml +0 -66
- package/lib/ocaml/digest.mli +0 -68
- package/lib/ocaml/dom.cmi +0 -0
- package/lib/ocaml/dom.cmt +0 -0
- package/lib/ocaml/dom.ml +0 -296
- package/lib/ocaml/dom_storage.cmi +0 -0
- package/lib/ocaml/dom_storage.cmt +0 -0
- package/lib/ocaml/dom_storage.ml +0 -22
- package/lib/ocaml/dom_storage2.cmi +0 -0
- package/lib/ocaml/dom_storage2.cmt +0 -0
- package/lib/ocaml/dom_storage2.ml +0 -11
- package/lib/ocaml/filename.cmi +0 -0
- package/lib/ocaml/filename.cmt +0 -0
- package/lib/ocaml/filename.cmti +0 -0
- package/lib/ocaml/filename.ml +0 -233
- package/lib/ocaml/filename.mli +0 -134
- package/lib/ocaml/genlex.cmi +0 -0
- package/lib/ocaml/genlex.cmt +0 -0
- package/lib/ocaml/genlex.cmti +0 -0
- package/lib/ocaml/genlex.ml +0 -201
- package/lib/ocaml/genlex.mli +0 -73
- package/lib/ocaml/hashmap.cppo.ml +0 -214
- package/lib/ocaml/hashmap.cppo.mli +0 -54
- package/lib/ocaml/hashset.cppo.ml +0 -165
- package/lib/ocaml/hashset.cppo.mli +0 -77
- package/lib/ocaml/hashtbl.cmi +0 -0
- package/lib/ocaml/hashtbl.cmt +0 -0
- package/lib/ocaml/hashtbl.cmti +0 -0
- package/lib/ocaml/hashtbl.ml +0 -541
- package/lib/ocaml/hashtbl.mli +0 -411
- package/lib/ocaml/hashtblLabels.cmi +0 -0
- package/lib/ocaml/hashtblLabels.cmt +0 -0
- package/lib/ocaml/hashtblLabels.ml +0 -130
- package/lib/ocaml/int32.cmi +0 -0
- package/lib/ocaml/int32.cmt +0 -0
- package/lib/ocaml/int32.cmti +0 -0
- package/lib/ocaml/int32.ml +0 -64
- package/lib/ocaml/int32.mli +0 -186
- package/lib/ocaml/int64.cmi +0 -0
- package/lib/ocaml/int64.cmt +0 -0
- package/lib/ocaml/int64.cmti +0 -0
- package/lib/ocaml/int64.ml +0 -72
- package/lib/ocaml/int64.mli +0 -197
- package/lib/ocaml/internal_map.cppo.ml +0 -230
- package/lib/ocaml/internal_set.cppo.ml +0 -134
- package/lib/ocaml/js.cmi +0 -0
- package/lib/ocaml/js.cmt +0 -0
- package/lib/ocaml/js.ml +0 -313
- package/lib/ocaml/js_OO.cmi +0 -0
- package/lib/ocaml/js_OO.cmt +0 -0
- package/lib/ocaml/js_OO.ml +0 -180
- package/lib/ocaml/js_array.cmi +0 -0
- package/lib/ocaml/js_array.cmt +0 -0
- package/lib/ocaml/js_array.ml +0 -970
- package/lib/ocaml/js_array2.cmi +0 -0
- package/lib/ocaml/js_array2.cmt +0 -0
- package/lib/ocaml/js_array2.ml +0 -1065
- package/lib/ocaml/js_bigint.cmi +0 -0
- package/lib/ocaml/js_bigint.cmt +0 -0
- package/lib/ocaml/js_bigint.ml +0 -3
- package/lib/ocaml/js_cast.cmi +0 -0
- package/lib/ocaml/js_cast.cmt +0 -0
- package/lib/ocaml/js_cast.cmti +0 -0
- package/lib/ocaml/js_cast.ml +0 -29
- package/lib/ocaml/js_cast.mli +0 -45
- package/lib/ocaml/js_console.cmi +0 -0
- package/lib/ocaml/js_console.cmt +0 -0
- package/lib/ocaml/js_console.ml +0 -51
- package/lib/ocaml/js_date.cmi +0 -0
- package/lib/ocaml/js_date.cmt +0 -0
- package/lib/ocaml/js_date.ml +0 -1263
- package/lib/ocaml/js_dict.cmi +0 -0
- package/lib/ocaml/js_dict.cmt +0 -0
- package/lib/ocaml/js_dict.cmti +0 -0
- package/lib/ocaml/js_dict.ml +0 -114
- package/lib/ocaml/js_dict.mli +0 -152
- package/lib/ocaml/js_exn.cmi +0 -0
- package/lib/ocaml/js_exn.cmt +0 -0
- package/lib/ocaml/js_exn.cmti +0 -0
- package/lib/ocaml/js_exn.ml +0 -102
- package/lib/ocaml/js_exn.mli +0 -79
- package/lib/ocaml/js_float.cmi +0 -0
- package/lib/ocaml/js_float.cmt +0 -0
- package/lib/ocaml/js_float.ml +0 -294
- package/lib/ocaml/js_global.cmi +0 -0
- package/lib/ocaml/js_global.cmt +0 -0
- package/lib/ocaml/js_global.ml +0 -185
- package/lib/ocaml/js_int.cmi +0 -0
- package/lib/ocaml/js_int.cmt +0 -0
- package/lib/ocaml/js_int.ml +0 -158
- package/lib/ocaml/js_json.cmi +0 -0
- package/lib/ocaml/js_json.cmt +0 -0
- package/lib/ocaml/js_json.cmti +0 -0
- package/lib/ocaml/js_json.ml +0 -195
- package/lib/ocaml/js_json.mli +0 -244
- package/lib/ocaml/js_list.cmi +0 -0
- package/lib/ocaml/js_list.cmt +0 -0
- package/lib/ocaml/js_list.cmti +0 -0
- package/lib/ocaml/js_list.ml +0 -174
- package/lib/ocaml/js_list.mli +0 -72
- package/lib/ocaml/js_map.cmi +0 -0
- package/lib/ocaml/js_map.cmt +0 -0
- package/lib/ocaml/js_map.ml +0 -3
- package/lib/ocaml/js_mapperRt.cmi +0 -0
- package/lib/ocaml/js_mapperRt.cmt +0 -0
- package/lib/ocaml/js_mapperRt.cmti +0 -0
- package/lib/ocaml/js_mapperRt.ml +0 -50
- package/lib/ocaml/js_mapperRt.mli +0 -44
- package/lib/ocaml/js_math.cmi +0 -0
- package/lib/ocaml/js_math.cmt +0 -0
- package/lib/ocaml/js_math.ml +0 -626
- package/lib/ocaml/js_null.cmi +0 -0
- package/lib/ocaml/js_null.cmt +0 -0
- package/lib/ocaml/js_null.cmti +0 -0
- package/lib/ocaml/js_null.ml +0 -57
- package/lib/ocaml/js_null.mli +0 -87
- package/lib/ocaml/js_null_undefined.cmi +0 -0
- package/lib/ocaml/js_null_undefined.cmt +0 -0
- package/lib/ocaml/js_null_undefined.cmti +0 -0
- package/lib/ocaml/js_null_undefined.ml +0 -50
- package/lib/ocaml/js_null_undefined.mli +0 -85
- package/lib/ocaml/js_obj.cmi +0 -0
- package/lib/ocaml/js_obj.cmt +0 -0
- package/lib/ocaml/js_obj.ml +0 -100
- package/lib/ocaml/js_option.cmi +0 -0
- package/lib/ocaml/js_option.cmt +0 -0
- package/lib/ocaml/js_option.cmti +0 -0
- package/lib/ocaml/js_option.ml +0 -203
- package/lib/ocaml/js_option.mli +0 -52
- package/lib/ocaml/js_promise.cmi +0 -0
- package/lib/ocaml/js_promise.cmt +0 -0
- package/lib/ocaml/js_promise.ml +0 -100
- package/lib/ocaml/js_re.cmi +0 -0
- package/lib/ocaml/js_re.cmt +0 -0
- package/lib/ocaml/js_re.ml +0 -184
- package/lib/ocaml/js_result.cmi +0 -0
- package/lib/ocaml/js_result.cmt +0 -0
- package/lib/ocaml/js_result.cmti +0 -0
- package/lib/ocaml/js_result.ml +0 -28
- package/lib/ocaml/js_result.mli +0 -28
- package/lib/ocaml/js_set.cmi +0 -0
- package/lib/ocaml/js_set.cmt +0 -0
- package/lib/ocaml/js_set.ml +0 -3
- package/lib/ocaml/js_string.cmi +0 -0
- package/lib/ocaml/js_string.cmt +0 -0
- package/lib/ocaml/js_string.ml +0 -914
- package/lib/ocaml/js_string2.cmi +0 -0
- package/lib/ocaml/js_string2.cmt +0 -0
- package/lib/ocaml/js_string2.ml +0 -912
- package/lib/ocaml/js_typed_array.cmi +0 -0
- package/lib/ocaml/js_typed_array.cmt +0 -0
- package/lib/ocaml/js_typed_array.cppo.ml +0 -429
- package/lib/ocaml/js_typed_array.ml +0 -1405
- package/lib/ocaml/js_typed_array2.cmi +0 -0
- package/lib/ocaml/js_typed_array2.cmt +0 -0
- package/lib/ocaml/js_typed_array2.cppo.ml +0 -296
- package/lib/ocaml/js_typed_array2.ml +0 -1269
- package/lib/ocaml/js_types.cmi +0 -0
- package/lib/ocaml/js_types.cmt +0 -0
- package/lib/ocaml/js_types.cmti +0 -0
- package/lib/ocaml/js_types.ml +0 -118
- package/lib/ocaml/js_types.mli +0 -78
- package/lib/ocaml/js_undefined.cmi +0 -0
- package/lib/ocaml/js_undefined.cmt +0 -0
- package/lib/ocaml/js_undefined.cmti +0 -0
- package/lib/ocaml/js_undefined.ml +0 -59
- package/lib/ocaml/js_undefined.mli +0 -92
- package/lib/ocaml/js_vector.cmi +0 -0
- package/lib/ocaml/js_vector.cmt +0 -0
- package/lib/ocaml/js_vector.cmti +0 -0
- package/lib/ocaml/js_vector.ml +0 -143
- package/lib/ocaml/js_vector.mli +0 -92
- package/lib/ocaml/js_weakmap.cmi +0 -0
- package/lib/ocaml/js_weakmap.cmt +0 -0
- package/lib/ocaml/js_weakmap.ml +0 -3
- package/lib/ocaml/js_weakset.cmi +0 -0
- package/lib/ocaml/js_weakset.cmt +0 -0
- package/lib/ocaml/js_weakset.ml +0 -3
- package/lib/ocaml/jsx.cmi +0 -0
- package/lib/ocaml/jsx.cmt +0 -0
- package/lib/ocaml/jsx.ml +0 -39
- package/lib/ocaml/jsxDOM.cmi +0 -0
- package/lib/ocaml/jsxDOM.cmt +0 -0
- package/lib/ocaml/jsxDOM.ml +0 -2087
- package/lib/ocaml/jsxDOMStyle.cmi +0 -0
- package/lib/ocaml/jsxDOMStyle.cmt +0 -0
- package/lib/ocaml/jsxDOMStyle.ml +0 -777
- package/lib/ocaml/jsxEvent.cmi +0 -0
- package/lib/ocaml/jsxEvent.cmt +0 -0
- package/lib/ocaml/jsxEvent.ml +0 -358
- package/lib/ocaml/lazy.cmi +0 -0
- package/lib/ocaml/lazy.cmt +0 -0
- package/lib/ocaml/lazy.cmti +0 -0
- package/lib/ocaml/lazy.ml +0 -70
- package/lib/ocaml/lazy.mli +0 -95
- package/lib/ocaml/lexing.cmi +0 -0
- package/lib/ocaml/lexing.cmt +0 -0
- package/lib/ocaml/lexing.cmti +0 -0
- package/lib/ocaml/lexing.ml +0 -230
- package/lib/ocaml/lexing.mli +0 -172
- package/lib/ocaml/list.cmi +0 -0
- package/lib/ocaml/list.cmt +0 -0
- package/lib/ocaml/list.cmti +0 -0
- package/lib/ocaml/list.ml +0 -485
- package/lib/ocaml/list.mli +0 -347
- package/lib/ocaml/listLabels.cmi +0 -0
- package/lib/ocaml/listLabels.cmt +0 -0
- package/lib/ocaml/listLabels.cmti +0 -0
- package/lib/ocaml/listLabels.ml +0 -485
- package/lib/ocaml/listLabels.mli +0 -353
- package/lib/ocaml/map.cmi +0 -0
- package/lib/ocaml/map.cmt +0 -0
- package/lib/ocaml/map.cmti +0 -0
- package/lib/ocaml/map.cppo.ml +0 -174
- package/lib/ocaml/map.cppo.mli +0 -191
- package/lib/ocaml/map.ml +0 -480
- package/lib/ocaml/map.mli +0 -315
- package/lib/ocaml/mapLabels.cmi +0 -0
- package/lib/ocaml/mapLabels.cmt +0 -0
- package/lib/ocaml/mapLabels.ml +0 -480
- package/lib/ocaml/mapm.cppo.ml +0 -177
- package/lib/ocaml/mapm.cppo.mli +0 -138
- package/lib/ocaml/moreLabels.cmi +0 -0
- package/lib/ocaml/moreLabels.cmt +0 -0
- package/lib/ocaml/moreLabels.cmti +0 -0
- package/lib/ocaml/moreLabels.ml +0 -22
- package/lib/ocaml/moreLabels.mli +0 -198
- package/lib/ocaml/node.cmi +0 -0
- package/lib/ocaml/node.cmt +0 -0
- package/lib/ocaml/node.ml +0 -84
- package/lib/ocaml/node_buffer.cmi +0 -0
- package/lib/ocaml/node_buffer.cmt +0 -0
- package/lib/ocaml/node_buffer.ml +0 -47
- package/lib/ocaml/node_child_process.cmi +0 -0
- package/lib/ocaml/node_child_process.cmt +0 -0
- package/lib/ocaml/node_child_process.ml +0 -50
- package/lib/ocaml/node_fs.cmi +0 -0
- package/lib/ocaml/node_fs.cmt +0 -0
- package/lib/ocaml/node_fs.ml +0 -153
- package/lib/ocaml/node_module.cmi +0 -0
- package/lib/ocaml/node_module.cmt +0 -0
- package/lib/ocaml/node_module.ml +0 -29
- package/lib/ocaml/node_path.cmi +0 -0
- package/lib/ocaml/node_path.cmt +0 -0
- package/lib/ocaml/node_path.ml +0 -71
- package/lib/ocaml/node_process.cmi +0 -0
- package/lib/ocaml/node_process.cmt +0 -0
- package/lib/ocaml/node_process.cmti +0 -0
- package/lib/ocaml/node_process.ml +0 -59
- package/lib/ocaml/node_process.mli +0 -48
- package/lib/ocaml/obj.cmi +0 -0
- package/lib/ocaml/obj.cmt +0 -0
- package/lib/ocaml/obj.cmti +0 -0
- package/lib/ocaml/obj.ml +0 -29
- package/lib/ocaml/obj.mli +0 -62
- package/lib/ocaml/parsing.cmi +0 -0
- package/lib/ocaml/parsing.cmt +0 -0
- package/lib/ocaml/parsing.cmti +0 -0
- package/lib/ocaml/parsing.ml +0 -212
- package/lib/ocaml/parsing.mli +0 -105
- package/lib/ocaml/pervasives.cmi +0 -0
- package/lib/ocaml/pervasives.cmt +0 -0
- package/lib/ocaml/pervasives.cmti +0 -0
- package/lib/ocaml/pervasives.ml +0 -297
- package/lib/ocaml/pervasives.mli +0 -771
- package/lib/ocaml/printexc.cmi +0 -0
- package/lib/ocaml/printexc.cmt +0 -0
- package/lib/ocaml/printexc.cmti +0 -0
- package/lib/ocaml/printexc.ml +0 -79
- package/lib/ocaml/printexc.mli +0 -57
- package/lib/ocaml/queue.cmi +0 -0
- package/lib/ocaml/queue.cmt +0 -0
- package/lib/ocaml/queue.cmti +0 -0
- package/lib/ocaml/queue.ml +0 -132
- package/lib/ocaml/queue.mli +0 -82
- package/lib/ocaml/random.cmi +0 -0
- package/lib/ocaml/random.cmt +0 -0
- package/lib/ocaml/random.cmti +0 -0
- package/lib/ocaml/random.ml +0 -273
- package/lib/ocaml/random.mli +0 -102
- package/lib/ocaml/set.cmi +0 -0
- package/lib/ocaml/set.cmt +0 -0
- package/lib/ocaml/set.cmti +0 -0
- package/lib/ocaml/set.ml +0 -526
- package/lib/ocaml/set.mli +0 -266
- package/lib/ocaml/setLabels.cmi +0 -0
- package/lib/ocaml/setLabels.cmt +0 -0
- package/lib/ocaml/setLabels.ml +0 -526
- package/lib/ocaml/setm.cppo.ml +0 -346
- package/lib/ocaml/setm.cppo.mli +0 -126
- package/lib/ocaml/sort.cmi +0 -0
- package/lib/ocaml/sort.cmt +0 -0
- package/lib/ocaml/sort.cmti +0 -0
- package/lib/ocaml/sort.cppo.ml +0 -267
- package/lib/ocaml/sort.cppo.mli +0 -96
- package/lib/ocaml/sort.ml +0 -99
- package/lib/ocaml/sort.mli +0 -44
- package/lib/ocaml/stack.cmi +0 -0
- package/lib/ocaml/stack.cmt +0 -0
- package/lib/ocaml/stack.cmti +0 -0
- package/lib/ocaml/stack.ml +0 -44
- package/lib/ocaml/stack.mli +0 -63
- package/lib/ocaml/stdLabels.cmi +0 -0
- package/lib/ocaml/stdLabels.cmt +0 -0
- package/lib/ocaml/stdLabels.cmti +0 -0
- package/lib/ocaml/stdLabels.ml +0 -24
- package/lib/ocaml/stdLabels.mli +0 -29
- package/lib/ocaml/stream.cmi +0 -0
- package/lib/ocaml/stream.cmt +0 -0
- package/lib/ocaml/stream.cmti +0 -0
- package/lib/ocaml/stream.ml +0 -213
- package/lib/ocaml/stream.mli +0 -108
- package/lib/ocaml/string.cmi +0 -0
- package/lib/ocaml/string.cmt +0 -0
- package/lib/ocaml/string.cmti +0 -0
- package/lib/ocaml/string.ml +0 -190
- package/lib/ocaml/string.mli +0 -286
- package/lib/ocaml/stringLabels.cmi +0 -0
- package/lib/ocaml/stringLabels.cmt +0 -0
- package/lib/ocaml/stringLabels.cmti +0 -0
- package/lib/ocaml/stringLabels.ml +0 -190
- package/lib/ocaml/stringLabels.mli +0 -241
- package/lib/ocaml/sys.cmi +0 -0
- package/lib/ocaml/sys.cmt +0 -0
- package/lib/ocaml/sys.cmti +0 -0
- package/lib/ocaml/sys.ml +0 -135
- package/lib/ocaml/sys.mli +0 -333
- package/lib/ocaml/uchar.cmi +0 -0
- package/lib/ocaml/uchar.cmt +0 -0
- package/lib/ocaml/uchar.cmti +0 -0
- package/lib/ocaml/uchar.ml +0 -58
- package/lib/ocaml/uchar.mli +0 -98
- package/linux/bsb_helper.exe +0 -0
- package/linux/bsc.exe +0 -0
- package/linux/ninja.COPYING +0 -202
- package/linux/ninja.exe +0 -0
- package/linux/rescript.exe +0 -0
- package/openbsd/.keep +0 -0
- package/scripts/LICENSE.ml +0 -27
- package/scripts/buckle_lto.js +0 -55
- package/scripts/build_sorted.ml +0 -233
- package/scripts/caml_oo_curry_gen.ml +0 -71
- package/scripts/checkUnused.js +0 -63
- package/scripts/ciTest.js +0 -172
- package/scripts/cover.sh +0 -3
- package/scripts/curry_gen.ml +0 -167
- package/scripts/dbg +0 -13
- package/scripts/dedupe.js +0 -44
- package/scripts/doc_gen.js +0 -117
- package/scripts/js_internal_gen.js +0 -135
- package/scripts/jsconfig.json +0 -12
- package/scripts/littlecase.js +0 -21
- package/scripts/ninja.js +0 -1980
- package/scripts/pack.js +0 -107
- package/scripts/prebuilt.js +0 -99
- package/scripts/release.js +0 -41
- package/scripts/repl.js +0 -151
- package/scripts/shake.js +0 -138
- package/scripts/tasks.js +0 -149
- package/scripts/test.sh +0 -3
- package/scripts/tmp.js +0 -98
- package/scripts/validate.js +0 -41
- package/vendor/ninja.tar.gz +0 -0
- package/win32/bsb_helper.exe +0 -0
- package/win32/bsc.exe +0 -0
- package/win32/ninja.COPYING +0 -202
- package/win32/ninja.exe +0 -0
- package/win32/rescript.exe +0 -0
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
(* Copyright (C) 2017 Hongbo Zhang, Authors of ReScript
|
|
2
|
-
*
|
|
3
|
-
* This program is free software: you can redistribute it and/or modify
|
|
4
|
-
* it under the terms of the GNU Lesser General Public License as published by
|
|
5
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
6
|
-
* (at your option) any later version.
|
|
7
|
-
*
|
|
8
|
-
* In addition to the permissions granted to you by the LGPL, you may combine
|
|
9
|
-
* or link a "work that uses the Library" with a publicly distributed version
|
|
10
|
-
* of this file to produce a combined library or application, then distribute
|
|
11
|
-
* that combined work under the terms of your choosing, with no requirement
|
|
12
|
-
* to comply with the obligations normally placed on you by section 4 of the
|
|
13
|
-
* LGPL version 3 (or the corresponding section of a later version of the LGPL
|
|
14
|
-
* should you choose to use a later version).
|
|
15
|
-
*
|
|
16
|
-
* This program is distributed in the hope that it will be useful,
|
|
17
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
-
* GNU Lesser General Public License for more details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU Lesser General Public License
|
|
22
|
-
* along with this program; if not, write to the Free Software
|
|
23
|
-
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
|
|
24
|
-
|
|
25
|
-
module N = Belt_internalAVLtree
|
|
26
|
-
module A = Belt_Array
|
|
27
|
-
|
|
28
|
-
type ('key, 'a, 'id) t = ('key, 'a) N.t
|
|
29
|
-
|
|
30
|
-
type ('key, 'id) cmp = ('key, 'id) Belt_Id.cmp
|
|
31
|
-
|
|
32
|
-
let empty = None
|
|
33
|
-
let fromArray = N.fromArray
|
|
34
|
-
let isEmpty = N.isEmpty
|
|
35
|
-
let cmp = N.cmp
|
|
36
|
-
let cmpU = N.cmpU
|
|
37
|
-
let eq = N.eq
|
|
38
|
-
let eqU = N.eqU
|
|
39
|
-
let has = N.has
|
|
40
|
-
|
|
41
|
-
let forEach = N.forEach
|
|
42
|
-
let forEachU = N.forEachU
|
|
43
|
-
let reduce = N.reduce
|
|
44
|
-
let reduceU = N.reduceU
|
|
45
|
-
let every = N.every
|
|
46
|
-
let everyU = N.everyU
|
|
47
|
-
let some = N.some
|
|
48
|
-
let someU = N.someU
|
|
49
|
-
|
|
50
|
-
let size = N.size
|
|
51
|
-
let toList = N.toList
|
|
52
|
-
let toArray = N.toArray
|
|
53
|
-
let keysToArray = N.keysToArray
|
|
54
|
-
let valuesToArray = N.valuesToArray
|
|
55
|
-
|
|
56
|
-
let minimum = N.minimum
|
|
57
|
-
let maximum = N.maximum
|
|
58
|
-
let minKey = N.minKey
|
|
59
|
-
let maxKey = N.maxKey
|
|
60
|
-
let minKeyUndefined = N.minKeyUndefined
|
|
61
|
-
let maxKeyUndefined = N.maxKeyUndefined
|
|
62
|
-
let minUndefined = N.minUndefined
|
|
63
|
-
let maxUndefined = N.maxUndefined
|
|
64
|
-
let get = N.get
|
|
65
|
-
let getUndefined = N.getUndefined
|
|
66
|
-
let getWithDefault = N.getWithDefault
|
|
67
|
-
let getExn = N.getExn
|
|
68
|
-
|
|
69
|
-
let mapWithKey = N.mapWithKey
|
|
70
|
-
let mapWithKeyU = N.mapWithKeyU
|
|
71
|
-
|
|
72
|
-
let mapU = N.mapU
|
|
73
|
-
let map = N.map
|
|
74
|
-
let keep = N.keepShared
|
|
75
|
-
let keepU = N.keepSharedU
|
|
76
|
-
let partitionU = N.partitionSharedU
|
|
77
|
-
let partition = N.partitionShared
|
|
78
|
-
let checkInvariantInternal = N.checkInvariantInternal
|
|
79
|
-
let rec set (t : _ t) newK newD ~cmp =
|
|
80
|
-
match t with
|
|
81
|
-
| None -> N.singleton newK newD
|
|
82
|
-
| Some n ->
|
|
83
|
-
let k= n.N.key in
|
|
84
|
-
let c = (Belt_Id.getCmpInternal cmp) newK k [@bs] in
|
|
85
|
-
if c = 0 then
|
|
86
|
-
Some (N.updateValue n newD)
|
|
87
|
-
else
|
|
88
|
-
let l,r,v = n.N.left, n.N.right, n.N.value in
|
|
89
|
-
if c < 0 then (* Worth optimize for reference equality? *)
|
|
90
|
-
N.bal (set ~cmp l newK newD ) k v r
|
|
91
|
-
else
|
|
92
|
-
N.bal l k v (set ~cmp r newK newD )
|
|
93
|
-
|
|
94
|
-
let rec updateU (t : _ t) newK f ~cmp : _ t =
|
|
95
|
-
match t with
|
|
96
|
-
| None ->
|
|
97
|
-
begin match f None [@bs] with
|
|
98
|
-
| None -> t
|
|
99
|
-
| Some newD -> N.singleton newK newD
|
|
100
|
-
end
|
|
101
|
-
| Some n ->
|
|
102
|
-
let k= n.N.key in
|
|
103
|
-
let c = (Belt_Id.getCmpInternal cmp) newK k [@bs] in
|
|
104
|
-
if c = 0 then
|
|
105
|
-
match f (Some (n.N.value)) [@bs] with
|
|
106
|
-
| None ->
|
|
107
|
-
let l, r = n.N.left , n.N.right in
|
|
108
|
-
begin match l, r with
|
|
109
|
-
| None, _ -> r
|
|
110
|
-
| _, None -> l
|
|
111
|
-
| _, Some rn ->
|
|
112
|
-
let kr, vr = ref rn.key, ref rn.value in
|
|
113
|
-
let r = N.removeMinAuxWithRef rn kr vr in
|
|
114
|
-
N.bal l kr.contents vr.contents r
|
|
115
|
-
end
|
|
116
|
-
| Some newD -> Some (N.updateValue n newD)
|
|
117
|
-
else
|
|
118
|
-
let l,r,v = n.N.left, n.N.right, n.N.value in
|
|
119
|
-
if c < 0 then
|
|
120
|
-
let ll = (updateU ~cmp l newK f ) in
|
|
121
|
-
if l == ll then
|
|
122
|
-
t
|
|
123
|
-
else
|
|
124
|
-
N.bal ll k v r
|
|
125
|
-
else
|
|
126
|
-
let rr = (updateU ~cmp r newK f) in
|
|
127
|
-
if r == rr then t
|
|
128
|
-
else N.bal l k v rr
|
|
129
|
-
|
|
130
|
-
let update t newK f ~cmp =
|
|
131
|
-
updateU t newK (fun [@bs] a -> f a ) ~cmp
|
|
132
|
-
|
|
133
|
-
(* unboxing API was not exported
|
|
134
|
-
since the correct API is really awkard
|
|
135
|
-
`bool -> 'k Js.null -> ('a Js.null * bool)`
|
|
136
|
-
even for specialized `k` the first `bool` can
|
|
137
|
-
be erased, maybe the perf boost does not justify the inclusion of such API
|
|
138
|
-
|
|
139
|
-
`updateWithNull m x f`
|
|
140
|
-
the callback to `f exist v`
|
|
141
|
-
when `v` is non-null,
|
|
142
|
-
`exist` is guaranteed to be true
|
|
143
|
-
`v` is guranteed to be `null`,
|
|
144
|
-
when `exist` is `true`, `v` could be `null`,
|
|
145
|
-
since `'a` is polymorphic
|
|
146
|
-
*)
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
let rec removeAux0 n x ~cmp =
|
|
150
|
-
let {N.left = l; key = v; right = r} = n in
|
|
151
|
-
let c = (Belt_Id.getCmpInternal cmp) x v [@bs] in
|
|
152
|
-
if c = 0 then
|
|
153
|
-
match l, r with
|
|
154
|
-
| None, _ -> r
|
|
155
|
-
| _, None -> l
|
|
156
|
-
| _, Some rn ->
|
|
157
|
-
let kr, vr = ref rn.key, ref rn.value in
|
|
158
|
-
let r = N.removeMinAuxWithRef rn kr vr in
|
|
159
|
-
N.bal l kr.contents vr.contents r
|
|
160
|
-
else if c < 0 then
|
|
161
|
-
match l with
|
|
162
|
-
| None -> Some n (* Nothing to remove *)
|
|
163
|
-
| Some left ->
|
|
164
|
-
let ll = removeAux0 left x ~cmp in
|
|
165
|
-
if ll == l then (Some n)
|
|
166
|
-
else N.bal ll v (n.N.value) r
|
|
167
|
-
else
|
|
168
|
-
match r with
|
|
169
|
-
| None -> Some n (* Nothing to remove *)
|
|
170
|
-
| Some right ->
|
|
171
|
-
let rr = removeAux0 ~cmp right x in
|
|
172
|
-
if rr == r then Some n
|
|
173
|
-
else N.bal l v (n.N.value) rr
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
let remove n x ~cmp =
|
|
177
|
-
match n with
|
|
178
|
-
| None -> None
|
|
179
|
-
| Some n -> removeAux0 n x ~cmp
|
|
180
|
-
|
|
181
|
-
let mergeMany h arr ~cmp =
|
|
182
|
-
let len = A.length arr in
|
|
183
|
-
let v = ref h in
|
|
184
|
-
for i = 0 to len - 1 do
|
|
185
|
-
let key,value = A.getUnsafe arr i in
|
|
186
|
-
v .contents<- set v.contents ~cmp key value
|
|
187
|
-
done ;
|
|
188
|
-
v.contents
|
|
189
|
-
|
|
190
|
-
let rec splitAuxPivot n x pres ~cmp =
|
|
191
|
-
let {N.left = l; key = v; value = d; right = r} = n in
|
|
192
|
-
let c = (Belt_Id.getCmpInternal cmp) x v [@bs] in
|
|
193
|
-
if c = 0 then begin
|
|
194
|
-
pres .contents<- Some d;
|
|
195
|
-
(l, r)
|
|
196
|
-
end
|
|
197
|
-
else
|
|
198
|
-
if c < 0 then
|
|
199
|
-
match l with
|
|
200
|
-
| None ->
|
|
201
|
-
None, Some n
|
|
202
|
-
| Some l ->
|
|
203
|
-
let (ll,rl) = splitAuxPivot ~cmp l x pres in
|
|
204
|
-
(ll, N.join rl v d r)
|
|
205
|
-
else
|
|
206
|
-
match r with
|
|
207
|
-
| None ->
|
|
208
|
-
Some n, None
|
|
209
|
-
| Some r ->
|
|
210
|
-
let (lr, rr) = splitAuxPivot ~cmp r x pres in
|
|
211
|
-
(N.join l v d lr, rr)
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
let split n x ~cmp =
|
|
215
|
-
match n with
|
|
216
|
-
| None ->
|
|
217
|
-
(None, None), None
|
|
218
|
-
| Some n ->
|
|
219
|
-
let pres = ref None in
|
|
220
|
-
let v = splitAuxPivot ~cmp n x pres in
|
|
221
|
-
v, pres.contents
|
|
222
|
-
|
|
223
|
-
let findFirstByU = N.findFirstByU
|
|
224
|
-
let findFirstBy = N.findFirstBy
|
|
225
|
-
|
|
226
|
-
let rec mergeU s1 s2 f ~cmp =
|
|
227
|
-
match s1, s2 with
|
|
228
|
-
(None, None) -> None
|
|
229
|
-
| Some _, None ->
|
|
230
|
-
N.keepMapU s1 (fun[@bs] k v ->
|
|
231
|
-
f k (Some v) None [@bs]
|
|
232
|
-
)
|
|
233
|
-
| None, Some _ ->
|
|
234
|
-
N.keepMapU s2 (fun[@bs] k v ->
|
|
235
|
-
f k None (Some v) [@bs]
|
|
236
|
-
)
|
|
237
|
-
| Some s1n , Some s2n ->
|
|
238
|
-
if s1n.height >= s2n.height then
|
|
239
|
-
let {N.left = l1; key = v1; value = d1; right = r1} = s1n in
|
|
240
|
-
let d2 = ref None in
|
|
241
|
-
let (l2, r2) = splitAuxPivot ~cmp s2n v1 d2 in
|
|
242
|
-
let d2 = d2.contents in
|
|
243
|
-
let newLeft = mergeU ~cmp l1 l2 f in
|
|
244
|
-
let newD = f v1 (Some d1) d2 [@bs] in
|
|
245
|
-
let newRight = mergeU ~cmp r1 r2 f in
|
|
246
|
-
N.concatOrJoin newLeft v1 newD newRight
|
|
247
|
-
else
|
|
248
|
-
let {N.left = l2; key = v2; value = d2; right = r2 } = s2n in
|
|
249
|
-
let d1 = ref None in
|
|
250
|
-
let (l1, r1) = splitAuxPivot ~cmp s1n v2 d1 in
|
|
251
|
-
let d1 = d1.contents in
|
|
252
|
-
let newLeft = mergeU ~cmp l1 l2 f in
|
|
253
|
-
let newD = (f v2 d1 (Some d2) [@bs]) in
|
|
254
|
-
let newRight = (mergeU ~cmp r1 r2 f) in
|
|
255
|
-
N.concatOrJoin newLeft v2 newD newRight
|
|
256
|
-
|
|
257
|
-
let merge s1 s2 f ~cmp =
|
|
258
|
-
mergeU s1 s2 (fun[@bs] a b c -> f a b c) ~cmp
|
|
259
|
-
|
|
260
|
-
let rec removeMany0 t xs i len ~cmp =
|
|
261
|
-
if i < len then
|
|
262
|
-
let ele = A.getUnsafe xs i in
|
|
263
|
-
let u = removeAux0 t ele ~cmp in
|
|
264
|
-
match u with
|
|
265
|
-
| None -> u
|
|
266
|
-
| Some t -> removeMany0 t xs (i + 1) len ~cmp
|
|
267
|
-
else
|
|
268
|
-
Some t
|
|
269
|
-
|
|
270
|
-
let removeMany t keys ~cmp =
|
|
271
|
-
let len = A.length keys in
|
|
272
|
-
match t with
|
|
273
|
-
| None -> None
|
|
274
|
-
| Some t -> removeMany0 t keys 0 len ~cmp
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
(* Copyright (C) 2017 Authors of ReScript
|
|
2
|
-
*
|
|
3
|
-
* This program is free software: you can redistribute it and/or modify
|
|
4
|
-
* it under the terms of the GNU Lesser General Public License as published by
|
|
5
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
6
|
-
* (at your option) any later version.
|
|
7
|
-
*
|
|
8
|
-
* In addition to the permissions granted to you by the LGPL, you may combine
|
|
9
|
-
* or link a "work that uses the Library" with a publicly distributed version
|
|
10
|
-
* of this file to produce a combined library or application, then distribute
|
|
11
|
-
* that combined work under the terms of your choosing, with no requirement
|
|
12
|
-
* to comply with the obligations normally placed on you by section 4 of the
|
|
13
|
-
* LGPL version 3 (or the corresponding section of a later version of the LGPL
|
|
14
|
-
* should you choose to use a later version).
|
|
15
|
-
*
|
|
16
|
-
* This program is distributed in the hope that it will be useful,
|
|
17
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
-
* GNU Lesser General Public License for more details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU Lesser General Public License
|
|
22
|
-
* along with this program; if not, write to the Free Software
|
|
23
|
-
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
|
|
24
|
-
|
|
25
|
-
(** This module separates identity from data, it is a bit more verbose but
|
|
26
|
-
slightly more efficient due to the fact that there is no need to pack
|
|
27
|
-
identity and data back after each operation.
|
|
28
|
-
|
|
29
|
-
**_Advanced usage only_**
|
|
30
|
-
*)
|
|
31
|
-
|
|
32
|
-
(* ```res prelude
|
|
33
|
-
type t<'key, 'value, 'id>
|
|
34
|
-
type cmp<'key, 'id> = Belt_Id.cmp<'key, 'id>
|
|
35
|
-
```
|
|
36
|
-
*)
|
|
37
|
-
|
|
38
|
-
type ('key, 'value, 'id) t
|
|
39
|
-
|
|
40
|
-
type ('key, 'id) cmp = ('key, 'id) Belt_Id.cmp
|
|
41
|
-
|
|
42
|
-
val empty: ('k, 'v, 'id) t
|
|
43
|
-
|
|
44
|
-
val isEmpty: ('k, 'v, 'id) t -> bool
|
|
45
|
-
|
|
46
|
-
val has:
|
|
47
|
-
('k, 'a, 'id) t -> 'k ->
|
|
48
|
-
cmp:('k, 'id) cmp ->
|
|
49
|
-
bool
|
|
50
|
-
|
|
51
|
-
val cmpU:
|
|
52
|
-
('k, 'v, 'id) t ->
|
|
53
|
-
('k, 'v, 'id) t ->
|
|
54
|
-
kcmp:('k, 'id) cmp ->
|
|
55
|
-
vcmp:('v -> 'v -> int [@bs]) ->
|
|
56
|
-
int
|
|
57
|
-
val cmp:
|
|
58
|
-
('k, 'v, 'id) t ->
|
|
59
|
-
('k, 'v, 'id) t ->
|
|
60
|
-
kcmp:('k, 'id) cmp ->
|
|
61
|
-
vcmp:('v -> 'v -> int) ->
|
|
62
|
-
int
|
|
63
|
-
|
|
64
|
-
val eqU:
|
|
65
|
-
('k, 'a, 'id) t ->
|
|
66
|
-
('k, 'a, 'id) t ->
|
|
67
|
-
kcmp:('k, 'id) cmp ->
|
|
68
|
-
veq:('a -> 'a -> bool [@bs]) ->
|
|
69
|
-
bool
|
|
70
|
-
val eq:
|
|
71
|
-
('k, 'a, 'id) t ->
|
|
72
|
-
('k, 'a, 'id) t ->
|
|
73
|
-
kcmp:('k, 'id) cmp ->
|
|
74
|
-
veq:('a -> 'a -> bool) ->
|
|
75
|
-
bool
|
|
76
|
-
(** `eq(m1, m2, cmp)` tests whether the maps `m1` and `m2` are equal, that is,
|
|
77
|
-
contain equal keys and associate them with equal data. `cmp` is the
|
|
78
|
-
equality predicate used to compare the data associated with the keys. *)
|
|
79
|
-
|
|
80
|
-
val findFirstByU : ('k, 'v, 'id) t -> ('k -> 'v -> bool [@bs]) -> ('k * 'v) option
|
|
81
|
-
val findFirstBy : ('k, 'v, 'id) t -> ('k -> 'v -> bool ) -> ('k * 'v) option
|
|
82
|
-
(** `findFirstBy(m, p)` uses function `f` to find the first key value pair to
|
|
83
|
-
match predicate `p`.
|
|
84
|
-
|
|
85
|
-
```res example
|
|
86
|
-
module IntCmp = Belt.Id.MakeComparable({
|
|
87
|
-
type t = int
|
|
88
|
-
let cmp = Pervasives.compare
|
|
89
|
-
})
|
|
90
|
-
|
|
91
|
-
let s0 = Belt.Map.Dict.fromArray([(4, "4"), (1, "1"), (2, "2"), (3, "3")], ~cmp=IntCmp.cmp)
|
|
92
|
-
|
|
93
|
-
Belt.Map.Dict.findFirstBy(s0, (k, _) => k == 4) == Some((4, "4"))
|
|
94
|
-
```
|
|
95
|
-
*)
|
|
96
|
-
|
|
97
|
-
val forEachU: ('k, 'a, 'id) t -> ('k -> 'a -> unit [@bs]) -> unit
|
|
98
|
-
val forEach: ('k, 'a, 'id) t -> ('k -> 'a -> unit) -> unit
|
|
99
|
-
(** `forEach(m, f)` applies `f` to all bindings in map `m`. `f` receives the
|
|
100
|
-
key as first argument, and the associated value as second argument. The
|
|
101
|
-
bindings are passed to `f` in increasing order with respect to the ordering
|
|
102
|
-
over the type of the keys. *)
|
|
103
|
-
|
|
104
|
-
val reduceU: ('k, 'a, 'id) t -> 'b -> ('b -> 'k -> 'a -> 'b [@bs]) -> 'b
|
|
105
|
-
val reduce: ('k, 'a, 'id) t -> 'b -> ('b -> 'k -> 'a -> 'b) -> 'b
|
|
106
|
-
(** `reduce(m, a, f)` computes `f(kN, dN ... f(k1, d1, a)...)`, where `k1 ...
|
|
107
|
-
kN` are the keys of all bindings in `m` (in increasing order), and `d1 ...
|
|
108
|
-
dN` are the associated data. *)
|
|
109
|
-
|
|
110
|
-
val everyU: ('k, 'a, 'id) t -> ('k -> 'a -> bool [@bs]) -> bool
|
|
111
|
-
val every: ('k, 'a, 'id) t -> ('k -> 'a -> bool) -> bool
|
|
112
|
-
(** `every(m, p)` checks if all the bindings of the map satisfy the predicate
|
|
113
|
-
`p`. Order unspecified *)
|
|
114
|
-
|
|
115
|
-
val someU: ('k, 'a, 'id) t -> ('k -> 'a -> bool [@bs]) -> bool
|
|
116
|
-
val some: ('k, 'a, 'id) t -> ('k -> 'a -> bool) -> bool
|
|
117
|
-
(** `some(m, p)` checks if at least one binding of the map satisfy the
|
|
118
|
-
predicate `p`. Order unspecified *)
|
|
119
|
-
|
|
120
|
-
val size: ('k, 'a, 'id) t -> int
|
|
121
|
-
|
|
122
|
-
val toList: ('k, 'a, 'id) t -> ('k * 'a) list
|
|
123
|
-
(** In increasing order. *)
|
|
124
|
-
|
|
125
|
-
val toArray: ('k, 'a, 'id) t -> ('k * 'a) array
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
val fromArray: ('k * 'a) array -> cmp:('k,'id) cmp -> ('k,'a,'id) t
|
|
129
|
-
|
|
130
|
-
val keysToArray: ('k, 'a, 'id) t -> 'k array
|
|
131
|
-
|
|
132
|
-
val valuesToArray: ('k, 'a, 'id) t -> 'a array
|
|
133
|
-
|
|
134
|
-
val minKey: ('k, _, _) t -> 'k option
|
|
135
|
-
|
|
136
|
-
val minKeyUndefined: ('k, _, _) t -> 'k Js.undefined
|
|
137
|
-
|
|
138
|
-
val maxKey: ('k, _, _) t -> 'k option
|
|
139
|
-
|
|
140
|
-
val maxKeyUndefined: ('k, _, _) t -> 'k Js.undefined
|
|
141
|
-
|
|
142
|
-
val minimum: ('k, 'a, _) t -> ('k * 'a) option
|
|
143
|
-
|
|
144
|
-
val minUndefined: ('k, 'a, _) t -> ('k * 'a) Js.undefined
|
|
145
|
-
|
|
146
|
-
val maximum: ('k, 'a, _) t -> ('k * 'a) option
|
|
147
|
-
|
|
148
|
-
val maxUndefined:('k, 'a, _) t -> ('k * 'a) Js.undefined
|
|
149
|
-
|
|
150
|
-
val get:
|
|
151
|
-
('k, 'a, 'id) t -> 'k ->
|
|
152
|
-
cmp:('k, 'id) cmp ->
|
|
153
|
-
'a option
|
|
154
|
-
|
|
155
|
-
val getUndefined:
|
|
156
|
-
('k, 'a, 'id) t -> 'k ->
|
|
157
|
-
cmp:('k, 'id) cmp ->
|
|
158
|
-
'a Js.undefined
|
|
159
|
-
|
|
160
|
-
val getWithDefault:
|
|
161
|
-
('k, 'a, 'id) t -> 'k -> 'a ->
|
|
162
|
-
cmp:('k, 'id) cmp ->
|
|
163
|
-
'a
|
|
164
|
-
|
|
165
|
-
val getExn:
|
|
166
|
-
('k, 'a, 'id) t -> 'k ->
|
|
167
|
-
cmp:('k, 'id) cmp ->
|
|
168
|
-
'a
|
|
169
|
-
|
|
170
|
-
val checkInvariantInternal: _ t -> unit
|
|
171
|
-
|
|
172
|
-
val remove:
|
|
173
|
-
('a, 'b, 'id) t -> 'a ->
|
|
174
|
-
cmp:('a, 'id) cmp ->
|
|
175
|
-
('a, 'b, 'id) t
|
|
176
|
-
(** `remove(m, x)` returns a map containing the same bindings as `m`, except
|
|
177
|
-
for `x` which is unbound in the returned map. *)
|
|
178
|
-
|
|
179
|
-
val removeMany:
|
|
180
|
-
('a, 'b, 'id) t ->
|
|
181
|
-
'a array ->
|
|
182
|
-
cmp:('a, 'id) cmp ->
|
|
183
|
-
('a, 'b, 'id) t
|
|
184
|
-
|
|
185
|
-
val set:
|
|
186
|
-
('a, 'b, 'id) t -> 'a -> 'b ->
|
|
187
|
-
cmp:('a, 'id) cmp ->
|
|
188
|
-
('a, 'b, 'id) t
|
|
189
|
-
(** `set(m, x, y)` returns a map containing the same bindings as `m`, plus a
|
|
190
|
-
binding of `x` to `y`. If `x` was already bound in `m`, its previous
|
|
191
|
-
binding disappears. *)
|
|
192
|
-
|
|
193
|
-
val updateU:
|
|
194
|
-
('a, 'b, 'id) t ->
|
|
195
|
-
'a ->
|
|
196
|
-
('b option -> 'b option [@bs]) ->
|
|
197
|
-
cmp:('a, 'id) cmp ->
|
|
198
|
-
('a, 'b, 'id) t
|
|
199
|
-
val update:
|
|
200
|
-
('a, 'b, 'id) t ->
|
|
201
|
-
'a ->
|
|
202
|
-
('b option -> 'b option) ->
|
|
203
|
-
cmp:('a, 'id) cmp ->
|
|
204
|
-
('a, 'b, 'id) t
|
|
205
|
-
|
|
206
|
-
val mergeU:
|
|
207
|
-
('a, 'b, 'id) t ->
|
|
208
|
-
('a, 'c, 'id) t ->
|
|
209
|
-
('a -> 'b option -> 'c option -> 'd option [@bs]) ->
|
|
210
|
-
cmp:('a, 'id) cmp -> ('a, 'd, 'id) t
|
|
211
|
-
val merge:
|
|
212
|
-
('a, 'b, 'id) t ->
|
|
213
|
-
('a, 'c, 'id) t ->
|
|
214
|
-
('a -> 'b option -> 'c option -> 'd option) ->
|
|
215
|
-
cmp:('a, 'id) cmp -> ('a, 'd, 'id) t
|
|
216
|
-
(** `merge(m1, m2, f)` computes a map whose keys is a subset of keys of `m1`
|
|
217
|
-
and of `m2`. The presence of each such binding, and the corresponding
|
|
218
|
-
value, is determined with the function `f`. *)
|
|
219
|
-
|
|
220
|
-
val mergeMany:
|
|
221
|
-
('a, 'b, 'id) t ->
|
|
222
|
-
('a * 'b) array ->
|
|
223
|
-
cmp:('a, 'id) cmp ->
|
|
224
|
-
('a, 'b, 'id) t
|
|
225
|
-
|
|
226
|
-
val keepU:
|
|
227
|
-
('k, 'a, 'id) t ->
|
|
228
|
-
('k -> 'a -> bool [@bs]) ->
|
|
229
|
-
('k, 'a, 'id) t
|
|
230
|
-
val keep:
|
|
231
|
-
('k, 'a, 'id) t ->
|
|
232
|
-
('k -> 'a -> bool) ->
|
|
233
|
-
('k, 'a, 'id) t
|
|
234
|
-
(** `keep(m, p)` returns the map with all the bindings in `m` that satisfy
|
|
235
|
-
predicate `p`. *)
|
|
236
|
-
|
|
237
|
-
val partitionU:
|
|
238
|
-
('k, 'a, 'id) t ->
|
|
239
|
-
('k -> 'a -> bool [@bs]) ->
|
|
240
|
-
('k, 'a, 'id) t * ('k, 'a, 'id) t
|
|
241
|
-
val partition:
|
|
242
|
-
('k, 'a, 'id) t ->
|
|
243
|
-
('k -> 'a -> bool) ->
|
|
244
|
-
('k, 'a, 'id) t * ('k, 'a, 'id) t
|
|
245
|
-
(** `partition(m, p)` returns a pair of maps `(m1, m2)`, where `m1` contains
|
|
246
|
-
all the bindings of `s` that satisfy the predicate `p`, and `m2` is the map
|
|
247
|
-
with all the bindings of `s` that do not satisfy `p`. *)
|
|
248
|
-
|
|
249
|
-
val split:
|
|
250
|
-
('a, 'b, 'id) t ->
|
|
251
|
-
'a ->
|
|
252
|
-
cmp:('a, 'id) cmp ->
|
|
253
|
-
(('a,'b,'id) t * ('a, 'b, 'id) t) * 'b option
|
|
254
|
-
(** `split(x, m)` returns a triple `(l, data, r)`, where `l` is the map with
|
|
255
|
-
all the bindings of `m` whose key is strictly less than `x`; `r` is the map
|
|
256
|
-
with all the bindings of `m` whose key is strictly greater than `x`; `data`
|
|
257
|
-
is `None` if `m` contains no binding for `x`, or `Some(v)` if `m` binds `v`
|
|
258
|
-
to `x`. *)
|
|
259
|
-
|
|
260
|
-
val mapU: ('k, 'a, 'id) t -> ('a -> 'b [@bs]) -> ('k ,'b,'id) t
|
|
261
|
-
val map: ('k, 'a, 'id) t -> ('a -> 'b) -> ('k ,'b,'id) t
|
|
262
|
-
(** `map(m, f)` returns a map with same domain as `m`, where the associated
|
|
263
|
-
value `a` of all bindings of `m` has been replaced by the result of the
|
|
264
|
-
application of `f` to `a`. The bindings are passed to `f` in increasing
|
|
265
|
-
order with respect to the ordering over the type of the keys. *)
|
|
266
|
-
|
|
267
|
-
val mapWithKeyU: ('k, 'a, 'id) t -> ('k -> 'a -> 'b [@bs]) -> ('k, 'b, 'id) t
|
|
268
|
-
val mapWithKey: ('k, 'a, 'id) t -> ('k -> 'a -> 'b) -> ('k, 'b, 'id) t
|
|
Binary file
|
|
Binary file
|
|
Binary file
|