@tellahq/rescript 10.1.4-republish-1 → 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/darwinarm64/ninja.exe +0 -0
- package/package.json +1 -1
- 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 -316
- 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_promise2.cmi +0 -0
- package/lib/ocaml/js_promise2.cmt +0 -0
- package/lib/ocaml/js_promise2.res +0 -58
- 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.res +0 -40
- package/lib/ocaml/jsxDOM.cmi +0 -0
- package/lib/ocaml/jsxDOM.cmt +0 -0
- package/lib/ocaml/jsxDOM.res +0 -620
- package/lib/ocaml/jsxDOMStyle.cmi +0 -0
- package/lib/ocaml/jsxDOMStyle.cmt +0 -0
- package/lib/ocaml/jsxDOMStyle.ml +0 -781
- package/lib/ocaml/jsxEvent.cmi +0 -0
- package/lib/ocaml/jsxEvent.cmt +0 -0
- package/lib/ocaml/jsxEvent.ml +0 -358
- package/lib/ocaml/jsxPPXReactSupport.cmi +0 -0
- package/lib/ocaml/jsxPPXReactSupport.cmt +0 -0
- package/lib/ocaml/jsxPPXReactSupport.res +0 -48
- 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 -75
- 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/lib/ocaml/js_json.ml
DELETED
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
(* Copyright (C) 2015-2016 Bloomberg Finance L.P.
|
|
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
|
-
(** Efficient JSON encoding using JavaScript API *)
|
|
26
|
-
|
|
27
|
-
type t
|
|
28
|
-
|
|
29
|
-
type _ kind =
|
|
30
|
-
| String : Js_string.t kind
|
|
31
|
-
| Number : float kind
|
|
32
|
-
| Object : t Js_dict.t kind
|
|
33
|
-
| Array : t array kind
|
|
34
|
-
| Boolean : bool kind
|
|
35
|
-
| Null : Js_types.null_val kind
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
type tagged_t =
|
|
39
|
-
| JSONFalse
|
|
40
|
-
| JSONTrue
|
|
41
|
-
| JSONNull
|
|
42
|
-
| JSONString of string
|
|
43
|
-
| JSONNumber of float
|
|
44
|
-
| JSONObject of t Js_dict.t
|
|
45
|
-
| JSONArray of t array
|
|
46
|
-
|
|
47
|
-
let classify (x : t) : tagged_t =
|
|
48
|
-
let ty = Js.typeof x in
|
|
49
|
-
if ty = "string" then
|
|
50
|
-
JSONString (Obj.magic x)
|
|
51
|
-
else if ty = "number" then
|
|
52
|
-
JSONNumber (Obj.magic x )
|
|
53
|
-
else if ty = "boolean" then
|
|
54
|
-
if (Obj.magic x) = true then JSONTrue
|
|
55
|
-
else JSONFalse
|
|
56
|
-
else if (Obj.magic x) == Js.null then
|
|
57
|
-
JSONNull
|
|
58
|
-
else if Js_array2.isArray x then
|
|
59
|
-
JSONArray (Obj.magic x)
|
|
60
|
-
else
|
|
61
|
-
JSONObject (Obj.magic x)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
let test (type a) (x : 'a) (v : a kind) : bool =
|
|
65
|
-
match v with
|
|
66
|
-
| Number -> Js.typeof x = "number"
|
|
67
|
-
| Boolean -> Js.typeof x = "boolean"
|
|
68
|
-
| String -> Js.typeof x = "string"
|
|
69
|
-
| Null -> (Obj.magic x) == Js.null
|
|
70
|
-
| Array -> Js_array2.isArray x
|
|
71
|
-
| Object -> (Obj.magic x) != Js.null && Js.typeof x = "object" && not (Js_array2.isArray x )
|
|
72
|
-
|
|
73
|
-
let decodeString json =
|
|
74
|
-
if Js.typeof json = "string"
|
|
75
|
-
then Some (Obj.magic (json:t) : string)
|
|
76
|
-
else None
|
|
77
|
-
|
|
78
|
-
let decodeNumber json =
|
|
79
|
-
if Js.typeof json = "number"
|
|
80
|
-
then Some (Obj.magic (json:t) : float)
|
|
81
|
-
else None
|
|
82
|
-
|
|
83
|
-
let decodeObject json =
|
|
84
|
-
if Js.typeof json = "object" &&
|
|
85
|
-
not (Js_array2.isArray json) &&
|
|
86
|
-
not ((Obj.magic json : 'a Js.null) == Js.null)
|
|
87
|
-
then Some (Obj.magic (json:t) : t Js_dict.t)
|
|
88
|
-
else None
|
|
89
|
-
|
|
90
|
-
let decodeArray json =
|
|
91
|
-
if Js_array2.isArray json
|
|
92
|
-
then Some (Obj.magic (json:t) : t array)
|
|
93
|
-
else None
|
|
94
|
-
|
|
95
|
-
let decodeBoolean (json : t) =
|
|
96
|
-
if Js.typeof json = "boolean"
|
|
97
|
-
then Some (Obj.magic (json:t) : bool)
|
|
98
|
-
else None
|
|
99
|
-
|
|
100
|
-
let decodeNull json : _ Js.null option =
|
|
101
|
-
if (Obj.magic json : 'a Js.null) == Js.null
|
|
102
|
-
then Some Js.null
|
|
103
|
-
else None
|
|
104
|
-
|
|
105
|
-
(* external parse : string -> t = "parse"
|
|
106
|
-
[@@bs.val][@@bs.scope "JSON"] *)
|
|
107
|
-
|
|
108
|
-
external parseExn : string -> t = "parse"
|
|
109
|
-
[@@bs.val] [@@bs.scope "JSON"]
|
|
110
|
-
|
|
111
|
-
external stringifyAny : 'a -> string option =
|
|
112
|
-
"stringify" [@@bs.val] [@@bs.scope "JSON"]
|
|
113
|
-
(* TODO: more docs when parse error happens or stringify non-stringfy value *)
|
|
114
|
-
|
|
115
|
-
external null : t = "null" [@@bs.val]
|
|
116
|
-
external string : string -> t = "%identity"
|
|
117
|
-
external number : float -> t = "%identity"
|
|
118
|
-
external boolean : bool -> t = "%identity"
|
|
119
|
-
external object_ : t Js_dict.t -> t = "%identity"
|
|
120
|
-
|
|
121
|
-
(* external array_ : t array -> t = "%identity" *)
|
|
122
|
-
|
|
123
|
-
external array : t array -> t = "%identity"
|
|
124
|
-
external stringArray : string array -> t = "%identity"
|
|
125
|
-
external numberArray : float array -> t = "%identity"
|
|
126
|
-
external booleanArray : bool array -> t = "%identity"
|
|
127
|
-
external objectArray : t Js_dict.t array -> t = "%identity"
|
|
128
|
-
external stringify: t -> string = "stringify"
|
|
129
|
-
[@@bs.val] [@@bs.scope "JSON"]
|
|
130
|
-
external stringifyWithSpace: t -> (_ [@bs.as {json|null|json}]) -> int -> string = "stringify"
|
|
131
|
-
[@@bs.val] [@@bs.scope "JSON"]
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
(* in memory modification does not work until your root is
|
|
135
|
-
actually None, so we need wrap it as ``v`` and
|
|
136
|
-
return the first element instead *)
|
|
137
|
-
|
|
138
|
-
let patch : _ -> _ = [%raw{|function (json) {
|
|
139
|
-
var x = [json];
|
|
140
|
-
var q = [{ kind: 0, i: 0, parent: x }];
|
|
141
|
-
while (q.length !== 0) {
|
|
142
|
-
// begin pop the stack
|
|
143
|
-
var cur = q[q.length - 1];
|
|
144
|
-
if (cur.kind === 0) {
|
|
145
|
-
cur.val = cur.parent[cur.i]; // patch the undefined value for array
|
|
146
|
-
if (++cur.i === cur.parent.length) {
|
|
147
|
-
q.pop();
|
|
148
|
-
}
|
|
149
|
-
} else {
|
|
150
|
-
q.pop();
|
|
151
|
-
}
|
|
152
|
-
// finish
|
|
153
|
-
var task = cur.val;
|
|
154
|
-
if (typeof task === "object") {
|
|
155
|
-
if (Array.isArray(task) && task.length !== 0) {
|
|
156
|
-
q.push({ kind: 0, i: 0, parent: task, val: undefined });
|
|
157
|
-
} else {
|
|
158
|
-
for (var k in task) {
|
|
159
|
-
if (k === "RE_PRIVATE_NONE") {
|
|
160
|
-
if (cur.kind === 0) {
|
|
161
|
-
cur.parent[cur.i - 1] = undefined;
|
|
162
|
-
} else {
|
|
163
|
-
cur.parent[cur.i] = undefined;
|
|
164
|
-
}
|
|
165
|
-
continue;
|
|
166
|
-
}
|
|
167
|
-
q.push({ kind: 1, i: k, parent: task, val: task[k] });
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
return x[0];
|
|
173
|
-
}
|
|
174
|
-
|}]
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
let serializeExn (type t) (x : t) : string = [%raw{| function(obj){
|
|
178
|
-
var output= JSON.stringify(obj,function(_,value){
|
|
179
|
-
if(value===undefined){
|
|
180
|
-
return {RE_PRIVATE_NONE : true}
|
|
181
|
-
}
|
|
182
|
-
return value
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
if(output === undefined){
|
|
186
|
-
// JSON.stringify will raise TypeError when it detects cylic objects
|
|
187
|
-
throw new TypeError("output is undefined")
|
|
188
|
-
}
|
|
189
|
-
return output
|
|
190
|
-
}
|
|
191
|
-
|}] x
|
|
192
|
-
|
|
193
|
-
let deserializeUnsafe (s: string) : 'a =
|
|
194
|
-
patch (parseExn s)
|
|
195
|
-
|
package/lib/ocaml/js_json.mli
DELETED
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
(* Copyright (C) 2015-2016 Bloomberg Finance L.P.
|
|
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
|
-
(**
|
|
26
|
-
Efficient JSON encoding using JavaScript API
|
|
27
|
-
|
|
28
|
-
**see** [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON)
|
|
29
|
-
*)
|
|
30
|
-
|
|
31
|
-
(** ## Types *)
|
|
32
|
-
|
|
33
|
-
type t
|
|
34
|
-
(** The JSON data structure *)
|
|
35
|
-
|
|
36
|
-
(** Underlying type of a JSON value *)
|
|
37
|
-
type _ kind =
|
|
38
|
-
| String : Js_string.t kind
|
|
39
|
-
| Number : float kind
|
|
40
|
-
| Object : t Js_dict.t kind
|
|
41
|
-
| Array : t array kind
|
|
42
|
-
| Boolean : bool kind
|
|
43
|
-
| Null : Js_types.null_val kind
|
|
44
|
-
|
|
45
|
-
type tagged_t =
|
|
46
|
-
| JSONFalse
|
|
47
|
-
| JSONTrue
|
|
48
|
-
| JSONNull
|
|
49
|
-
| JSONString of string
|
|
50
|
-
| JSONNumber of float
|
|
51
|
-
| JSONObject of t Js_dict.t
|
|
52
|
-
| JSONArray of t array
|
|
53
|
-
|
|
54
|
-
(** ## Accessor *)
|
|
55
|
-
|
|
56
|
-
val classify : t -> tagged_t
|
|
57
|
-
|
|
58
|
-
val test : 'a -> 'b kind -> bool
|
|
59
|
-
(** `test(v, kind)` returns `true` if `v` is of `kind`. *)
|
|
60
|
-
|
|
61
|
-
val decodeString : t -> Js_string.t option
|
|
62
|
-
(** `decodeString(json)` returns `Some(s)` if `json` is a `string`, `None` otherwise. *)
|
|
63
|
-
|
|
64
|
-
val decodeNumber : t -> float option
|
|
65
|
-
(** `decodeNumber(json)` returns `Some(n)` if `json` is a `number`, `None` otherwise. *)
|
|
66
|
-
|
|
67
|
-
val decodeObject : t -> t Js_dict.t option
|
|
68
|
-
(** `decodeObject(json)` returns `Some(o)` if `json` is an `object`, `None` otherwise. *)
|
|
69
|
-
|
|
70
|
-
val decodeArray : t -> t array option
|
|
71
|
-
(** `decodeArray(json)` returns `Some(a)` if `json` is an `array`, `None` otherwise. *)
|
|
72
|
-
|
|
73
|
-
val decodeBoolean : t -> bool option
|
|
74
|
-
(** `decodeBoolean(json)` returns `Some(b)` if `json` is a `boolean`, `None` otherwise. *)
|
|
75
|
-
|
|
76
|
-
val decodeNull : t -> 'a Js_null.t option
|
|
77
|
-
(** `decodeNull(json)` returns `Some(null)` if `json` is a `null`, `None` otherwise. *)
|
|
78
|
-
|
|
79
|
-
(** ## Construtors *)
|
|
80
|
-
|
|
81
|
-
(*
|
|
82
|
-
Those functions allows the construction of an arbitrary complex
|
|
83
|
-
JSON values.
|
|
84
|
-
*)
|
|
85
|
-
|
|
86
|
-
external null : t = "null"
|
|
87
|
-
[@@bs.val]
|
|
88
|
-
(** `null` is the singleton null JSON value. *)
|
|
89
|
-
|
|
90
|
-
external string : string -> t = "%identity"
|
|
91
|
-
(** `string(s)` makes a JSON string of the `string` `s`. *)
|
|
92
|
-
|
|
93
|
-
external number : float -> t = "%identity"
|
|
94
|
-
(** `number(n)` makes a JSON number of the `float` `n`. *)
|
|
95
|
-
|
|
96
|
-
external boolean : bool -> t = "%identity"
|
|
97
|
-
(** `boolean(b)` makes a JSON boolean of the `bool` `b`. *)
|
|
98
|
-
|
|
99
|
-
external object_ : t Js_dict.t -> t = "%identity"
|
|
100
|
-
(** `object_(dict)` makes a JSON object of the `Js.Dict.t` `dict`. *)
|
|
101
|
-
|
|
102
|
-
external array : t array -> t = "%identity"
|
|
103
|
-
(** `array_(a)` makes a JSON array of the `Js.Json.t` array `a`. *)
|
|
104
|
-
|
|
105
|
-
(*
|
|
106
|
-
The functions below are specialized for specific array type which
|
|
107
|
-
happened to be already JSON object in the ReScript runtime. Therefore
|
|
108
|
-
they are more efficient (constant time rather than linear conversion).
|
|
109
|
-
*)
|
|
110
|
-
|
|
111
|
-
external stringArray : string array -> t = "%identity"
|
|
112
|
-
(** `stringArray(a)` makes a JSON array of the `string` array `a`. *)
|
|
113
|
-
|
|
114
|
-
external numberArray : float array -> t = "%identity"
|
|
115
|
-
(** `numberArray(a)` makes a JSON array of the `float` array `a`. *)
|
|
116
|
-
|
|
117
|
-
external booleanArray : bool array -> t = "%identity"
|
|
118
|
-
(** `booleanArray(a)` makes a JSON array of the `bool` array `a`. *)
|
|
119
|
-
|
|
120
|
-
external objectArray : t Js_dict.t array -> t = "%identity"
|
|
121
|
-
(** `objectArray(a) makes a JSON array of the `JsDict.t` array `a`. *)
|
|
122
|
-
|
|
123
|
-
(** ## String conversion *)
|
|
124
|
-
|
|
125
|
-
external parseExn : string -> t = "parse"
|
|
126
|
-
[@@bs.val] [@@bs.scope "JSON"]
|
|
127
|
-
(**
|
|
128
|
-
`parseExn(s)` parses the `string` `s` into a JSON data structure.
|
|
129
|
-
Returns a JSON data structure.
|
|
130
|
-
Raises `SyntaxError` if the given string is not a valid JSON. Note: `SyntaxError` is a JavaScript exception.
|
|
131
|
-
|
|
132
|
-
**See** [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse)
|
|
133
|
-
|
|
134
|
-
```res example
|
|
135
|
-
/* parse a simple JSON string */
|
|
136
|
-
|
|
137
|
-
let json = try Js.Json.parseExn(` "hello" `) catch {
|
|
138
|
-
| _ => failwith("Error parsing JSON string")
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
switch Js.Json.classify(json) {
|
|
142
|
-
| Js.Json.JSONString(value) => Js.log(value)
|
|
143
|
-
| _ => failwith("Expected a string")
|
|
144
|
-
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
```res example
|
|
148
|
-
/* parse a complex JSON string */
|
|
149
|
-
|
|
150
|
-
let getIds = s => {
|
|
151
|
-
let json = try Js.Json.parseExn(s) catch {
|
|
152
|
-
| _ => failwith("Error parsing JSON string")
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
switch Js.Json.classify(json) {
|
|
156
|
-
| Js.Json.JSONObject(value) =>
|
|
157
|
-
/* In this branch, compiler infer value : Js.Json.t Js.Dict.t */
|
|
158
|
-
switch Js.Dict.get(value, "ids") {
|
|
159
|
-
| Some(ids) =>
|
|
160
|
-
switch Js.Json.classify(ids) {
|
|
161
|
-
| Js.Json.JSONArray(ids) => /* In this branch compiler infer ids : Js.Json.t array */
|
|
162
|
-
ids
|
|
163
|
-
| _ => failwith("Expected an array")
|
|
164
|
-
}
|
|
165
|
-
| None => failwith("Expected an `ids` property")
|
|
166
|
-
}
|
|
167
|
-
| _ => failwith("Expected an object")
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/* prints `1, 2, 3` */
|
|
172
|
-
Js.log(getIds(` { "ids" : [1, 2, 3 ] } `))
|
|
173
|
-
```
|
|
174
|
-
*)
|
|
175
|
-
|
|
176
|
-
external stringify : t -> string = "stringify"
|
|
177
|
-
[@@bs.val] [@@bs.scope "JSON"]
|
|
178
|
-
(**
|
|
179
|
-
`stringify(json)` formats the JSON data structure as a `string`.
|
|
180
|
-
Returns the string representation of a given JSON data structure.
|
|
181
|
-
|
|
182
|
-
**See** [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)
|
|
183
|
-
|
|
184
|
-
```res example
|
|
185
|
-
/* Creates and stringifies a simple JS object */
|
|
186
|
-
|
|
187
|
-
let dict = Js.Dict.empty()
|
|
188
|
-
Js.Dict.set(dict, "name", Js.Json.string("John Doe"))
|
|
189
|
-
Js.Dict.set(dict, "age", Js.Json.number(30.0))
|
|
190
|
-
Js.Dict.set(dict, "likes", Js.Json.stringArray(["bucklescript", "ocaml", "js"]))
|
|
191
|
-
|
|
192
|
-
Js.log(Js.Json.stringify(Js.Json.object_(dict)))
|
|
193
|
-
```
|
|
194
|
-
*)
|
|
195
|
-
|
|
196
|
-
external stringifyWithSpace : t -> (_[@bs.as {json|null|json}]) -> int -> string
|
|
197
|
-
= "stringify"
|
|
198
|
-
[@@bs.val] [@@bs.scope "JSON"]
|
|
199
|
-
(**
|
|
200
|
-
`stringifyWithSpace(json)` formats the JSON data structure as a `string`.
|
|
201
|
-
Returns the string representation of a given JSON data structure with spacing.
|
|
202
|
-
|
|
203
|
-
**See** [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)
|
|
204
|
-
|
|
205
|
-
```res example
|
|
206
|
-
/* Creates and stringifies a simple JS object with spacing */
|
|
207
|
-
|
|
208
|
-
let dict = Js.Dict.empty()
|
|
209
|
-
Js.Dict.set(dict, "name", Js.Json.string("John Doe"))
|
|
210
|
-
Js.Dict.set(dict, "age", Js.Json.number(30.0))
|
|
211
|
-
Js.Dict.set(dict, "likes", Js.Json.stringArray(["bucklescript", "ocaml", "js"]))
|
|
212
|
-
|
|
213
|
-
Js.log(Js.Json.stringifyWithSpace(Js.Json.object_(dict), 2))
|
|
214
|
-
```
|
|
215
|
-
*)
|
|
216
|
-
|
|
217
|
-
external stringifyAny : 'a -> string option = "stringify"
|
|
218
|
-
[@@bs.val] [@@bs.scope "JSON"]
|
|
219
|
-
(**
|
|
220
|
-
`stringifyAny(value)` formats any value into a JSON string.
|
|
221
|
-
|
|
222
|
-
```res example
|
|
223
|
-
/* prints `["hello", "world"]` */
|
|
224
|
-
Js.log(Js.Json.stringifyAny(["hello", "world"]))
|
|
225
|
-
```
|
|
226
|
-
*)
|
|
227
|
-
|
|
228
|
-
val deserializeUnsafe : string -> 'a
|
|
229
|
-
(**
|
|
230
|
-
Best-effort serialization, it tries to seralize as
|
|
231
|
-
many objects as possible and deserialize it back
|
|
232
|
-
|
|
233
|
-
It is unsafe in two aspects
|
|
234
|
-
- It may throw during parsing
|
|
235
|
-
- when you cast it to a specific type, it may have a type mismatch
|
|
236
|
-
*)
|
|
237
|
-
|
|
238
|
-
val serializeExn : 'a -> string
|
|
239
|
-
(**
|
|
240
|
-
It will raise in such situations:
|
|
241
|
-
- The object can not be serlialized to a JSON
|
|
242
|
-
- There are cycles
|
|
243
|
-
- Some JS engines can not stringify deeply nested json objects
|
|
244
|
-
*)
|
package/lib/ocaml/js_list.cmi
DELETED
|
Binary file
|
package/lib/ocaml/js_list.cmt
DELETED
|
Binary file
|
package/lib/ocaml/js_list.cmti
DELETED
|
Binary file
|
package/lib/ocaml/js_list.ml
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
(* Copyright (C) 2015-2016 Bloomberg Finance L.P.
|
|
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
|
-
[@@@warning "-3"]
|
|
26
|
-
|
|
27
|
-
type 'a t = 'a list
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
let rec lengthAux len = function
|
|
32
|
-
| [] -> len
|
|
33
|
-
| _::l -> lengthAux (len + 1) l
|
|
34
|
-
|
|
35
|
-
let length l = lengthAux 0 l
|
|
36
|
-
|
|
37
|
-
let cons x xs = x :: xs
|
|
38
|
-
|
|
39
|
-
let isEmpty x = x = []
|
|
40
|
-
|
|
41
|
-
let hd = function
|
|
42
|
-
| [] -> None
|
|
43
|
-
| a::_ -> Some a
|
|
44
|
-
|
|
45
|
-
let tl = function
|
|
46
|
-
| [] -> None
|
|
47
|
-
| _::l -> Some l
|
|
48
|
-
|
|
49
|
-
let nth l n =
|
|
50
|
-
if n < 0 then None else
|
|
51
|
-
let rec nth_aux l n =
|
|
52
|
-
match l with
|
|
53
|
-
| [] -> None
|
|
54
|
-
| a::l -> if n = 0 then Some a else nth_aux l (n-1)
|
|
55
|
-
in nth_aux l n
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
let rec revAppend l1 l2 =
|
|
60
|
-
match l1 with
|
|
61
|
-
| [] -> l2
|
|
62
|
-
| a :: l -> revAppend l (a :: l2)
|
|
63
|
-
|
|
64
|
-
let rev l = revAppend l []
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
let rec mapRevAux f acc ls =
|
|
68
|
-
match ls with
|
|
69
|
-
| [] -> acc
|
|
70
|
-
| a::l ->
|
|
71
|
-
mapRevAux f (f a [@bs] :: acc) l
|
|
72
|
-
|
|
73
|
-
let mapRev f ls = mapRevAux f [] ls
|
|
74
|
-
|
|
75
|
-
let map f ls = rev (mapRevAux f [] ls )
|
|
76
|
-
|
|
77
|
-
let rec iter f = function
|
|
78
|
-
[] -> ()
|
|
79
|
-
| a::l -> f a [@bs]; iter f l
|
|
80
|
-
|
|
81
|
-
let rec iteri i f = function
|
|
82
|
-
[] -> ()
|
|
83
|
-
| a::l -> f i a [@bs]; iteri (i + 1) f l
|
|
84
|
-
|
|
85
|
-
let iteri f l = iteri 0 f l
|
|
86
|
-
|
|
87
|
-
let rec foldLeft f accu l =
|
|
88
|
-
match l with
|
|
89
|
-
[] -> accu
|
|
90
|
-
| a::l -> foldLeft f (f accu a [@bs]) l
|
|
91
|
-
|
|
92
|
-
let foldRightMaxStack = 1000
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
let rec tailLoop f acc = function
|
|
96
|
-
| [] -> acc
|
|
97
|
-
| h :: t -> tailLoop f (f h acc [@bs]) t
|
|
98
|
-
|
|
99
|
-
let foldRight f l init =
|
|
100
|
-
let rec loop n = function
|
|
101
|
-
| [] -> init
|
|
102
|
-
| h :: t ->
|
|
103
|
-
if n < foldRightMaxStack then
|
|
104
|
-
f h (loop (n+1) t) [@bs]
|
|
105
|
-
else
|
|
106
|
-
f h (tailLoop f init (rev t)) [@bs]
|
|
107
|
-
in
|
|
108
|
-
loop 0 l
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
let rec flattenAux acc lx =
|
|
112
|
-
match lx with
|
|
113
|
-
| [] -> rev acc
|
|
114
|
-
| y::ys -> flattenAux (revAppend y acc ) ys
|
|
115
|
-
|
|
116
|
-
let flatten lx =
|
|
117
|
-
flattenAux [] lx
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
let rec filterRevAux f acc xs =
|
|
121
|
-
match xs with
|
|
122
|
-
| [] -> acc
|
|
123
|
-
| y :: ys ->
|
|
124
|
-
begin match f y [@bs] with
|
|
125
|
-
| false -> filterRevAux f acc ys
|
|
126
|
-
| true -> filterRevAux f (y::acc) ys
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
let filter f xs = rev (filterRevAux f [] xs )
|
|
130
|
-
|
|
131
|
-
let rec filterMapRevAux (f: 'a -> 'b option [@bs]) acc xs =
|
|
132
|
-
match xs with
|
|
133
|
-
| [] -> acc
|
|
134
|
-
| y :: ys ->
|
|
135
|
-
begin match f y [@bs] with
|
|
136
|
-
| None -> filterMapRevAux f acc ys
|
|
137
|
-
| Some z -> filterMapRevAux f (z::acc) ys
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
let filterMap f xs =
|
|
141
|
-
rev (filterMapRevAux f [] xs)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
let rec countByAux f acc xs =
|
|
145
|
-
match xs with
|
|
146
|
-
| [] -> acc
|
|
147
|
-
| y::ys ->
|
|
148
|
-
countByAux f (if f y [@bs] then acc + 1 else acc) ys
|
|
149
|
-
|
|
150
|
-
let countBy f xs = countByAux f 0 xs
|
|
151
|
-
|
|
152
|
-
let init n f =
|
|
153
|
-
Js_vector.toList (Js_vector.init n f )
|
|
154
|
-
|
|
155
|
-
external createUnsafe : int -> 'a array =
|
|
156
|
-
"Array" [@@bs.new]
|
|
157
|
-
|
|
158
|
-
let toVector xs =
|
|
159
|
-
match xs with
|
|
160
|
-
| [] -> [||]
|
|
161
|
-
| l ->
|
|
162
|
-
let a = createUnsafe (length l) in
|
|
163
|
-
let rec fill i = function
|
|
164
|
-
| [] -> a
|
|
165
|
-
| hd::tl -> Js_array2.unsafe_set a i hd; fill (i+1) tl in
|
|
166
|
-
fill 0 l
|
|
167
|
-
|
|
168
|
-
let rec equal cmp xs ys =
|
|
169
|
-
match xs,ys with
|
|
170
|
-
| [], [] -> true
|
|
171
|
-
| x::xs, y::ys ->
|
|
172
|
-
if cmp x y [@bs] then equal cmp xs ys
|
|
173
|
-
else false
|
|
174
|
-
| _, _ -> false
|
package/lib/ocaml/js_list.mli
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
(* Copyright (C) 2015-2016 Bloomberg Finance L.P.
|
|
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
|
-
[@@@deprecated "Use Belt.List instead"]
|
|
26
|
-
|
|
27
|
-
type 'a t = 'a list
|
|
28
|
-
|
|
29
|
-
val length : 'a t -> int
|
|
30
|
-
|
|
31
|
-
val cons : 'a -> 'a t -> 'a t
|
|
32
|
-
|
|
33
|
-
val isEmpty : 'a t -> bool
|
|
34
|
-
|
|
35
|
-
val hd : 'a t -> 'a option
|
|
36
|
-
|
|
37
|
-
val tl : 'a t -> 'a t option
|
|
38
|
-
|
|
39
|
-
val nth : 'a t -> int -> 'a option
|
|
40
|
-
|
|
41
|
-
val revAppend : 'a t -> 'a t -> 'a t
|
|
42
|
-
|
|
43
|
-
val rev : 'a t -> 'a t
|
|
44
|
-
|
|
45
|
-
val mapRev : ('a -> 'b [@bs]) -> 'a t -> 'b t
|
|
46
|
-
|
|
47
|
-
val map : ('a -> 'b [@bs]) -> 'a t -> 'b t
|
|
48
|
-
|
|
49
|
-
val iter : ('a -> unit [@bs]) -> 'a t -> unit
|
|
50
|
-
|
|
51
|
-
val iteri : (int -> 'a -> unit [@bs]) -> 'a t -> unit
|
|
52
|
-
|
|
53
|
-
val foldLeft : ('a -> 'b -> 'a [@bs]) -> 'a -> 'b list -> 'a
|
|
54
|
-
(** Application order is left to right, tail recurisve *)
|
|
55
|
-
|
|
56
|
-
val foldRight : ('a -> 'b -> 'b [@bs]) -> 'a list -> 'b -> 'b
|
|
57
|
-
(** Application order is right to left
|
|
58
|
-
tail-recursive. *)
|
|
59
|
-
|
|
60
|
-
val flatten : 'a t t -> 'a t
|
|
61
|
-
|
|
62
|
-
val filter : ('a -> bool [@bs]) -> 'a t -> 'a t
|
|
63
|
-
|
|
64
|
-
val filterMap : ('a -> 'b option [@bs]) -> 'a t -> 'b t
|
|
65
|
-
|
|
66
|
-
val countBy : ('a -> bool [@bs]) -> 'a list -> int
|
|
67
|
-
|
|
68
|
-
val init : int -> (int -> 'a [@bs]) -> 'a t
|
|
69
|
-
|
|
70
|
-
val toVector : 'a t -> 'a array
|
|
71
|
-
|
|
72
|
-
val equal : ('a -> 'a -> bool [@bs]) -> 'a list -> 'a list -> bool
|
package/lib/ocaml/js_map.cmi
DELETED
|
Binary file
|
package/lib/ocaml/js_map.cmt
DELETED
|
Binary file
|
package/lib/ocaml/js_map.ml
DELETED
|
Binary file
|
|
Binary file
|