@tellahq/rescript 10.1.4-republish-2 → 10.1.4-republish-3
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/darwin/bsb_helper.exe +0 -0
- package/darwin/bsc.exe +0 -0
- package/darwin/ninja.exe +0 -0
- package/darwin/rescript.exe +0 -0
- 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/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 +359 -0
- package/lib/ocaml/arg.mli +185 -0
- 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 +307 -0
- package/lib/ocaml/array.mli +275 -0
- 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 +307 -0
- package/lib/ocaml/arrayLabels.mli +276 -0
- package/lib/ocaml/belt.cmi +0 -0
- package/lib/ocaml/belt.cmt +0 -0
- package/lib/ocaml/belt.ml +352 -0
- 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 +525 -0
- package/lib/ocaml/belt_Array.mli +707 -0
- 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 +50 -0
- package/lib/ocaml/belt_Float.mli +106 -0
- 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 +226 -0
- package/lib/ocaml/belt_HashMap.mli +436 -0
- 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 +206 -0
- package/lib/ocaml/belt_HashMapInt.mli +50 -0
- 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 +206 -0
- package/lib/ocaml/belt_HashMapString.mli +50 -0
- 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 +196 -0
- package/lib/ocaml/belt_HashSet.mli +125 -0
- 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 +155 -0
- package/lib/ocaml/belt_HashSetInt.mli +74 -0
- 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 +156 -0
- package/lib/ocaml/belt_HashSetString.mli +74 -0
- 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 +133 -0
- package/lib/ocaml/belt_Id.mli +171 -0
- 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 +50 -0
- package/lib/ocaml/belt_Int.mli +103 -0
- 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 +803 -0
- package/lib/ocaml/belt_List.mli +844 -0
- 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 +170 -0
- package/lib/ocaml/belt_Map.mli +496 -0
- 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 +278 -0
- package/lib/ocaml/belt_MapDict.mli +268 -0
- 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 +169 -0
- package/lib/ocaml/belt_MapInt.mli +187 -0
- 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 +169 -0
- package/lib/ocaml/belt_MapString.mli +187 -0
- 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 +241 -0
- package/lib/ocaml/belt_MutableMap.mli +145 -0
- 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 +172 -0
- package/lib/ocaml/belt_MutableMapInt.mli +135 -0
- 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 +172 -0
- package/lib/ocaml/belt_MutableMapString.mli +135 -0
- 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 +222 -0
- package/lib/ocaml/belt_MutableQueue.mli +116 -0
- 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 +371 -0
- package/lib/ocaml/belt_MutableSet.mli +617 -0
- 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 +342 -0
- package/lib/ocaml/belt_MutableSetInt.mli +124 -0
- 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 +342 -0
- package/lib/ocaml/belt_MutableSetString.mli +124 -0
- 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 +106 -0
- package/lib/ocaml/belt_MutableStack.mli +63 -0
- 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 +93 -0
- package/lib/ocaml/belt_Option.mli +270 -0
- 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 +76 -0
- package/lib/ocaml/belt_Range.mli +114 -0
- 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 +75 -0
- package/lib/ocaml/belt_Result.mli +205 -0
- 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 +205 -0
- package/lib/ocaml/belt_Set.cppo.mli +153 -0
- package/lib/ocaml/belt_Set.ml +164 -0
- package/lib/ocaml/belt_Set.mli +523 -0
- 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 +237 -0
- package/lib/ocaml/belt_SetDict.mli +567 -0
- 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 +201 -0
- package/lib/ocaml/belt_SetInt.mli +151 -0
- 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 +201 -0
- package/lib/ocaml/belt_SetString.mli +151 -0
- 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 +322 -0
- package/lib/ocaml/belt_SortArray.mli +146 -0
- 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 +263 -0
- package/lib/ocaml/belt_SortArrayInt.mli +93 -0
- 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 +263 -0
- package/lib/ocaml/belt_SortArrayString.mli +93 -0
- package/lib/ocaml/belt_internalAVLset.cmt +0 -0
- package/lib/ocaml/belt_internalAVLset.cmti +0 -0
- package/lib/ocaml/belt_internalAVLset.ml +665 -0
- package/lib/ocaml/belt_internalAVLset.mli +124 -0
- package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
- package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
- package/lib/ocaml/belt_internalAVLtree.ml +762 -0
- package/lib/ocaml/belt_internalAVLtree.mli +215 -0
- package/lib/ocaml/belt_internalBuckets.cmt +0 -0
- package/lib/ocaml/belt_internalBuckets.cmti +0 -0
- package/lib/ocaml/belt_internalBuckets.ml +218 -0
- package/lib/ocaml/belt_internalBuckets.mli +57 -0
- package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
- package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
- package/lib/ocaml/belt_internalBucketsType.ml +59 -0
- package/lib/ocaml/belt_internalBucketsType.mli +46 -0
- package/lib/ocaml/belt_internalMapInt.cmt +0 -0
- package/lib/ocaml/belt_internalMapInt.ml +227 -0
- package/lib/ocaml/belt_internalMapString.cmt +0 -0
- package/lib/ocaml/belt_internalMapString.ml +227 -0
- package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
- package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
- package/lib/ocaml/belt_internalSetBuckets.ml +157 -0
- package/lib/ocaml/belt_internalSetBuckets.mli +47 -0
- package/lib/ocaml/belt_internalSetInt.cmt +0 -0
- package/lib/ocaml/belt_internalSetInt.ml +129 -0
- package/lib/ocaml/belt_internalSetString.cmt +0 -0
- package/lib/ocaml/belt_internalSetString.ml +129 -0
- package/lib/ocaml/belt_internals.cmti +0 -0
- package/lib/ocaml/belt_internals.mli +79 -0
- 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 +250 -0
- package/lib/ocaml/buffer.mli +149 -0
- 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 +431 -0
- package/lib/ocaml/bytes.mli +430 -0
- 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 +428 -0
- package/lib/ocaml/bytesLabels.mli +276 -0
- 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 +20 -0
- package/lib/ocaml/callback.mli +34 -0
- 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 +89 -0
- package/lib/ocaml/camlinternalLazy.mli +27 -0
- 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 +21 -0
- package/lib/ocaml/camlinternalMod.mli +25 -0
- 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 +76 -0
- package/lib/ocaml/char.mli +72 -0
- 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 +87 -0
- package/lib/ocaml/complex.mli +86 -0
- 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 +66 -0
- package/lib/ocaml/digest.mli +68 -0
- package/lib/ocaml/dom.cmi +0 -0
- package/lib/ocaml/dom.cmt +0 -0
- package/lib/ocaml/dom.ml +296 -0
- package/lib/ocaml/dom_storage.cmi +0 -0
- package/lib/ocaml/dom_storage.cmt +0 -0
- package/lib/ocaml/dom_storage.ml +22 -0
- package/lib/ocaml/dom_storage2.cmi +0 -0
- package/lib/ocaml/dom_storage2.cmt +0 -0
- package/lib/ocaml/dom_storage2.ml +11 -0
- 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 +233 -0
- package/lib/ocaml/filename.mli +134 -0
- 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 +201 -0
- package/lib/ocaml/genlex.mli +73 -0
- package/lib/ocaml/hashmap.cppo.ml +214 -0
- package/lib/ocaml/hashmap.cppo.mli +54 -0
- package/lib/ocaml/hashset.cppo.ml +165 -0
- package/lib/ocaml/hashset.cppo.mli +77 -0
- 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 +541 -0
- package/lib/ocaml/hashtbl.mli +411 -0
- package/lib/ocaml/hashtblLabels.cmi +0 -0
- package/lib/ocaml/hashtblLabels.cmt +0 -0
- package/lib/ocaml/hashtblLabels.ml +130 -0
- 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 +64 -0
- package/lib/ocaml/int32.mli +186 -0
- 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 +72 -0
- package/lib/ocaml/int64.mli +197 -0
- package/lib/ocaml/internal_map.cppo.ml +230 -0
- package/lib/ocaml/internal_set.cppo.ml +134 -0
- package/lib/ocaml/js.cmi +0 -0
- package/lib/ocaml/js.cmt +0 -0
- package/lib/ocaml/js.ml +316 -0
- package/lib/ocaml/js_OO.cmi +0 -0
- package/lib/ocaml/js_OO.cmt +0 -0
- package/lib/ocaml/js_OO.ml +180 -0
- package/lib/ocaml/js_array.cmi +0 -0
- package/lib/ocaml/js_array.cmt +0 -0
- package/lib/ocaml/js_array.ml +970 -0
- package/lib/ocaml/js_array2.cmi +0 -0
- package/lib/ocaml/js_array2.cmt +0 -0
- package/lib/ocaml/js_array2.ml +1065 -0
- package/lib/ocaml/js_bigint.cmi +0 -0
- package/lib/ocaml/js_bigint.cmt +0 -0
- package/lib/ocaml/js_bigint.ml +3 -0
- 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 +29 -0
- package/lib/ocaml/js_cast.mli +45 -0
- package/lib/ocaml/js_console.cmi +0 -0
- package/lib/ocaml/js_console.cmt +0 -0
- package/lib/ocaml/js_console.ml +51 -0
- package/lib/ocaml/js_date.cmi +0 -0
- package/lib/ocaml/js_date.cmt +0 -0
- package/lib/ocaml/js_date.ml +1263 -0
- 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 +114 -0
- package/lib/ocaml/js_dict.mli +152 -0
- 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 +102 -0
- package/lib/ocaml/js_exn.mli +79 -0
- package/lib/ocaml/js_float.cmi +0 -0
- package/lib/ocaml/js_float.cmt +0 -0
- package/lib/ocaml/js_float.ml +294 -0
- package/lib/ocaml/js_global.cmi +0 -0
- package/lib/ocaml/js_global.cmt +0 -0
- package/lib/ocaml/js_global.ml +185 -0
- package/lib/ocaml/js_int.cmi +0 -0
- package/lib/ocaml/js_int.cmt +0 -0
- package/lib/ocaml/js_int.ml +158 -0
- 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 +195 -0
- package/lib/ocaml/js_json.mli +244 -0
- 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 +174 -0
- package/lib/ocaml/js_list.mli +72 -0
- package/lib/ocaml/js_map.cmi +0 -0
- package/lib/ocaml/js_map.cmt +0 -0
- package/lib/ocaml/js_map.ml +3 -0
- 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 +50 -0
- package/lib/ocaml/js_mapperRt.mli +44 -0
- package/lib/ocaml/js_math.cmi +0 -0
- package/lib/ocaml/js_math.cmt +0 -0
- package/lib/ocaml/js_math.ml +626 -0
- 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 +57 -0
- package/lib/ocaml/js_null.mli +87 -0
- 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 +50 -0
- package/lib/ocaml/js_null_undefined.mli +85 -0
- package/lib/ocaml/js_obj.cmi +0 -0
- package/lib/ocaml/js_obj.cmt +0 -0
- package/lib/ocaml/js_obj.ml +100 -0
- 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 +203 -0
- package/lib/ocaml/js_option.mli +52 -0
- package/lib/ocaml/js_promise.cmi +0 -0
- package/lib/ocaml/js_promise.cmt +0 -0
- package/lib/ocaml/js_promise.ml +100 -0
- package/lib/ocaml/js_promise2.cmi +0 -0
- package/lib/ocaml/js_promise2.cmt +0 -0
- package/lib/ocaml/js_promise2.res +58 -0
- package/lib/ocaml/js_re.cmi +0 -0
- package/lib/ocaml/js_re.cmt +0 -0
- package/lib/ocaml/js_re.ml +184 -0
- 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 +28 -0
- package/lib/ocaml/js_result.mli +28 -0
- package/lib/ocaml/js_set.cmi +0 -0
- package/lib/ocaml/js_set.cmt +0 -0
- package/lib/ocaml/js_set.ml +3 -0
- package/lib/ocaml/js_string.cmi +0 -0
- package/lib/ocaml/js_string.cmt +0 -0
- package/lib/ocaml/js_string.ml +914 -0
- package/lib/ocaml/js_string2.cmi +0 -0
- package/lib/ocaml/js_string2.cmt +0 -0
- package/lib/ocaml/js_string2.ml +912 -0
- 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 +429 -0
- package/lib/ocaml/js_typed_array.ml +1405 -0
- 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 +296 -0
- package/lib/ocaml/js_typed_array2.ml +1269 -0
- 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 +118 -0
- package/lib/ocaml/js_types.mli +78 -0
- 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 +59 -0
- package/lib/ocaml/js_undefined.mli +92 -0
- 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 +143 -0
- package/lib/ocaml/js_vector.mli +92 -0
- package/lib/ocaml/js_weakmap.cmi +0 -0
- package/lib/ocaml/js_weakmap.cmt +0 -0
- package/lib/ocaml/js_weakmap.ml +3 -0
- package/lib/ocaml/js_weakset.cmi +0 -0
- package/lib/ocaml/js_weakset.cmt +0 -0
- package/lib/ocaml/js_weakset.ml +3 -0
- package/lib/ocaml/jsx.cmi +0 -0
- package/lib/ocaml/jsx.cmt +0 -0
- package/lib/ocaml/jsx.res +40 -0
- package/lib/ocaml/jsxDOM.cmi +0 -0
- package/lib/ocaml/jsxDOM.cmt +0 -0
- package/lib/ocaml/jsxDOM.res +620 -0
- package/lib/ocaml/jsxDOMStyle.cmi +0 -0
- package/lib/ocaml/jsxDOMStyle.cmt +0 -0
- package/lib/ocaml/jsxDOMStyle.ml +781 -0
- package/lib/ocaml/jsxEvent.cmi +0 -0
- package/lib/ocaml/jsxEvent.cmt +0 -0
- package/lib/ocaml/jsxEvent.ml +358 -0
- package/lib/ocaml/jsxPPXReactSupport.cmi +0 -0
- package/lib/ocaml/jsxPPXReactSupport.cmt +0 -0
- package/lib/ocaml/jsxPPXReactSupport.res +48 -0
- 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 +70 -0
- package/lib/ocaml/lazy.mli +95 -0
- 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 +230 -0
- package/lib/ocaml/lexing.mli +172 -0
- 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 +485 -0
- package/lib/ocaml/list.mli +347 -0
- 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 +485 -0
- package/lib/ocaml/listLabels.mli +353 -0
- 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 +174 -0
- package/lib/ocaml/map.cppo.mli +191 -0
- package/lib/ocaml/map.ml +480 -0
- package/lib/ocaml/map.mli +315 -0
- package/lib/ocaml/mapLabels.cmi +0 -0
- package/lib/ocaml/mapLabels.cmt +0 -0
- package/lib/ocaml/mapLabels.ml +480 -0
- package/lib/ocaml/mapm.cppo.ml +177 -0
- package/lib/ocaml/mapm.cppo.mli +138 -0
- 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 +22 -0
- package/lib/ocaml/moreLabels.mli +198 -0
- package/lib/ocaml/node.cmi +0 -0
- package/lib/ocaml/node.cmt +0 -0
- package/lib/ocaml/node.ml +84 -0
- package/lib/ocaml/node_buffer.cmi +0 -0
- package/lib/ocaml/node_buffer.cmt +0 -0
- package/lib/ocaml/node_buffer.ml +47 -0
- 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 +50 -0
- package/lib/ocaml/node_fs.cmi +0 -0
- package/lib/ocaml/node_fs.cmt +0 -0
- package/lib/ocaml/node_fs.ml +153 -0
- package/lib/ocaml/node_module.cmi +0 -0
- package/lib/ocaml/node_module.cmt +0 -0
- package/lib/ocaml/node_module.ml +29 -0
- package/lib/ocaml/node_path.cmi +0 -0
- package/lib/ocaml/node_path.cmt +0 -0
- package/lib/ocaml/node_path.ml +71 -0
- 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 +59 -0
- package/lib/ocaml/node_process.mli +48 -0
- 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 +29 -0
- package/lib/ocaml/obj.mli +62 -0
- 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 +212 -0
- package/lib/ocaml/parsing.mli +105 -0
- 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 +297 -0
- package/lib/ocaml/pervasives.mli +771 -0
- 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 +75 -0
- package/lib/ocaml/printexc.mli +57 -0
- 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 +132 -0
- package/lib/ocaml/queue.mli +82 -0
- 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 +273 -0
- package/lib/ocaml/random.mli +102 -0
- 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 +526 -0
- package/lib/ocaml/set.mli +266 -0
- package/lib/ocaml/setLabels.cmi +0 -0
- package/lib/ocaml/setLabels.cmt +0 -0
- package/lib/ocaml/setLabels.ml +526 -0
- package/lib/ocaml/setm.cppo.ml +346 -0
- package/lib/ocaml/setm.cppo.mli +126 -0
- 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 +267 -0
- package/lib/ocaml/sort.cppo.mli +96 -0
- package/lib/ocaml/sort.ml +99 -0
- package/lib/ocaml/sort.mli +44 -0
- 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 +44 -0
- package/lib/ocaml/stack.mli +63 -0
- 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 +24 -0
- package/lib/ocaml/stdLabels.mli +29 -0
- 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 +213 -0
- package/lib/ocaml/stream.mli +108 -0
- 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 +190 -0
- package/lib/ocaml/string.mli +286 -0
- 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 +190 -0
- package/lib/ocaml/stringLabels.mli +241 -0
- 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 +135 -0
- package/lib/ocaml/sys.mli +333 -0
- 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 +58 -0
- package/lib/ocaml/uchar.mli +98 -0
- package/linux/bsb_helper.exe +0 -0
- package/linux/bsc.exe +0 -0
- package/linux/ninja.exe +0 -0
- package/linux/rescript.exe +0 -0
- package/ninja.COPYING +202 -0
- package/package.json +1 -1
- package/vendor/ninja.tar.gz +0 -0
- package/win32/bsb_helper.exe +0 -0
- package/win32/bsc.exe +0 -0
- package/win32/ninja.exe +0 -0
- package/win32/refmt.exe +0 -0
- package/win32/rescript.exe +0 -0
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
(**************************************************************************)
|
|
2
|
+
(* *)
|
|
3
|
+
(* OCaml *)
|
|
4
|
+
(* *)
|
|
5
|
+
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
6
|
+
(* *)
|
|
7
|
+
(* Copyright 1996 Institut National de Recherche en Informatique et *)
|
|
8
|
+
(* en Automatique. *)
|
|
9
|
+
(* *)
|
|
10
|
+
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
+
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
+
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
+
(* *)
|
|
14
|
+
(**************************************************************************)
|
|
15
|
+
|
|
16
|
+
(* List operations *)
|
|
17
|
+
|
|
18
|
+
let rec length_aux len = function
|
|
19
|
+
[] -> len
|
|
20
|
+
| _::l -> length_aux (len + 1) l
|
|
21
|
+
|
|
22
|
+
let length l = length_aux 0 l
|
|
23
|
+
|
|
24
|
+
let cons a l = a::l
|
|
25
|
+
|
|
26
|
+
let hd = function
|
|
27
|
+
[] -> failwith "hd"
|
|
28
|
+
| a::_ -> a
|
|
29
|
+
|
|
30
|
+
let tl = function
|
|
31
|
+
[] -> failwith "tl"
|
|
32
|
+
| _::l -> l
|
|
33
|
+
|
|
34
|
+
let nth l n =
|
|
35
|
+
if n < 0 then invalid_arg "List.nth" else
|
|
36
|
+
let rec nth_aux l n =
|
|
37
|
+
match l with
|
|
38
|
+
| [] -> failwith "nth"
|
|
39
|
+
| a::l -> if n = 0 then a else nth_aux l (n-1)
|
|
40
|
+
in nth_aux l n
|
|
41
|
+
|
|
42
|
+
let nth_opt l n =
|
|
43
|
+
if n < 0 then invalid_arg "List.nth" else
|
|
44
|
+
let rec nth_aux l n =
|
|
45
|
+
match l with
|
|
46
|
+
| [] -> None
|
|
47
|
+
| a::l -> if n = 0 then Some a else nth_aux l (n-1)
|
|
48
|
+
in nth_aux l n
|
|
49
|
+
|
|
50
|
+
let append = (@)
|
|
51
|
+
|
|
52
|
+
let rec rev_append l1 l2 =
|
|
53
|
+
match l1 with
|
|
54
|
+
[] -> l2
|
|
55
|
+
| a :: l -> rev_append l (a :: l2)
|
|
56
|
+
|
|
57
|
+
let rev l = rev_append l []
|
|
58
|
+
|
|
59
|
+
let rec init_tailrec_aux acc i n f =
|
|
60
|
+
if i >= n then acc
|
|
61
|
+
else init_tailrec_aux (f i :: acc) (i+1) n f
|
|
62
|
+
|
|
63
|
+
let rec init_aux i n f =
|
|
64
|
+
if i >= n then []
|
|
65
|
+
else
|
|
66
|
+
let r = f i in
|
|
67
|
+
r :: init_aux (i+1) n f
|
|
68
|
+
|
|
69
|
+
let init len f =
|
|
70
|
+
if len < 0 then invalid_arg "List.init" else
|
|
71
|
+
if len > 10_000 then rev (init_tailrec_aux [] 0 len f)
|
|
72
|
+
else init_aux 0 len f
|
|
73
|
+
|
|
74
|
+
let rec flatten = function
|
|
75
|
+
[] -> []
|
|
76
|
+
| l::r -> l @ flatten r
|
|
77
|
+
|
|
78
|
+
let concat = flatten
|
|
79
|
+
|
|
80
|
+
let rec map f = function
|
|
81
|
+
[] -> []
|
|
82
|
+
| a::l -> let r = f a in r :: map f l
|
|
83
|
+
|
|
84
|
+
let rec mapi i f = function
|
|
85
|
+
[] -> []
|
|
86
|
+
| a::l -> let r = f i a in r :: mapi (i + 1) f l
|
|
87
|
+
|
|
88
|
+
let mapi f l = mapi 0 f l
|
|
89
|
+
|
|
90
|
+
let rev_map f l =
|
|
91
|
+
let rec rmap_f accu = function
|
|
92
|
+
| [] -> accu
|
|
93
|
+
| a::l -> rmap_f (f a :: accu) l
|
|
94
|
+
in
|
|
95
|
+
rmap_f [] l
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
let rec iter f = function
|
|
99
|
+
[] -> ()
|
|
100
|
+
| a::l -> f a; iter f l
|
|
101
|
+
|
|
102
|
+
let rec iteri i f = function
|
|
103
|
+
[] -> ()
|
|
104
|
+
| a::l -> f i a; iteri (i + 1) f l
|
|
105
|
+
|
|
106
|
+
let iteri f l = iteri 0 f l
|
|
107
|
+
|
|
108
|
+
let rec fold_left f accu l =
|
|
109
|
+
match l with
|
|
110
|
+
[] -> accu
|
|
111
|
+
| a::l -> fold_left f (f accu a) l
|
|
112
|
+
|
|
113
|
+
let rec fold_right f l accu =
|
|
114
|
+
match l with
|
|
115
|
+
[] -> accu
|
|
116
|
+
| a::l -> f a (fold_right f l accu)
|
|
117
|
+
|
|
118
|
+
let rec map2 f l1 l2 =
|
|
119
|
+
match (l1, l2) with
|
|
120
|
+
([], []) -> []
|
|
121
|
+
| (a1::l1, a2::l2) -> let r = f a1 a2 in r :: map2 f l1 l2
|
|
122
|
+
| (_, _) -> invalid_arg "List.map2"
|
|
123
|
+
|
|
124
|
+
let rev_map2 f l1 l2 =
|
|
125
|
+
let rec rmap2_f accu l1 l2 =
|
|
126
|
+
match (l1, l2) with
|
|
127
|
+
| ([], []) -> accu
|
|
128
|
+
| (a1::l1, a2::l2) -> rmap2_f (f a1 a2 :: accu) l1 l2
|
|
129
|
+
| (_, _) -> invalid_arg "List.rev_map2"
|
|
130
|
+
in
|
|
131
|
+
rmap2_f [] l1 l2
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
let rec iter2 f l1 l2 =
|
|
135
|
+
match (l1, l2) with
|
|
136
|
+
([], []) -> ()
|
|
137
|
+
| (a1::l1, a2::l2) -> f a1 a2; iter2 f l1 l2
|
|
138
|
+
| (_, _) -> invalid_arg "List.iter2"
|
|
139
|
+
|
|
140
|
+
let rec fold_left2 f accu l1 l2 =
|
|
141
|
+
match (l1, l2) with
|
|
142
|
+
([], []) -> accu
|
|
143
|
+
| (a1::l1, a2::l2) -> fold_left2 f (f accu a1 a2) l1 l2
|
|
144
|
+
| (_, _) -> invalid_arg "List.fold_left2"
|
|
145
|
+
|
|
146
|
+
let rec fold_right2 f l1 l2 accu =
|
|
147
|
+
match (l1, l2) with
|
|
148
|
+
([], []) -> accu
|
|
149
|
+
| (a1::l1, a2::l2) -> f a1 a2 (fold_right2 f l1 l2 accu)
|
|
150
|
+
| (_, _) -> invalid_arg "List.fold_right2"
|
|
151
|
+
|
|
152
|
+
let rec for_all p = function
|
|
153
|
+
[] -> true
|
|
154
|
+
| a::l -> p a && for_all p l
|
|
155
|
+
|
|
156
|
+
let rec exists p = function
|
|
157
|
+
[] -> false
|
|
158
|
+
| a::l -> p a || exists p l
|
|
159
|
+
|
|
160
|
+
let rec for_all2 p l1 l2 =
|
|
161
|
+
match (l1, l2) with
|
|
162
|
+
([], []) -> true
|
|
163
|
+
| (a1::l1, a2::l2) -> p a1 a2 && for_all2 p l1 l2
|
|
164
|
+
| (_, _) -> invalid_arg "List.for_all2"
|
|
165
|
+
|
|
166
|
+
let rec exists2 p l1 l2 =
|
|
167
|
+
match (l1, l2) with
|
|
168
|
+
([], []) -> false
|
|
169
|
+
| (a1::l1, a2::l2) -> p a1 a2 || exists2 p l1 l2
|
|
170
|
+
| (_, _) -> invalid_arg "List.exists2"
|
|
171
|
+
|
|
172
|
+
let rec mem x = function
|
|
173
|
+
[] -> false
|
|
174
|
+
| a::l -> compare a x = 0 || mem x l
|
|
175
|
+
|
|
176
|
+
let rec memq x = function
|
|
177
|
+
[] -> false
|
|
178
|
+
| a::l -> a == x || memq x l
|
|
179
|
+
|
|
180
|
+
let rec assoc x = function
|
|
181
|
+
[] -> raise Not_found
|
|
182
|
+
| (a,b)::l -> if compare a x = 0 then b else assoc x l
|
|
183
|
+
|
|
184
|
+
let rec assoc_opt x = function
|
|
185
|
+
[] -> None
|
|
186
|
+
| (a,b)::l -> if compare a x = 0 then Some b else assoc_opt x l
|
|
187
|
+
|
|
188
|
+
let rec assq x = function
|
|
189
|
+
[] -> raise Not_found
|
|
190
|
+
| (a,b)::l -> if a == x then b else assq x l
|
|
191
|
+
|
|
192
|
+
let rec assq_opt x = function
|
|
193
|
+
[] -> None
|
|
194
|
+
| (a,b)::l -> if a == x then Some b else assq_opt x l
|
|
195
|
+
|
|
196
|
+
let rec mem_assoc x = function
|
|
197
|
+
| [] -> false
|
|
198
|
+
| (a, _) :: l -> compare a x = 0 || mem_assoc x l
|
|
199
|
+
|
|
200
|
+
let rec mem_assq x = function
|
|
201
|
+
| [] -> false
|
|
202
|
+
| (a, _) :: l -> a == x || mem_assq x l
|
|
203
|
+
|
|
204
|
+
let rec remove_assoc x = function
|
|
205
|
+
| [] -> []
|
|
206
|
+
| (a, _ as pair) :: l ->
|
|
207
|
+
if compare a x = 0 then l else pair :: remove_assoc x l
|
|
208
|
+
|
|
209
|
+
let rec remove_assq x = function
|
|
210
|
+
| [] -> []
|
|
211
|
+
| (a, _ as pair) :: l -> if a == x then l else pair :: remove_assq x l
|
|
212
|
+
|
|
213
|
+
let rec find p = function
|
|
214
|
+
| [] -> raise Not_found
|
|
215
|
+
| x :: l -> if p x then x else find p l
|
|
216
|
+
|
|
217
|
+
let rec find_opt p = function
|
|
218
|
+
| [] -> None
|
|
219
|
+
| x :: l -> if p x then Some x else find_opt p l
|
|
220
|
+
|
|
221
|
+
let find_all p =
|
|
222
|
+
let rec find accu = function
|
|
223
|
+
| [] -> rev accu
|
|
224
|
+
| x :: l -> if p x then find (x :: accu) l else find accu l in
|
|
225
|
+
find []
|
|
226
|
+
|
|
227
|
+
let filter = find_all
|
|
228
|
+
|
|
229
|
+
let partition p l =
|
|
230
|
+
let rec part yes no = function
|
|
231
|
+
| [] -> (rev yes, rev no)
|
|
232
|
+
| x :: l -> if p x then part (x :: yes) no l else part yes (x :: no) l in
|
|
233
|
+
part [] [] l
|
|
234
|
+
|
|
235
|
+
let rec split = function
|
|
236
|
+
[] -> ([], [])
|
|
237
|
+
| (x,y)::l ->
|
|
238
|
+
let (rx, ry) = split l in (x::rx, y::ry)
|
|
239
|
+
|
|
240
|
+
let rec combine l1 l2 =
|
|
241
|
+
match (l1, l2) with
|
|
242
|
+
([], []) -> []
|
|
243
|
+
| (a1::l1, a2::l2) -> (a1, a2) :: combine l1 l2
|
|
244
|
+
| (_, _) -> invalid_arg "List.combine"
|
|
245
|
+
|
|
246
|
+
(** sorting *)
|
|
247
|
+
|
|
248
|
+
let rec merge cmp l1 l2 =
|
|
249
|
+
match l1, l2 with
|
|
250
|
+
| [], l2 -> l2
|
|
251
|
+
| l1, [] -> l1
|
|
252
|
+
| h1 :: t1, h2 :: t2 ->
|
|
253
|
+
if cmp h1 h2 <= 0
|
|
254
|
+
then h1 :: merge cmp t1 l2
|
|
255
|
+
else h2 :: merge cmp l1 t2
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
let rec chop k l =
|
|
259
|
+
if k = 0 then l else begin
|
|
260
|
+
match l with
|
|
261
|
+
| _::t -> chop (k-1) t
|
|
262
|
+
| _ -> assert false
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
let stable_sort cmp l =
|
|
267
|
+
let rec rev_merge l1 l2 accu =
|
|
268
|
+
match l1, l2 with
|
|
269
|
+
| [], l2 -> rev_append l2 accu
|
|
270
|
+
| l1, [] -> rev_append l1 accu
|
|
271
|
+
| h1::t1, h2::t2 ->
|
|
272
|
+
if cmp h1 h2 <= 0
|
|
273
|
+
then rev_merge t1 l2 (h1::accu)
|
|
274
|
+
else rev_merge l1 t2 (h2::accu)
|
|
275
|
+
in
|
|
276
|
+
let rec rev_merge_rev l1 l2 accu =
|
|
277
|
+
match l1, l2 with
|
|
278
|
+
| [], l2 -> rev_append l2 accu
|
|
279
|
+
| l1, [] -> rev_append l1 accu
|
|
280
|
+
| h1::t1, h2::t2 ->
|
|
281
|
+
if cmp h1 h2 > 0
|
|
282
|
+
then rev_merge_rev t1 l2 (h1::accu)
|
|
283
|
+
else rev_merge_rev l1 t2 (h2::accu)
|
|
284
|
+
in
|
|
285
|
+
let rec sort n l =
|
|
286
|
+
match n, l with
|
|
287
|
+
| 2, x1 :: x2 :: _ ->
|
|
288
|
+
if cmp x1 x2 <= 0 then [x1; x2] else [x2; x1]
|
|
289
|
+
| 3, x1 :: x2 :: x3 :: _ ->
|
|
290
|
+
if cmp x1 x2 <= 0 then begin
|
|
291
|
+
if cmp x2 x3 <= 0 then [x1; x2; x3]
|
|
292
|
+
else if cmp x1 x3 <= 0 then [x1; x3; x2]
|
|
293
|
+
else [x3; x1; x2]
|
|
294
|
+
end else begin
|
|
295
|
+
if cmp x1 x3 <= 0 then [x2; x1; x3]
|
|
296
|
+
else if cmp x2 x3 <= 0 then [x2; x3; x1]
|
|
297
|
+
else [x3; x2; x1]
|
|
298
|
+
end
|
|
299
|
+
| n, l ->
|
|
300
|
+
let n1 = n asr 1 in
|
|
301
|
+
let n2 = n - n1 in
|
|
302
|
+
let l2 = chop n1 l in
|
|
303
|
+
let s1 = rev_sort n1 l in
|
|
304
|
+
let s2 = rev_sort n2 l2 in
|
|
305
|
+
rev_merge_rev s1 s2 []
|
|
306
|
+
and rev_sort n l =
|
|
307
|
+
match n, l with
|
|
308
|
+
| 2, x1 :: x2 :: _ ->
|
|
309
|
+
if cmp x1 x2 > 0 then [x1; x2] else [x2; x1]
|
|
310
|
+
| 3, x1 :: x2 :: x3 :: _ ->
|
|
311
|
+
if cmp x1 x2 > 0 then begin
|
|
312
|
+
if cmp x2 x3 > 0 then [x1; x2; x3]
|
|
313
|
+
else if cmp x1 x3 > 0 then [x1; x3; x2]
|
|
314
|
+
else [x3; x1; x2]
|
|
315
|
+
end else begin
|
|
316
|
+
if cmp x1 x3 > 0 then [x2; x1; x3]
|
|
317
|
+
else if cmp x2 x3 > 0 then [x2; x3; x1]
|
|
318
|
+
else [x3; x2; x1]
|
|
319
|
+
end
|
|
320
|
+
| n, l ->
|
|
321
|
+
let n1 = n asr 1 in
|
|
322
|
+
let n2 = n - n1 in
|
|
323
|
+
let l2 = chop n1 l in
|
|
324
|
+
let s1 = sort n1 l in
|
|
325
|
+
let s2 = sort n2 l2 in
|
|
326
|
+
rev_merge s1 s2 []
|
|
327
|
+
in
|
|
328
|
+
let len = length l in
|
|
329
|
+
if len < 2 then l else sort len l
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
let sort = stable_sort
|
|
333
|
+
let fast_sort = stable_sort
|
|
334
|
+
|
|
335
|
+
(* Note: on a list of length between about 100000 (depending on the minor
|
|
336
|
+
heap size and the type of the list) and Sys.max_array_size, it is
|
|
337
|
+
actually faster to use the following, but it might also use more memory
|
|
338
|
+
because the argument list cannot be deallocated incrementally.
|
|
339
|
+
|
|
340
|
+
Also, there seems to be a bug in this code or in the
|
|
341
|
+
implementation of obj_truncate.
|
|
342
|
+
|
|
343
|
+
external obj_truncate : 'a array -> int -> unit = "caml_obj_truncate"
|
|
344
|
+
|
|
345
|
+
let array_to_list_in_place a =
|
|
346
|
+
let l = Array.length a in
|
|
347
|
+
let rec loop accu n p =
|
|
348
|
+
if p <= 0 then accu else begin
|
|
349
|
+
if p = n then begin
|
|
350
|
+
obj_truncate a p;
|
|
351
|
+
loop (a.(p-1) :: accu) (n-1000) (p-1)
|
|
352
|
+
end else begin
|
|
353
|
+
loop (a.(p-1) :: accu) n (p-1)
|
|
354
|
+
end
|
|
355
|
+
end
|
|
356
|
+
in
|
|
357
|
+
loop [] (l-1000) l
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
let stable_sort cmp l =
|
|
361
|
+
let a = Array.of_list l in
|
|
362
|
+
Array.stable_sort cmp a;
|
|
363
|
+
array_to_list_in_place a
|
|
364
|
+
|
|
365
|
+
*)
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
(** sorting + removing duplicates *)
|
|
369
|
+
|
|
370
|
+
let sort_uniq cmp l =
|
|
371
|
+
let rec rev_merge l1 l2 accu =
|
|
372
|
+
match l1, l2 with
|
|
373
|
+
| [], l2 -> rev_append l2 accu
|
|
374
|
+
| l1, [] -> rev_append l1 accu
|
|
375
|
+
| h1::t1, h2::t2 ->
|
|
376
|
+
let c = cmp h1 h2 in
|
|
377
|
+
if c = 0 then rev_merge t1 t2 (h1::accu)
|
|
378
|
+
else if c < 0
|
|
379
|
+
then rev_merge t1 l2 (h1::accu)
|
|
380
|
+
else rev_merge l1 t2 (h2::accu)
|
|
381
|
+
in
|
|
382
|
+
let rec rev_merge_rev l1 l2 accu =
|
|
383
|
+
match l1, l2 with
|
|
384
|
+
| [], l2 -> rev_append l2 accu
|
|
385
|
+
| l1, [] -> rev_append l1 accu
|
|
386
|
+
| h1::t1, h2::t2 ->
|
|
387
|
+
let c = cmp h1 h2 in
|
|
388
|
+
if c = 0 then rev_merge_rev t1 t2 (h1::accu)
|
|
389
|
+
else if c > 0
|
|
390
|
+
then rev_merge_rev t1 l2 (h1::accu)
|
|
391
|
+
else rev_merge_rev l1 t2 (h2::accu)
|
|
392
|
+
in
|
|
393
|
+
let rec sort n l =
|
|
394
|
+
match n, l with
|
|
395
|
+
| 2, x1 :: x2 :: _ ->
|
|
396
|
+
let c = cmp x1 x2 in
|
|
397
|
+
if c = 0 then [x1]
|
|
398
|
+
else if c < 0 then [x1; x2] else [x2; x1]
|
|
399
|
+
| 3, x1 :: x2 :: x3 :: _ ->
|
|
400
|
+
let c = cmp x1 x2 in
|
|
401
|
+
if c = 0 then begin
|
|
402
|
+
let c = cmp x2 x3 in
|
|
403
|
+
if c = 0 then [x2]
|
|
404
|
+
else if c < 0 then [x2; x3] else [x3; x2]
|
|
405
|
+
end else if c < 0 then begin
|
|
406
|
+
let c = cmp x2 x3 in
|
|
407
|
+
if c = 0 then [x1; x2]
|
|
408
|
+
else if c < 0 then [x1; x2; x3]
|
|
409
|
+
else let c = cmp x1 x3 in
|
|
410
|
+
if c = 0 then [x1; x2]
|
|
411
|
+
else if c < 0 then [x1; x3; x2]
|
|
412
|
+
else [x3; x1; x2]
|
|
413
|
+
end else begin
|
|
414
|
+
let c = cmp x1 x3 in
|
|
415
|
+
if c = 0 then [x2; x1]
|
|
416
|
+
else if c < 0 then [x2; x1; x3]
|
|
417
|
+
else let c = cmp x2 x3 in
|
|
418
|
+
if c = 0 then [x2; x1]
|
|
419
|
+
else if c < 0 then [x2; x3; x1]
|
|
420
|
+
else [x3; x2; x1]
|
|
421
|
+
end
|
|
422
|
+
| n, l ->
|
|
423
|
+
let n1 = n asr 1 in
|
|
424
|
+
let n2 = n - n1 in
|
|
425
|
+
let l2 = chop n1 l in
|
|
426
|
+
let s1 = rev_sort n1 l in
|
|
427
|
+
let s2 = rev_sort n2 l2 in
|
|
428
|
+
rev_merge_rev s1 s2 []
|
|
429
|
+
and rev_sort n l =
|
|
430
|
+
match n, l with
|
|
431
|
+
| 2, x1 :: x2 :: _ ->
|
|
432
|
+
let c = cmp x1 x2 in
|
|
433
|
+
if c = 0 then [x1]
|
|
434
|
+
else if c > 0 then [x1; x2] else [x2; x1]
|
|
435
|
+
| 3, x1 :: x2 :: x3 :: _ ->
|
|
436
|
+
let c = cmp x1 x2 in
|
|
437
|
+
if c = 0 then begin
|
|
438
|
+
let c = cmp x2 x3 in
|
|
439
|
+
if c = 0 then [x2]
|
|
440
|
+
else if c > 0 then [x2; x3] else [x3; x2]
|
|
441
|
+
end else if c > 0 then begin
|
|
442
|
+
let c = cmp x2 x3 in
|
|
443
|
+
if c = 0 then [x1; x2]
|
|
444
|
+
else if c > 0 then [x1; x2; x3]
|
|
445
|
+
else let c = cmp x1 x3 in
|
|
446
|
+
if c = 0 then [x1; x2]
|
|
447
|
+
else if c > 0 then [x1; x3; x2]
|
|
448
|
+
else [x3; x1; x2]
|
|
449
|
+
end else begin
|
|
450
|
+
let c = cmp x1 x3 in
|
|
451
|
+
if c = 0 then [x2; x1]
|
|
452
|
+
else if c > 0 then [x2; x1; x3]
|
|
453
|
+
else let c = cmp x2 x3 in
|
|
454
|
+
if c = 0 then [x2; x1]
|
|
455
|
+
else if c > 0 then [x2; x3; x1]
|
|
456
|
+
else [x3; x2; x1]
|
|
457
|
+
end
|
|
458
|
+
| n, l ->
|
|
459
|
+
let n1 = n asr 1 in
|
|
460
|
+
let n2 = n - n1 in
|
|
461
|
+
let l2 = chop n1 l in
|
|
462
|
+
let s1 = sort n1 l in
|
|
463
|
+
let s2 = sort n2 l2 in
|
|
464
|
+
rev_merge s1 s2 []
|
|
465
|
+
in
|
|
466
|
+
let len = length l in
|
|
467
|
+
if len < 2 then l else sort len l
|
|
468
|
+
|
|
469
|
+
let rec compare_lengths l1 l2 =
|
|
470
|
+
match l1, l2 with
|
|
471
|
+
| [], [] -> 0
|
|
472
|
+
| [], _ -> -1
|
|
473
|
+
| _, [] -> 1
|
|
474
|
+
| _ :: l1, _ :: l2 -> compare_lengths l1 l2
|
|
475
|
+
;;
|
|
476
|
+
|
|
477
|
+
let rec compare_length_with l n =
|
|
478
|
+
match l with
|
|
479
|
+
| [] ->
|
|
480
|
+
if n = 0 then 0 else
|
|
481
|
+
if n > 0 then -1 else 1
|
|
482
|
+
| _ :: l ->
|
|
483
|
+
if n <= 0 then 1 else
|
|
484
|
+
compare_length_with l (n-1)
|
|
485
|
+
;;
|