@tellahq/rescript 10.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (997) hide show
  1. package/CHANGELOG.md +1717 -0
  2. package/COPYING +674 -0
  3. package/COPYING.LESSER +165 -0
  4. package/CREDITS.md +59 -0
  5. package/LICENSE +24 -0
  6. package/README.md +114 -0
  7. package/bsc +22 -0
  8. package/bsrefmt +16 -0
  9. package/darwin/bsb_helper.exe +0 -0
  10. package/darwin/bsc.exe +0 -0
  11. package/darwin/ninja.COPYING +202 -0
  12. package/darwin/ninja.exe +0 -0
  13. package/darwin/refmt.exe +0 -0
  14. package/darwin/rescript.exe +0 -0
  15. package/darwinarm64/bsb_helper.exe +0 -0
  16. package/darwinarm64/bsc.exe +0 -0
  17. package/darwinarm64/ninja.COPYING +202 -0
  18. package/darwinarm64/ninja.exe +0 -0
  19. package/darwinarm64/refmt.exe +0 -0
  20. package/darwinarm64/rescript.exe +0 -0
  21. package/docs/docson/build-schema.json +557 -0
  22. package/freebsd/ninja.COPYING +202 -0
  23. package/jscomp/stubs/ext_basic_hash_stubs.c +216 -0
  24. package/lib/4.06.1/bsb_helper.ml +2436 -0
  25. package/lib/4.06.1/bsb_helper.mli +0 -0
  26. package/lib/4.06.1/refmt_main3.ml +115517 -0
  27. package/lib/4.06.1/refmt_main3.mli +1 -0
  28. package/lib/4.06.1/rescript.ml +15500 -0
  29. package/lib/4.06.1/rescript.mli +0 -0
  30. package/lib/4.06.1/whole_compiler.ml +306395 -0
  31. package/lib/4.06.1/whole_compiler.mli +0 -0
  32. package/lib/bstracing +270 -0
  33. package/lib/es6/arg.js +717 -0
  34. package/lib/es6/array.js +511 -0
  35. package/lib/es6/arrayLabels.js +511 -0
  36. package/lib/es6/belt.js +57 -0
  37. package/lib/es6/belt_Array.js +764 -0
  38. package/lib/es6/belt_Float.js +16 -0
  39. package/lib/es6/belt_HashMap.js +280 -0
  40. package/lib/es6/belt_HashMapInt.js +264 -0
  41. package/lib/es6/belt_HashMapString.js +264 -0
  42. package/lib/es6/belt_HashSet.js +222 -0
  43. package/lib/es6/belt_HashSetInt.js +207 -0
  44. package/lib/es6/belt_HashSetString.js +207 -0
  45. package/lib/es6/belt_Id.js +71 -0
  46. package/lib/es6/belt_Int.js +16 -0
  47. package/lib/es6/belt_List.js +1512 -0
  48. package/lib/es6/belt_Map.js +376 -0
  49. package/lib/es6/belt_MapDict.js +417 -0
  50. package/lib/es6/belt_MapInt.js +307 -0
  51. package/lib/es6/belt_MapString.js +307 -0
  52. package/lib/es6/belt_MutableMap.js +395 -0
  53. package/lib/es6/belt_MutableMapInt.js +362 -0
  54. package/lib/es6/belt_MutableMapString.js +362 -0
  55. package/lib/es6/belt_MutableQueue.js +299 -0
  56. package/lib/es6/belt_MutableSet.js +538 -0
  57. package/lib/es6/belt_MutableSetInt.js +501 -0
  58. package/lib/es6/belt_MutableSetString.js +501 -0
  59. package/lib/es6/belt_MutableStack.js +137 -0
  60. package/lib/es6/belt_Option.js +151 -0
  61. package/lib/es6/belt_Range.js +109 -0
  62. package/lib/es6/belt_Result.js +136 -0
  63. package/lib/es6/belt_Set.js +314 -0
  64. package/lib/es6/belt_SetDict.js +362 -0
  65. package/lib/es6/belt_SetInt.js +359 -0
  66. package/lib/es6/belt_SetString.js +359 -0
  67. package/lib/es6/belt_SortArray.js +427 -0
  68. package/lib/es6/belt_SortArrayInt.js +374 -0
  69. package/lib/es6/belt_SortArrayString.js +374 -0
  70. package/lib/es6/belt_internalAVLset.js +940 -0
  71. package/lib/es6/belt_internalAVLtree.js +1146 -0
  72. package/lib/es6/belt_internalBuckets.js +287 -0
  73. package/lib/es6/belt_internalBucketsType.js +49 -0
  74. package/lib/es6/belt_internalMapInt.js +365 -0
  75. package/lib/es6/belt_internalMapString.js +365 -0
  76. package/lib/es6/belt_internalSetBuckets.js +191 -0
  77. package/lib/es6/belt_internalSetInt.js +209 -0
  78. package/lib/es6/belt_internalSetString.js +209 -0
  79. package/lib/es6/buffer.js +477 -0
  80. package/lib/es6/bytes.js +704 -0
  81. package/lib/es6/bytesLabels.js +704 -0
  82. package/lib/es6/callback.js +16 -0
  83. package/lib/es6/caml.js +196 -0
  84. package/lib/es6/caml_array.js +122 -0
  85. package/lib/es6/caml_array_extern.js +1 -0
  86. package/lib/es6/caml_bytes.js +122 -0
  87. package/lib/es6/caml_exceptions.js +31 -0
  88. package/lib/es6/caml_external_polyfill.js +32 -0
  89. package/lib/es6/caml_float.js +129 -0
  90. package/lib/es6/caml_float_extern.js +1 -0
  91. package/lib/es6/caml_format.js +818 -0
  92. package/lib/es6/caml_hash.js +101 -0
  93. package/lib/es6/caml_hash_primitive.js +51 -0
  94. package/lib/es6/caml_int32.js +28 -0
  95. package/lib/es6/caml_int64.js +606 -0
  96. package/lib/es6/caml_int64_extern.js +1 -0
  97. package/lib/es6/caml_js_exceptions.js +31 -0
  98. package/lib/es6/caml_lexer.js +258 -0
  99. package/lib/es6/caml_md5.js +168 -0
  100. package/lib/es6/caml_module.js +117 -0
  101. package/lib/es6/caml_nativeint_extern.js +1 -0
  102. package/lib/es6/caml_obj.js +413 -0
  103. package/lib/es6/caml_option.js +86 -0
  104. package/lib/es6/caml_parser.js +303 -0
  105. package/lib/es6/caml_splice_call.js +52 -0
  106. package/lib/es6/caml_string.js +23 -0
  107. package/lib/es6/caml_string_extern.js +1 -0
  108. package/lib/es6/caml_sys.js +99 -0
  109. package/lib/es6/caml_undefined_extern.js +1 -0
  110. package/lib/es6/camlinternalLazy.js +59 -0
  111. package/lib/es6/camlinternalMod.js +1 -0
  112. package/lib/es6/char.js +126 -0
  113. package/lib/es6/complex.js +176 -0
  114. package/lib/es6/curry.js +526 -0
  115. package/lib/es6/digest.js +118 -0
  116. package/lib/es6/dom.js +12 -0
  117. package/lib/es6/dom_storage.js +27 -0
  118. package/lib/es6/dom_storage2.js +1 -0
  119. package/lib/es6/filename.js +496 -0
  120. package/lib/es6/genlex.js +666 -0
  121. package/lib/es6/hashtbl.js +1115 -0
  122. package/lib/es6/hashtblLabels.js +170 -0
  123. package/lib/es6/int32.js +75 -0
  124. package/lib/es6/int64.js +70 -0
  125. package/lib/es6/js.js +111 -0
  126. package/lib/es6/js_OO.js +15 -0
  127. package/lib/es6/js_array.js +223 -0
  128. package/lib/es6/js_array2.js +1 -0
  129. package/lib/es6/js_bigint.js +1 -0
  130. package/lib/es6/js_cast.js +1 -0
  131. package/lib/es6/js_console.js +1 -0
  132. package/lib/es6/js_date.js +1 -0
  133. package/lib/es6/js_dict.js +85 -0
  134. package/lib/es6/js_exn.js +44 -0
  135. package/lib/es6/js_float.js +1 -0
  136. package/lib/es6/js_global.js +1 -0
  137. package/lib/es6/js_int.js +17 -0
  138. package/lib/es6/js_json.js +172 -0
  139. package/lib/es6/js_list.js +333 -0
  140. package/lib/es6/js_map.js +1 -0
  141. package/lib/es6/js_mapperRt.js +54 -0
  142. package/lib/es6/js_math.js +50 -0
  143. package/lib/es6/js_null.js +49 -0
  144. package/lib/es6/js_null_undefined.js +35 -0
  145. package/lib/es6/js_obj.js +1 -0
  146. package/lib/es6/js_option.js +104 -0
  147. package/lib/es6/js_promise.js +17 -0
  148. package/lib/es6/js_re.js +1 -0
  149. package/lib/es6/js_result.js +1 -0
  150. package/lib/es6/js_set.js +1 -0
  151. package/lib/es6/js_string.js +199 -0
  152. package/lib/es6/js_string2.js +1 -0
  153. package/lib/es6/js_typed_array.js +1733 -0
  154. package/lib/es6/js_typed_array2.js +39 -0
  155. package/lib/es6/js_types.js +77 -0
  156. package/lib/es6/js_undefined.js +52 -0
  157. package/lib/es6/js_vector.js +134 -0
  158. package/lib/es6/js_weakmap.js +1 -0
  159. package/lib/es6/js_weakset.js +1 -0
  160. package/lib/es6/jsx.js +1 -0
  161. package/lib/es6/jsxDOM.js +1 -0
  162. package/lib/es6/jsxDOMStyle.js +1 -0
  163. package/lib/es6/jsxEvent.js +59 -0
  164. package/lib/es6/lazy.js +44 -0
  165. package/lib/es6/lexing.js +217 -0
  166. package/lib/es6/list.js +1713 -0
  167. package/lib/es6/listLabels.js +1713 -0
  168. package/lib/es6/map.js +936 -0
  169. package/lib/es6/mapLabels.js +951 -0
  170. package/lib/es6/moreLabels.js +1931 -0
  171. package/lib/es6/node.js +39 -0
  172. package/lib/es6/node_buffer.js +1 -0
  173. package/lib/es6/node_child_process.js +1 -0
  174. package/lib/es6/node_fs.js +9 -0
  175. package/lib/es6/node_module.js +1 -0
  176. package/lib/es6/node_path.js +1 -0
  177. package/lib/es6/node_process.js +18 -0
  178. package/lib/es6/obj.js +11 -0
  179. package/lib/es6/package.json +1 -0
  180. package/lib/es6/parsing.js +237 -0
  181. package/lib/es6/pervasives.js +250 -0
  182. package/lib/es6/printexc.js +102 -0
  183. package/lib/es6/queue.js +181 -0
  184. package/lib/es6/random.js +280 -0
  185. package/lib/es6/set.js +955 -0
  186. package/lib/es6/setLabels.js +988 -0
  187. package/lib/es6/sort.js +168 -0
  188. package/lib/es6/stack.js +88 -0
  189. package/lib/es6/stdLabels.js +18 -0
  190. package/lib/es6/stream.js +496 -0
  191. package/lib/es6/string.js +337 -0
  192. package/lib/es6/stringLabels.js +337 -0
  193. package/lib/es6/sys.js +182 -0
  194. package/lib/es6/uchar.js +133 -0
  195. package/lib/js/arg.js +715 -0
  196. package/lib/js/array.js +509 -0
  197. package/lib/js/arrayLabels.js +509 -0
  198. package/lib/js/belt.js +55 -0
  199. package/lib/js/belt_Array.js +762 -0
  200. package/lib/js/belt_Float.js +14 -0
  201. package/lib/js/belt_HashMap.js +278 -0
  202. package/lib/js/belt_HashMapInt.js +262 -0
  203. package/lib/js/belt_HashMapString.js +262 -0
  204. package/lib/js/belt_HashSet.js +220 -0
  205. package/lib/js/belt_HashSetInt.js +205 -0
  206. package/lib/js/belt_HashSetString.js +205 -0
  207. package/lib/js/belt_Id.js +69 -0
  208. package/lib/js/belt_Int.js +14 -0
  209. package/lib/js/belt_List.js +1510 -0
  210. package/lib/js/belt_Map.js +374 -0
  211. package/lib/js/belt_MapDict.js +415 -0
  212. package/lib/js/belt_MapInt.js +305 -0
  213. package/lib/js/belt_MapString.js +305 -0
  214. package/lib/js/belt_MutableMap.js +393 -0
  215. package/lib/js/belt_MutableMapInt.js +360 -0
  216. package/lib/js/belt_MutableMapString.js +360 -0
  217. package/lib/js/belt_MutableQueue.js +297 -0
  218. package/lib/js/belt_MutableSet.js +536 -0
  219. package/lib/js/belt_MutableSetInt.js +499 -0
  220. package/lib/js/belt_MutableSetString.js +499 -0
  221. package/lib/js/belt_MutableStack.js +135 -0
  222. package/lib/js/belt_Option.js +149 -0
  223. package/lib/js/belt_Range.js +107 -0
  224. package/lib/js/belt_Result.js +134 -0
  225. package/lib/js/belt_Set.js +312 -0
  226. package/lib/js/belt_SetDict.js +360 -0
  227. package/lib/js/belt_SetInt.js +357 -0
  228. package/lib/js/belt_SetString.js +357 -0
  229. package/lib/js/belt_SortArray.js +425 -0
  230. package/lib/js/belt_SortArrayInt.js +372 -0
  231. package/lib/js/belt_SortArrayString.js +372 -0
  232. package/lib/js/belt_internalAVLset.js +938 -0
  233. package/lib/js/belt_internalAVLtree.js +1144 -0
  234. package/lib/js/belt_internalBuckets.js +285 -0
  235. package/lib/js/belt_internalBucketsType.js +47 -0
  236. package/lib/js/belt_internalMapInt.js +363 -0
  237. package/lib/js/belt_internalMapString.js +363 -0
  238. package/lib/js/belt_internalSetBuckets.js +189 -0
  239. package/lib/js/belt_internalSetInt.js +207 -0
  240. package/lib/js/belt_internalSetString.js +207 -0
  241. package/lib/js/buffer.js +475 -0
  242. package/lib/js/bytes.js +702 -0
  243. package/lib/js/bytesLabels.js +702 -0
  244. package/lib/js/callback.js +14 -0
  245. package/lib/js/caml.js +194 -0
  246. package/lib/js/caml_array.js +120 -0
  247. package/lib/js/caml_array_extern.js +1 -0
  248. package/lib/js/caml_bytes.js +120 -0
  249. package/lib/js/caml_exceptions.js +29 -0
  250. package/lib/js/caml_external_polyfill.js +30 -0
  251. package/lib/js/caml_float.js +127 -0
  252. package/lib/js/caml_float_extern.js +1 -0
  253. package/lib/js/caml_format.js +816 -0
  254. package/lib/js/caml_hash.js +99 -0
  255. package/lib/js/caml_hash_primitive.js +49 -0
  256. package/lib/js/caml_int32.js +26 -0
  257. package/lib/js/caml_int64.js +604 -0
  258. package/lib/js/caml_int64_extern.js +1 -0
  259. package/lib/js/caml_js_exceptions.js +29 -0
  260. package/lib/js/caml_lexer.js +256 -0
  261. package/lib/js/caml_md5.js +166 -0
  262. package/lib/js/caml_module.js +115 -0
  263. package/lib/js/caml_nativeint_extern.js +1 -0
  264. package/lib/js/caml_obj.js +411 -0
  265. package/lib/js/caml_option.js +84 -0
  266. package/lib/js/caml_parser.js +301 -0
  267. package/lib/js/caml_splice_call.js +50 -0
  268. package/lib/js/caml_string.js +21 -0
  269. package/lib/js/caml_string_extern.js +1 -0
  270. package/lib/js/caml_sys.js +97 -0
  271. package/lib/js/caml_undefined_extern.js +1 -0
  272. package/lib/js/camlinternalLazy.js +57 -0
  273. package/lib/js/camlinternalMod.js +1 -0
  274. package/lib/js/char.js +124 -0
  275. package/lib/js/complex.js +174 -0
  276. package/lib/js/curry.js +524 -0
  277. package/lib/js/digest.js +116 -0
  278. package/lib/js/dom.js +10 -0
  279. package/lib/js/dom_storage.js +25 -0
  280. package/lib/js/dom_storage2.js +1 -0
  281. package/lib/js/filename.js +494 -0
  282. package/lib/js/genlex.js +664 -0
  283. package/lib/js/hashtbl.js +1113 -0
  284. package/lib/js/hashtblLabels.js +168 -0
  285. package/lib/js/int32.js +73 -0
  286. package/lib/js/int64.js +68 -0
  287. package/lib/js/js.js +109 -0
  288. package/lib/js/js_OO.js +13 -0
  289. package/lib/js/js_array.js +221 -0
  290. package/lib/js/js_array2.js +1 -0
  291. package/lib/js/js_bigint.js +1 -0
  292. package/lib/js/js_cast.js +1 -0
  293. package/lib/js/js_console.js +1 -0
  294. package/lib/js/js_date.js +1 -0
  295. package/lib/js/js_dict.js +83 -0
  296. package/lib/js/js_exn.js +42 -0
  297. package/lib/js/js_float.js +1 -0
  298. package/lib/js/js_global.js +1 -0
  299. package/lib/js/js_int.js +15 -0
  300. package/lib/js/js_json.js +170 -0
  301. package/lib/js/js_list.js +331 -0
  302. package/lib/js/js_map.js +1 -0
  303. package/lib/js/js_mapperRt.js +52 -0
  304. package/lib/js/js_math.js +48 -0
  305. package/lib/js/js_null.js +47 -0
  306. package/lib/js/js_null_undefined.js +33 -0
  307. package/lib/js/js_obj.js +1 -0
  308. package/lib/js/js_option.js +103 -0
  309. package/lib/js/js_promise.js +15 -0
  310. package/lib/js/js_re.js +1 -0
  311. package/lib/js/js_result.js +1 -0
  312. package/lib/js/js_set.js +1 -0
  313. package/lib/js/js_string.js +197 -0
  314. package/lib/js/js_string2.js +1 -0
  315. package/lib/js/js_typed_array.js +1731 -0
  316. package/lib/js/js_typed_array2.js +37 -0
  317. package/lib/js/js_types.js +75 -0
  318. package/lib/js/js_undefined.js +50 -0
  319. package/lib/js/js_vector.js +132 -0
  320. package/lib/js/js_weakmap.js +1 -0
  321. package/lib/js/js_weakset.js +1 -0
  322. package/lib/js/jsx.js +1 -0
  323. package/lib/js/jsxDOM.js +1 -0
  324. package/lib/js/jsxDOMStyle.js +1 -0
  325. package/lib/js/jsxEvent.js +57 -0
  326. package/lib/js/lazy.js +42 -0
  327. package/lib/js/lexing.js +215 -0
  328. package/lib/js/list.js +1711 -0
  329. package/lib/js/listLabels.js +1711 -0
  330. package/lib/js/map.js +934 -0
  331. package/lib/js/mapLabels.js +949 -0
  332. package/lib/js/moreLabels.js +1929 -0
  333. package/lib/js/node.js +37 -0
  334. package/lib/js/node_buffer.js +1 -0
  335. package/lib/js/node_child_process.js +1 -0
  336. package/lib/js/node_fs.js +7 -0
  337. package/lib/js/node_module.js +1 -0
  338. package/lib/js/node_path.js +1 -0
  339. package/lib/js/node_process.js +16 -0
  340. package/lib/js/obj.js +9 -0
  341. package/lib/js/parsing.js +235 -0
  342. package/lib/js/pervasives.js +248 -0
  343. package/lib/js/printexc.js +100 -0
  344. package/lib/js/queue.js +179 -0
  345. package/lib/js/random.js +278 -0
  346. package/lib/js/set.js +953 -0
  347. package/lib/js/setLabels.js +986 -0
  348. package/lib/js/sort.js +166 -0
  349. package/lib/js/stack.js +86 -0
  350. package/lib/js/stdLabels.js +16 -0
  351. package/lib/js/stream.js +494 -0
  352. package/lib/js/string.js +335 -0
  353. package/lib/js/stringLabels.js +335 -0
  354. package/lib/js/sys.js +180 -0
  355. package/lib/js/uchar.js +131 -0
  356. package/lib/minisocket.js +93 -0
  357. package/lib/ocaml/arg.cmi +0 -0
  358. package/lib/ocaml/arg.cmt +0 -0
  359. package/lib/ocaml/arg.cmti +0 -0
  360. package/lib/ocaml/arg.ml +359 -0
  361. package/lib/ocaml/arg.mli +185 -0
  362. package/lib/ocaml/array.cmi +0 -0
  363. package/lib/ocaml/array.cmt +0 -0
  364. package/lib/ocaml/array.cmti +0 -0
  365. package/lib/ocaml/array.ml +307 -0
  366. package/lib/ocaml/array.mli +275 -0
  367. package/lib/ocaml/arrayLabels.cmi +0 -0
  368. package/lib/ocaml/arrayLabels.cmt +0 -0
  369. package/lib/ocaml/arrayLabels.cmti +0 -0
  370. package/lib/ocaml/arrayLabels.ml +307 -0
  371. package/lib/ocaml/arrayLabels.mli +276 -0
  372. package/lib/ocaml/belt.cmi +0 -0
  373. package/lib/ocaml/belt.cmt +0 -0
  374. package/lib/ocaml/belt.ml +352 -0
  375. package/lib/ocaml/belt_Array.cmi +0 -0
  376. package/lib/ocaml/belt_Array.cmt +0 -0
  377. package/lib/ocaml/belt_Array.cmti +0 -0
  378. package/lib/ocaml/belt_Array.ml +525 -0
  379. package/lib/ocaml/belt_Array.mli +707 -0
  380. package/lib/ocaml/belt_Float.cmi +0 -0
  381. package/lib/ocaml/belt_Float.cmt +0 -0
  382. package/lib/ocaml/belt_Float.cmti +0 -0
  383. package/lib/ocaml/belt_Float.ml +50 -0
  384. package/lib/ocaml/belt_Float.mli +106 -0
  385. package/lib/ocaml/belt_HashMap.cmi +0 -0
  386. package/lib/ocaml/belt_HashMap.cmt +0 -0
  387. package/lib/ocaml/belt_HashMap.cmti +0 -0
  388. package/lib/ocaml/belt_HashMap.ml +226 -0
  389. package/lib/ocaml/belt_HashMap.mli +436 -0
  390. package/lib/ocaml/belt_HashMapInt.cmi +0 -0
  391. package/lib/ocaml/belt_HashMapInt.cmt +0 -0
  392. package/lib/ocaml/belt_HashMapInt.cmti +0 -0
  393. package/lib/ocaml/belt_HashMapInt.ml +206 -0
  394. package/lib/ocaml/belt_HashMapInt.mli +50 -0
  395. package/lib/ocaml/belt_HashMapString.cmi +0 -0
  396. package/lib/ocaml/belt_HashMapString.cmt +0 -0
  397. package/lib/ocaml/belt_HashMapString.cmti +0 -0
  398. package/lib/ocaml/belt_HashMapString.ml +206 -0
  399. package/lib/ocaml/belt_HashMapString.mli +50 -0
  400. package/lib/ocaml/belt_HashSet.cmi +0 -0
  401. package/lib/ocaml/belt_HashSet.cmt +0 -0
  402. package/lib/ocaml/belt_HashSet.cmti +0 -0
  403. package/lib/ocaml/belt_HashSet.ml +196 -0
  404. package/lib/ocaml/belt_HashSet.mli +125 -0
  405. package/lib/ocaml/belt_HashSetInt.cmi +0 -0
  406. package/lib/ocaml/belt_HashSetInt.cmt +0 -0
  407. package/lib/ocaml/belt_HashSetInt.cmti +0 -0
  408. package/lib/ocaml/belt_HashSetInt.ml +155 -0
  409. package/lib/ocaml/belt_HashSetInt.mli +74 -0
  410. package/lib/ocaml/belt_HashSetString.cmi +0 -0
  411. package/lib/ocaml/belt_HashSetString.cmt +0 -0
  412. package/lib/ocaml/belt_HashSetString.cmti +0 -0
  413. package/lib/ocaml/belt_HashSetString.ml +156 -0
  414. package/lib/ocaml/belt_HashSetString.mli +74 -0
  415. package/lib/ocaml/belt_Id.cmi +0 -0
  416. package/lib/ocaml/belt_Id.cmt +0 -0
  417. package/lib/ocaml/belt_Id.cmti +0 -0
  418. package/lib/ocaml/belt_Id.ml +133 -0
  419. package/lib/ocaml/belt_Id.mli +171 -0
  420. package/lib/ocaml/belt_Int.cmi +0 -0
  421. package/lib/ocaml/belt_Int.cmt +0 -0
  422. package/lib/ocaml/belt_Int.cmti +0 -0
  423. package/lib/ocaml/belt_Int.ml +50 -0
  424. package/lib/ocaml/belt_Int.mli +103 -0
  425. package/lib/ocaml/belt_List.cmi +0 -0
  426. package/lib/ocaml/belt_List.cmt +0 -0
  427. package/lib/ocaml/belt_List.cmti +0 -0
  428. package/lib/ocaml/belt_List.ml +803 -0
  429. package/lib/ocaml/belt_List.mli +844 -0
  430. package/lib/ocaml/belt_Map.cmi +0 -0
  431. package/lib/ocaml/belt_Map.cmt +0 -0
  432. package/lib/ocaml/belt_Map.cmti +0 -0
  433. package/lib/ocaml/belt_Map.ml +170 -0
  434. package/lib/ocaml/belt_Map.mli +496 -0
  435. package/lib/ocaml/belt_MapDict.cmi +0 -0
  436. package/lib/ocaml/belt_MapDict.cmt +0 -0
  437. package/lib/ocaml/belt_MapDict.cmti +0 -0
  438. package/lib/ocaml/belt_MapDict.ml +278 -0
  439. package/lib/ocaml/belt_MapDict.mli +268 -0
  440. package/lib/ocaml/belt_MapInt.cmi +0 -0
  441. package/lib/ocaml/belt_MapInt.cmt +0 -0
  442. package/lib/ocaml/belt_MapInt.cmti +0 -0
  443. package/lib/ocaml/belt_MapInt.ml +169 -0
  444. package/lib/ocaml/belt_MapInt.mli +187 -0
  445. package/lib/ocaml/belt_MapString.cmi +0 -0
  446. package/lib/ocaml/belt_MapString.cmt +0 -0
  447. package/lib/ocaml/belt_MapString.cmti +0 -0
  448. package/lib/ocaml/belt_MapString.ml +169 -0
  449. package/lib/ocaml/belt_MapString.mli +187 -0
  450. package/lib/ocaml/belt_MutableMap.cmi +0 -0
  451. package/lib/ocaml/belt_MutableMap.cmt +0 -0
  452. package/lib/ocaml/belt_MutableMap.cmti +0 -0
  453. package/lib/ocaml/belt_MutableMap.ml +241 -0
  454. package/lib/ocaml/belt_MutableMap.mli +145 -0
  455. package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
  456. package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
  457. package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
  458. package/lib/ocaml/belt_MutableMapInt.ml +172 -0
  459. package/lib/ocaml/belt_MutableMapInt.mli +135 -0
  460. package/lib/ocaml/belt_MutableMapString.cmi +0 -0
  461. package/lib/ocaml/belt_MutableMapString.cmt +0 -0
  462. package/lib/ocaml/belt_MutableMapString.cmti +0 -0
  463. package/lib/ocaml/belt_MutableMapString.ml +172 -0
  464. package/lib/ocaml/belt_MutableMapString.mli +135 -0
  465. package/lib/ocaml/belt_MutableQueue.cmi +0 -0
  466. package/lib/ocaml/belt_MutableQueue.cmt +0 -0
  467. package/lib/ocaml/belt_MutableQueue.cmti +0 -0
  468. package/lib/ocaml/belt_MutableQueue.ml +222 -0
  469. package/lib/ocaml/belt_MutableQueue.mli +116 -0
  470. package/lib/ocaml/belt_MutableSet.cmi +0 -0
  471. package/lib/ocaml/belt_MutableSet.cmt +0 -0
  472. package/lib/ocaml/belt_MutableSet.cmti +0 -0
  473. package/lib/ocaml/belt_MutableSet.ml +371 -0
  474. package/lib/ocaml/belt_MutableSet.mli +617 -0
  475. package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
  476. package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
  477. package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
  478. package/lib/ocaml/belt_MutableSetInt.ml +342 -0
  479. package/lib/ocaml/belt_MutableSetInt.mli +124 -0
  480. package/lib/ocaml/belt_MutableSetString.cmi +0 -0
  481. package/lib/ocaml/belt_MutableSetString.cmt +0 -0
  482. package/lib/ocaml/belt_MutableSetString.cmti +0 -0
  483. package/lib/ocaml/belt_MutableSetString.ml +342 -0
  484. package/lib/ocaml/belt_MutableSetString.mli +124 -0
  485. package/lib/ocaml/belt_MutableStack.cmi +0 -0
  486. package/lib/ocaml/belt_MutableStack.cmt +0 -0
  487. package/lib/ocaml/belt_MutableStack.cmti +0 -0
  488. package/lib/ocaml/belt_MutableStack.ml +106 -0
  489. package/lib/ocaml/belt_MutableStack.mli +63 -0
  490. package/lib/ocaml/belt_Option.cmi +0 -0
  491. package/lib/ocaml/belt_Option.cmt +0 -0
  492. package/lib/ocaml/belt_Option.cmti +0 -0
  493. package/lib/ocaml/belt_Option.ml +93 -0
  494. package/lib/ocaml/belt_Option.mli +270 -0
  495. package/lib/ocaml/belt_Range.cmi +0 -0
  496. package/lib/ocaml/belt_Range.cmt +0 -0
  497. package/lib/ocaml/belt_Range.cmti +0 -0
  498. package/lib/ocaml/belt_Range.ml +76 -0
  499. package/lib/ocaml/belt_Range.mli +114 -0
  500. package/lib/ocaml/belt_Result.cmi +0 -0
  501. package/lib/ocaml/belt_Result.cmt +0 -0
  502. package/lib/ocaml/belt_Result.cmti +0 -0
  503. package/lib/ocaml/belt_Result.ml +75 -0
  504. package/lib/ocaml/belt_Result.mli +205 -0
  505. package/lib/ocaml/belt_Set.cmi +0 -0
  506. package/lib/ocaml/belt_Set.cmt +0 -0
  507. package/lib/ocaml/belt_Set.cmti +0 -0
  508. package/lib/ocaml/belt_Set.cppo.ml +205 -0
  509. package/lib/ocaml/belt_Set.cppo.mli +153 -0
  510. package/lib/ocaml/belt_Set.ml +164 -0
  511. package/lib/ocaml/belt_Set.mli +523 -0
  512. package/lib/ocaml/belt_SetDict.cmi +0 -0
  513. package/lib/ocaml/belt_SetDict.cmt +0 -0
  514. package/lib/ocaml/belt_SetDict.cmti +0 -0
  515. package/lib/ocaml/belt_SetDict.ml +237 -0
  516. package/lib/ocaml/belt_SetDict.mli +567 -0
  517. package/lib/ocaml/belt_SetInt.cmi +0 -0
  518. package/lib/ocaml/belt_SetInt.cmt +0 -0
  519. package/lib/ocaml/belt_SetInt.cmti +0 -0
  520. package/lib/ocaml/belt_SetInt.ml +201 -0
  521. package/lib/ocaml/belt_SetInt.mli +151 -0
  522. package/lib/ocaml/belt_SetString.cmi +0 -0
  523. package/lib/ocaml/belt_SetString.cmt +0 -0
  524. package/lib/ocaml/belt_SetString.cmti +0 -0
  525. package/lib/ocaml/belt_SetString.ml +201 -0
  526. package/lib/ocaml/belt_SetString.mli +151 -0
  527. package/lib/ocaml/belt_SortArray.cmi +0 -0
  528. package/lib/ocaml/belt_SortArray.cmt +0 -0
  529. package/lib/ocaml/belt_SortArray.cmti +0 -0
  530. package/lib/ocaml/belt_SortArray.ml +322 -0
  531. package/lib/ocaml/belt_SortArray.mli +146 -0
  532. package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
  533. package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
  534. package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
  535. package/lib/ocaml/belt_SortArrayInt.ml +263 -0
  536. package/lib/ocaml/belt_SortArrayInt.mli +93 -0
  537. package/lib/ocaml/belt_SortArrayString.cmi +0 -0
  538. package/lib/ocaml/belt_SortArrayString.cmt +0 -0
  539. package/lib/ocaml/belt_SortArrayString.cmti +0 -0
  540. package/lib/ocaml/belt_SortArrayString.ml +263 -0
  541. package/lib/ocaml/belt_SortArrayString.mli +93 -0
  542. package/lib/ocaml/belt_internalAVLset.cmt +0 -0
  543. package/lib/ocaml/belt_internalAVLset.cmti +0 -0
  544. package/lib/ocaml/belt_internalAVLset.ml +665 -0
  545. package/lib/ocaml/belt_internalAVLset.mli +124 -0
  546. package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
  547. package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
  548. package/lib/ocaml/belt_internalAVLtree.ml +762 -0
  549. package/lib/ocaml/belt_internalAVLtree.mli +215 -0
  550. package/lib/ocaml/belt_internalBuckets.cmt +0 -0
  551. package/lib/ocaml/belt_internalBuckets.cmti +0 -0
  552. package/lib/ocaml/belt_internalBuckets.ml +218 -0
  553. package/lib/ocaml/belt_internalBuckets.mli +57 -0
  554. package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
  555. package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
  556. package/lib/ocaml/belt_internalBucketsType.ml +59 -0
  557. package/lib/ocaml/belt_internalBucketsType.mli +46 -0
  558. package/lib/ocaml/belt_internalMapInt.cmt +0 -0
  559. package/lib/ocaml/belt_internalMapInt.ml +227 -0
  560. package/lib/ocaml/belt_internalMapString.cmt +0 -0
  561. package/lib/ocaml/belt_internalMapString.ml +227 -0
  562. package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
  563. package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
  564. package/lib/ocaml/belt_internalSetBuckets.ml +157 -0
  565. package/lib/ocaml/belt_internalSetBuckets.mli +47 -0
  566. package/lib/ocaml/belt_internalSetInt.cmt +0 -0
  567. package/lib/ocaml/belt_internalSetInt.ml +129 -0
  568. package/lib/ocaml/belt_internalSetString.cmt +0 -0
  569. package/lib/ocaml/belt_internalSetString.ml +129 -0
  570. package/lib/ocaml/belt_internals.cmti +0 -0
  571. package/lib/ocaml/belt_internals.mli +79 -0
  572. package/lib/ocaml/buffer.cmi +0 -0
  573. package/lib/ocaml/buffer.cmt +0 -0
  574. package/lib/ocaml/buffer.cmti +0 -0
  575. package/lib/ocaml/buffer.ml +250 -0
  576. package/lib/ocaml/buffer.mli +149 -0
  577. package/lib/ocaml/bytes.cmi +0 -0
  578. package/lib/ocaml/bytes.cmt +0 -0
  579. package/lib/ocaml/bytes.cmti +0 -0
  580. package/lib/ocaml/bytes.ml +431 -0
  581. package/lib/ocaml/bytes.mli +430 -0
  582. package/lib/ocaml/bytesLabels.cmi +0 -0
  583. package/lib/ocaml/bytesLabels.cmt +0 -0
  584. package/lib/ocaml/bytesLabels.cmti +0 -0
  585. package/lib/ocaml/bytesLabels.ml +428 -0
  586. package/lib/ocaml/bytesLabels.mli +276 -0
  587. package/lib/ocaml/callback.cmi +0 -0
  588. package/lib/ocaml/callback.cmt +0 -0
  589. package/lib/ocaml/callback.cmti +0 -0
  590. package/lib/ocaml/callback.ml +20 -0
  591. package/lib/ocaml/callback.mli +34 -0
  592. package/lib/ocaml/camlinternalLazy.cmi +0 -0
  593. package/lib/ocaml/camlinternalLazy.cmt +0 -0
  594. package/lib/ocaml/camlinternalLazy.cmti +0 -0
  595. package/lib/ocaml/camlinternalLazy.ml +89 -0
  596. package/lib/ocaml/camlinternalLazy.mli +27 -0
  597. package/lib/ocaml/camlinternalMod.cmi +0 -0
  598. package/lib/ocaml/camlinternalMod.cmt +0 -0
  599. package/lib/ocaml/camlinternalMod.cmti +0 -0
  600. package/lib/ocaml/camlinternalMod.ml +21 -0
  601. package/lib/ocaml/camlinternalMod.mli +25 -0
  602. package/lib/ocaml/char.cmi +0 -0
  603. package/lib/ocaml/char.cmt +0 -0
  604. package/lib/ocaml/char.cmti +0 -0
  605. package/lib/ocaml/char.ml +76 -0
  606. package/lib/ocaml/char.mli +72 -0
  607. package/lib/ocaml/complex.cmi +0 -0
  608. package/lib/ocaml/complex.cmt +0 -0
  609. package/lib/ocaml/complex.cmti +0 -0
  610. package/lib/ocaml/complex.ml +87 -0
  611. package/lib/ocaml/complex.mli +86 -0
  612. package/lib/ocaml/digest.cmi +0 -0
  613. package/lib/ocaml/digest.cmt +0 -0
  614. package/lib/ocaml/digest.cmti +0 -0
  615. package/lib/ocaml/digest.ml +66 -0
  616. package/lib/ocaml/digest.mli +68 -0
  617. package/lib/ocaml/dom.cmi +0 -0
  618. package/lib/ocaml/dom.cmt +0 -0
  619. package/lib/ocaml/dom.ml +296 -0
  620. package/lib/ocaml/dom_storage.cmi +0 -0
  621. package/lib/ocaml/dom_storage.cmt +0 -0
  622. package/lib/ocaml/dom_storage.ml +22 -0
  623. package/lib/ocaml/dom_storage2.cmi +0 -0
  624. package/lib/ocaml/dom_storage2.cmt +0 -0
  625. package/lib/ocaml/dom_storage2.ml +11 -0
  626. package/lib/ocaml/filename.cmi +0 -0
  627. package/lib/ocaml/filename.cmt +0 -0
  628. package/lib/ocaml/filename.cmti +0 -0
  629. package/lib/ocaml/filename.ml +233 -0
  630. package/lib/ocaml/filename.mli +134 -0
  631. package/lib/ocaml/genlex.cmi +0 -0
  632. package/lib/ocaml/genlex.cmt +0 -0
  633. package/lib/ocaml/genlex.cmti +0 -0
  634. package/lib/ocaml/genlex.ml +201 -0
  635. package/lib/ocaml/genlex.mli +73 -0
  636. package/lib/ocaml/hashmap.cppo.ml +214 -0
  637. package/lib/ocaml/hashmap.cppo.mli +54 -0
  638. package/lib/ocaml/hashset.cppo.ml +165 -0
  639. package/lib/ocaml/hashset.cppo.mli +77 -0
  640. package/lib/ocaml/hashtbl.cmi +0 -0
  641. package/lib/ocaml/hashtbl.cmt +0 -0
  642. package/lib/ocaml/hashtbl.cmti +0 -0
  643. package/lib/ocaml/hashtbl.ml +541 -0
  644. package/lib/ocaml/hashtbl.mli +411 -0
  645. package/lib/ocaml/hashtblLabels.cmi +0 -0
  646. package/lib/ocaml/hashtblLabels.cmt +0 -0
  647. package/lib/ocaml/hashtblLabels.ml +130 -0
  648. package/lib/ocaml/int32.cmi +0 -0
  649. package/lib/ocaml/int32.cmt +0 -0
  650. package/lib/ocaml/int32.cmti +0 -0
  651. package/lib/ocaml/int32.ml +64 -0
  652. package/lib/ocaml/int32.mli +186 -0
  653. package/lib/ocaml/int64.cmi +0 -0
  654. package/lib/ocaml/int64.cmt +0 -0
  655. package/lib/ocaml/int64.cmti +0 -0
  656. package/lib/ocaml/int64.ml +72 -0
  657. package/lib/ocaml/int64.mli +197 -0
  658. package/lib/ocaml/internal_map.cppo.ml +230 -0
  659. package/lib/ocaml/internal_set.cppo.ml +134 -0
  660. package/lib/ocaml/js.cmi +0 -0
  661. package/lib/ocaml/js.cmt +0 -0
  662. package/lib/ocaml/js.ml +313 -0
  663. package/lib/ocaml/js_OO.cmi +0 -0
  664. package/lib/ocaml/js_OO.cmt +0 -0
  665. package/lib/ocaml/js_OO.ml +180 -0
  666. package/lib/ocaml/js_array.cmi +0 -0
  667. package/lib/ocaml/js_array.cmt +0 -0
  668. package/lib/ocaml/js_array.ml +970 -0
  669. package/lib/ocaml/js_array2.cmi +0 -0
  670. package/lib/ocaml/js_array2.cmt +0 -0
  671. package/lib/ocaml/js_array2.ml +1065 -0
  672. package/lib/ocaml/js_bigint.cmi +0 -0
  673. package/lib/ocaml/js_bigint.cmt +0 -0
  674. package/lib/ocaml/js_bigint.ml +3 -0
  675. package/lib/ocaml/js_cast.cmi +0 -0
  676. package/lib/ocaml/js_cast.cmt +0 -0
  677. package/lib/ocaml/js_cast.cmti +0 -0
  678. package/lib/ocaml/js_cast.ml +29 -0
  679. package/lib/ocaml/js_cast.mli +45 -0
  680. package/lib/ocaml/js_console.cmi +0 -0
  681. package/lib/ocaml/js_console.cmt +0 -0
  682. package/lib/ocaml/js_console.ml +51 -0
  683. package/lib/ocaml/js_date.cmi +0 -0
  684. package/lib/ocaml/js_date.cmt +0 -0
  685. package/lib/ocaml/js_date.ml +1263 -0
  686. package/lib/ocaml/js_dict.cmi +0 -0
  687. package/lib/ocaml/js_dict.cmt +0 -0
  688. package/lib/ocaml/js_dict.cmti +0 -0
  689. package/lib/ocaml/js_dict.ml +114 -0
  690. package/lib/ocaml/js_dict.mli +152 -0
  691. package/lib/ocaml/js_exn.cmi +0 -0
  692. package/lib/ocaml/js_exn.cmt +0 -0
  693. package/lib/ocaml/js_exn.cmti +0 -0
  694. package/lib/ocaml/js_exn.ml +102 -0
  695. package/lib/ocaml/js_exn.mli +79 -0
  696. package/lib/ocaml/js_float.cmi +0 -0
  697. package/lib/ocaml/js_float.cmt +0 -0
  698. package/lib/ocaml/js_float.ml +294 -0
  699. package/lib/ocaml/js_global.cmi +0 -0
  700. package/lib/ocaml/js_global.cmt +0 -0
  701. package/lib/ocaml/js_global.ml +185 -0
  702. package/lib/ocaml/js_int.cmi +0 -0
  703. package/lib/ocaml/js_int.cmt +0 -0
  704. package/lib/ocaml/js_int.ml +158 -0
  705. package/lib/ocaml/js_json.cmi +0 -0
  706. package/lib/ocaml/js_json.cmt +0 -0
  707. package/lib/ocaml/js_json.cmti +0 -0
  708. package/lib/ocaml/js_json.ml +195 -0
  709. package/lib/ocaml/js_json.mli +244 -0
  710. package/lib/ocaml/js_list.cmi +0 -0
  711. package/lib/ocaml/js_list.cmt +0 -0
  712. package/lib/ocaml/js_list.cmti +0 -0
  713. package/lib/ocaml/js_list.ml +174 -0
  714. package/lib/ocaml/js_list.mli +72 -0
  715. package/lib/ocaml/js_map.cmi +0 -0
  716. package/lib/ocaml/js_map.cmt +0 -0
  717. package/lib/ocaml/js_map.ml +3 -0
  718. package/lib/ocaml/js_mapperRt.cmi +0 -0
  719. package/lib/ocaml/js_mapperRt.cmt +0 -0
  720. package/lib/ocaml/js_mapperRt.cmti +0 -0
  721. package/lib/ocaml/js_mapperRt.ml +50 -0
  722. package/lib/ocaml/js_mapperRt.mli +44 -0
  723. package/lib/ocaml/js_math.cmi +0 -0
  724. package/lib/ocaml/js_math.cmt +0 -0
  725. package/lib/ocaml/js_math.ml +626 -0
  726. package/lib/ocaml/js_null.cmi +0 -0
  727. package/lib/ocaml/js_null.cmt +0 -0
  728. package/lib/ocaml/js_null.cmti +0 -0
  729. package/lib/ocaml/js_null.ml +57 -0
  730. package/lib/ocaml/js_null.mli +87 -0
  731. package/lib/ocaml/js_null_undefined.cmi +0 -0
  732. package/lib/ocaml/js_null_undefined.cmt +0 -0
  733. package/lib/ocaml/js_null_undefined.cmti +0 -0
  734. package/lib/ocaml/js_null_undefined.ml +50 -0
  735. package/lib/ocaml/js_null_undefined.mli +85 -0
  736. package/lib/ocaml/js_obj.cmi +0 -0
  737. package/lib/ocaml/js_obj.cmt +0 -0
  738. package/lib/ocaml/js_obj.ml +100 -0
  739. package/lib/ocaml/js_option.cmi +0 -0
  740. package/lib/ocaml/js_option.cmt +0 -0
  741. package/lib/ocaml/js_option.cmti +0 -0
  742. package/lib/ocaml/js_option.ml +203 -0
  743. package/lib/ocaml/js_option.mli +52 -0
  744. package/lib/ocaml/js_promise.cmi +0 -0
  745. package/lib/ocaml/js_promise.cmt +0 -0
  746. package/lib/ocaml/js_promise.ml +100 -0
  747. package/lib/ocaml/js_re.cmi +0 -0
  748. package/lib/ocaml/js_re.cmt +0 -0
  749. package/lib/ocaml/js_re.ml +184 -0
  750. package/lib/ocaml/js_result.cmi +0 -0
  751. package/lib/ocaml/js_result.cmt +0 -0
  752. package/lib/ocaml/js_result.cmti +0 -0
  753. package/lib/ocaml/js_result.ml +28 -0
  754. package/lib/ocaml/js_result.mli +28 -0
  755. package/lib/ocaml/js_set.cmi +0 -0
  756. package/lib/ocaml/js_set.cmt +0 -0
  757. package/lib/ocaml/js_set.ml +3 -0
  758. package/lib/ocaml/js_string.cmi +0 -0
  759. package/lib/ocaml/js_string.cmt +0 -0
  760. package/lib/ocaml/js_string.ml +914 -0
  761. package/lib/ocaml/js_string2.cmi +0 -0
  762. package/lib/ocaml/js_string2.cmt +0 -0
  763. package/lib/ocaml/js_string2.ml +912 -0
  764. package/lib/ocaml/js_typed_array.cmi +0 -0
  765. package/lib/ocaml/js_typed_array.cmt +0 -0
  766. package/lib/ocaml/js_typed_array.cppo.ml +429 -0
  767. package/lib/ocaml/js_typed_array.ml +1405 -0
  768. package/lib/ocaml/js_typed_array2.cmi +0 -0
  769. package/lib/ocaml/js_typed_array2.cmt +0 -0
  770. package/lib/ocaml/js_typed_array2.cppo.ml +296 -0
  771. package/lib/ocaml/js_typed_array2.ml +1269 -0
  772. package/lib/ocaml/js_types.cmi +0 -0
  773. package/lib/ocaml/js_types.cmt +0 -0
  774. package/lib/ocaml/js_types.cmti +0 -0
  775. package/lib/ocaml/js_types.ml +118 -0
  776. package/lib/ocaml/js_types.mli +78 -0
  777. package/lib/ocaml/js_undefined.cmi +0 -0
  778. package/lib/ocaml/js_undefined.cmt +0 -0
  779. package/lib/ocaml/js_undefined.cmti +0 -0
  780. package/lib/ocaml/js_undefined.ml +59 -0
  781. package/lib/ocaml/js_undefined.mli +92 -0
  782. package/lib/ocaml/js_vector.cmi +0 -0
  783. package/lib/ocaml/js_vector.cmt +0 -0
  784. package/lib/ocaml/js_vector.cmti +0 -0
  785. package/lib/ocaml/js_vector.ml +143 -0
  786. package/lib/ocaml/js_vector.mli +92 -0
  787. package/lib/ocaml/js_weakmap.cmi +0 -0
  788. package/lib/ocaml/js_weakmap.cmt +0 -0
  789. package/lib/ocaml/js_weakmap.ml +3 -0
  790. package/lib/ocaml/js_weakset.cmi +0 -0
  791. package/lib/ocaml/js_weakset.cmt +0 -0
  792. package/lib/ocaml/js_weakset.ml +3 -0
  793. package/lib/ocaml/jsx.cmi +0 -0
  794. package/lib/ocaml/jsx.cmt +0 -0
  795. package/lib/ocaml/jsx.ml +39 -0
  796. package/lib/ocaml/jsxDOM.cmi +0 -0
  797. package/lib/ocaml/jsxDOM.cmt +0 -0
  798. package/lib/ocaml/jsxDOM.ml +2087 -0
  799. package/lib/ocaml/jsxDOMStyle.cmi +0 -0
  800. package/lib/ocaml/jsxDOMStyle.cmt +0 -0
  801. package/lib/ocaml/jsxDOMStyle.ml +777 -0
  802. package/lib/ocaml/jsxEvent.cmi +0 -0
  803. package/lib/ocaml/jsxEvent.cmt +0 -0
  804. package/lib/ocaml/jsxEvent.ml +358 -0
  805. package/lib/ocaml/lazy.cmi +0 -0
  806. package/lib/ocaml/lazy.cmt +0 -0
  807. package/lib/ocaml/lazy.cmti +0 -0
  808. package/lib/ocaml/lazy.ml +70 -0
  809. package/lib/ocaml/lazy.mli +95 -0
  810. package/lib/ocaml/lexing.cmi +0 -0
  811. package/lib/ocaml/lexing.cmt +0 -0
  812. package/lib/ocaml/lexing.cmti +0 -0
  813. package/lib/ocaml/lexing.ml +230 -0
  814. package/lib/ocaml/lexing.mli +172 -0
  815. package/lib/ocaml/list.cmi +0 -0
  816. package/lib/ocaml/list.cmt +0 -0
  817. package/lib/ocaml/list.cmti +0 -0
  818. package/lib/ocaml/list.ml +485 -0
  819. package/lib/ocaml/list.mli +347 -0
  820. package/lib/ocaml/listLabels.cmi +0 -0
  821. package/lib/ocaml/listLabels.cmt +0 -0
  822. package/lib/ocaml/listLabels.cmti +0 -0
  823. package/lib/ocaml/listLabels.ml +485 -0
  824. package/lib/ocaml/listLabels.mli +353 -0
  825. package/lib/ocaml/map.cmi +0 -0
  826. package/lib/ocaml/map.cmt +0 -0
  827. package/lib/ocaml/map.cmti +0 -0
  828. package/lib/ocaml/map.cppo.ml +174 -0
  829. package/lib/ocaml/map.cppo.mli +191 -0
  830. package/lib/ocaml/map.ml +480 -0
  831. package/lib/ocaml/map.mli +315 -0
  832. package/lib/ocaml/mapLabels.cmi +0 -0
  833. package/lib/ocaml/mapLabels.cmt +0 -0
  834. package/lib/ocaml/mapLabels.ml +480 -0
  835. package/lib/ocaml/mapm.cppo.ml +177 -0
  836. package/lib/ocaml/mapm.cppo.mli +138 -0
  837. package/lib/ocaml/moreLabels.cmi +0 -0
  838. package/lib/ocaml/moreLabels.cmt +0 -0
  839. package/lib/ocaml/moreLabels.cmti +0 -0
  840. package/lib/ocaml/moreLabels.ml +22 -0
  841. package/lib/ocaml/moreLabels.mli +198 -0
  842. package/lib/ocaml/node.cmi +0 -0
  843. package/lib/ocaml/node.cmt +0 -0
  844. package/lib/ocaml/node.ml +84 -0
  845. package/lib/ocaml/node_buffer.cmi +0 -0
  846. package/lib/ocaml/node_buffer.cmt +0 -0
  847. package/lib/ocaml/node_buffer.ml +47 -0
  848. package/lib/ocaml/node_child_process.cmi +0 -0
  849. package/lib/ocaml/node_child_process.cmt +0 -0
  850. package/lib/ocaml/node_child_process.ml +50 -0
  851. package/lib/ocaml/node_fs.cmi +0 -0
  852. package/lib/ocaml/node_fs.cmt +0 -0
  853. package/lib/ocaml/node_fs.ml +153 -0
  854. package/lib/ocaml/node_module.cmi +0 -0
  855. package/lib/ocaml/node_module.cmt +0 -0
  856. package/lib/ocaml/node_module.ml +29 -0
  857. package/lib/ocaml/node_path.cmi +0 -0
  858. package/lib/ocaml/node_path.cmt +0 -0
  859. package/lib/ocaml/node_path.ml +71 -0
  860. package/lib/ocaml/node_process.cmi +0 -0
  861. package/lib/ocaml/node_process.cmt +0 -0
  862. package/lib/ocaml/node_process.cmti +0 -0
  863. package/lib/ocaml/node_process.ml +59 -0
  864. package/lib/ocaml/node_process.mli +48 -0
  865. package/lib/ocaml/obj.cmi +0 -0
  866. package/lib/ocaml/obj.cmt +0 -0
  867. package/lib/ocaml/obj.cmti +0 -0
  868. package/lib/ocaml/obj.ml +29 -0
  869. package/lib/ocaml/obj.mli +62 -0
  870. package/lib/ocaml/parsing.cmi +0 -0
  871. package/lib/ocaml/parsing.cmt +0 -0
  872. package/lib/ocaml/parsing.cmti +0 -0
  873. package/lib/ocaml/parsing.ml +212 -0
  874. package/lib/ocaml/parsing.mli +105 -0
  875. package/lib/ocaml/pervasives.cmi +0 -0
  876. package/lib/ocaml/pervasives.cmt +0 -0
  877. package/lib/ocaml/pervasives.cmti +0 -0
  878. package/lib/ocaml/pervasives.ml +297 -0
  879. package/lib/ocaml/pervasives.mli +771 -0
  880. package/lib/ocaml/printexc.cmi +0 -0
  881. package/lib/ocaml/printexc.cmt +0 -0
  882. package/lib/ocaml/printexc.cmti +0 -0
  883. package/lib/ocaml/printexc.ml +79 -0
  884. package/lib/ocaml/printexc.mli +57 -0
  885. package/lib/ocaml/queue.cmi +0 -0
  886. package/lib/ocaml/queue.cmt +0 -0
  887. package/lib/ocaml/queue.cmti +0 -0
  888. package/lib/ocaml/queue.ml +132 -0
  889. package/lib/ocaml/queue.mli +82 -0
  890. package/lib/ocaml/random.cmi +0 -0
  891. package/lib/ocaml/random.cmt +0 -0
  892. package/lib/ocaml/random.cmti +0 -0
  893. package/lib/ocaml/random.ml +273 -0
  894. package/lib/ocaml/random.mli +102 -0
  895. package/lib/ocaml/set.cmi +0 -0
  896. package/lib/ocaml/set.cmt +0 -0
  897. package/lib/ocaml/set.cmti +0 -0
  898. package/lib/ocaml/set.ml +526 -0
  899. package/lib/ocaml/set.mli +266 -0
  900. package/lib/ocaml/setLabels.cmi +0 -0
  901. package/lib/ocaml/setLabels.cmt +0 -0
  902. package/lib/ocaml/setLabels.ml +526 -0
  903. package/lib/ocaml/setm.cppo.ml +346 -0
  904. package/lib/ocaml/setm.cppo.mli +126 -0
  905. package/lib/ocaml/sort.cmi +0 -0
  906. package/lib/ocaml/sort.cmt +0 -0
  907. package/lib/ocaml/sort.cmti +0 -0
  908. package/lib/ocaml/sort.cppo.ml +267 -0
  909. package/lib/ocaml/sort.cppo.mli +96 -0
  910. package/lib/ocaml/sort.ml +99 -0
  911. package/lib/ocaml/sort.mli +44 -0
  912. package/lib/ocaml/stack.cmi +0 -0
  913. package/lib/ocaml/stack.cmt +0 -0
  914. package/lib/ocaml/stack.cmti +0 -0
  915. package/lib/ocaml/stack.ml +44 -0
  916. package/lib/ocaml/stack.mli +63 -0
  917. package/lib/ocaml/stdLabels.cmi +0 -0
  918. package/lib/ocaml/stdLabels.cmt +0 -0
  919. package/lib/ocaml/stdLabels.cmti +0 -0
  920. package/lib/ocaml/stdLabels.ml +24 -0
  921. package/lib/ocaml/stdLabels.mli +29 -0
  922. package/lib/ocaml/stream.cmi +0 -0
  923. package/lib/ocaml/stream.cmt +0 -0
  924. package/lib/ocaml/stream.cmti +0 -0
  925. package/lib/ocaml/stream.ml +213 -0
  926. package/lib/ocaml/stream.mli +108 -0
  927. package/lib/ocaml/string.cmi +0 -0
  928. package/lib/ocaml/string.cmt +0 -0
  929. package/lib/ocaml/string.cmti +0 -0
  930. package/lib/ocaml/string.ml +190 -0
  931. package/lib/ocaml/string.mli +286 -0
  932. package/lib/ocaml/stringLabels.cmi +0 -0
  933. package/lib/ocaml/stringLabels.cmt +0 -0
  934. package/lib/ocaml/stringLabels.cmti +0 -0
  935. package/lib/ocaml/stringLabels.ml +190 -0
  936. package/lib/ocaml/stringLabels.mli +241 -0
  937. package/lib/ocaml/sys.cmi +0 -0
  938. package/lib/ocaml/sys.cmt +0 -0
  939. package/lib/ocaml/sys.cmti +0 -0
  940. package/lib/ocaml/sys.ml +135 -0
  941. package/lib/ocaml/sys.mli +333 -0
  942. package/lib/ocaml/uchar.cmi +0 -0
  943. package/lib/ocaml/uchar.cmt +0 -0
  944. package/lib/ocaml/uchar.cmti +0 -0
  945. package/lib/ocaml/uchar.ml +58 -0
  946. package/lib/ocaml/uchar.mli +98 -0
  947. package/linux/bsb_helper.exe +0 -0
  948. package/linux/bsc.exe +0 -0
  949. package/linux/ninja.COPYING +202 -0
  950. package/linux/ninja.exe +0 -0
  951. package/linux/refmt.exe +0 -0
  952. package/linux/rescript.exe +0 -0
  953. package/openbsd/.keep +0 -0
  954. package/package.json +71 -0
  955. package/rescript +591 -0
  956. package/scripts/LICENSE.ml +27 -0
  957. package/scripts/bin_path.js +38 -0
  958. package/scripts/buckle_lto.js +55 -0
  959. package/scripts/build_sorted.ml +233 -0
  960. package/scripts/buildocaml.js +102 -0
  961. package/scripts/caml_oo_curry_gen.ml +71 -0
  962. package/scripts/checkUnused.js +63 -0
  963. package/scripts/ciTest.js +172 -0
  964. package/scripts/config.js +24 -0
  965. package/scripts/cover.sh +3 -0
  966. package/scripts/curry_gen.ml +167 -0
  967. package/scripts/dbg +13 -0
  968. package/scripts/dedupe.js +44 -0
  969. package/scripts/doc_gen.js +117 -0
  970. package/scripts/install.js +237 -0
  971. package/scripts/installUtils.js +61 -0
  972. package/scripts/js_internal_gen.js +135 -0
  973. package/scripts/jsconfig.json +12 -0
  974. package/scripts/littlecase.js +21 -0
  975. package/scripts/ninja.js +1980 -0
  976. package/scripts/ninjaFactory.js +36 -0
  977. package/scripts/pack.js +107 -0
  978. package/scripts/prebuilt.js +99 -0
  979. package/scripts/release.js +41 -0
  980. package/scripts/repl.js +151 -0
  981. package/scripts/rescript_arg.js +168 -0
  982. package/scripts/rescript_convert.js +128 -0
  983. package/scripts/rescript_dump.js +48 -0
  984. package/scripts/rescript_format.js +194 -0
  985. package/scripts/shake.js +138 -0
  986. package/scripts/tasks.js +149 -0
  987. package/scripts/test.sh +3 -0
  988. package/scripts/tmp.js +98 -0
  989. package/scripts/validate.js +41 -0
  990. package/vendor/ninja.tar.gz +0 -0
  991. package/vendor/ocaml.tar.gz +0 -0
  992. package/win32/bsb_helper.exe +0 -0
  993. package/win32/bsc.exe +0 -0
  994. package/win32/ninja.COPYING +202 -0
  995. package/win32/ninja.exe +0 -0
  996. package/win32/refmt.exe +0 -0
  997. package/win32/rescript.exe +0 -0
@@ -0,0 +1,436 @@
1
+ (* Copyright (C) 2018 Authors of ReScript
2
+ *
3
+ * This program is free software: you can redistribute it and/or modify
4
+ * it under the terms of the GNU Lesser General Public License as published by
5
+ * the Free Software Foundation, either version 3 of the License, or
6
+ * (at your option) any later version.
7
+ *
8
+ * In addition to the permissions granted to you by the LGPL, you may combine
9
+ * or link a "work that uses the Library" with a publicly distributed version
10
+ * of this file to produce a combined library or application, then distribute
11
+ * that combined work under the terms of your choosing, with no requirement
12
+ * to comply with the obligations normally placed on you by section 4 of the
13
+ * LGPL version 3 (or the corresponding section of a later version of the LGPL
14
+ * should you choose to use a later version).
15
+ *
16
+ * This program is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * along with this program; if not, write to the Free Software
23
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
24
+
25
+ (**
26
+ A **mutable** Hash map which allows customized [`hash`]() behavior.
27
+
28
+ All data are parameterized by not its only type but also a unique identity in
29
+ the time of initialization, so that two _HashMaps of ints_ initialized with different
30
+ _hash_ functions will have different type.
31
+
32
+ For example:
33
+
34
+ ```
35
+ type t = int
36
+ module I0 = unpack(Belt.Id.hashableU(~hash=(. a: t) => \"&"(a, 0xff_ff), ~eq=(. a, b) => a == b))
37
+ let s0: t<_, string, _> = make(~hintSize=40, ~id=module(I0))
38
+
39
+ module I1 = unpack(Belt.Id.hashableU(~hash=(. a: t) => \"&"(a, 0xff), ~eq=(. a, b) => a == b))
40
+ let s1: t<_, string, _> = make(~hintSize=40, ~id=module(I1))
41
+ ```
42
+
43
+ The invariant must be held: for two elements who are _equal_,
44
+ their hashed value should be the same
45
+
46
+ Here the compiler would infer `s0` and `s1` having different type so that
47
+ it would not mix.
48
+
49
+ ```
50
+ let s0: t<int, I0.identity>
51
+ let s1: t<int, I1.identity>
52
+ ```
53
+
54
+ We can add elements to the collection:
55
+
56
+ ```
57
+ let () = {
58
+ add(s1, 0, "3")
59
+ add(s1, 1, "3")
60
+ }
61
+ ```
62
+
63
+ Since this is an mutable data strucure, `s1` will contain two pairs.
64
+ *)
65
+
66
+
67
+ (** Specalized when key type is `int`, more efficient
68
+ than the generic type *)
69
+ module Int = Belt_HashMapInt
70
+
71
+
72
+ (** Specalized when key type is `string`, more efficient
73
+ than the generic type *)
74
+ module String = Belt_HashMapString
75
+
76
+
77
+
78
+
79
+ type ('key,'value,'id) t
80
+ (** The type of hash tables from type `'key` to type `'value`. *)
81
+
82
+ type ('a, 'id) id = ('a, 'id) Belt_Id.hashable
83
+ (** The identity needed for making an empty hash map. *)
84
+
85
+
86
+ val make: hintSize:int -> id:('key, 'id) id -> ('key,'value,'id) t
87
+ (**
88
+ `make(~hintSize=10, ~id)` creates a new map by taking in the comparator and `hintSize`.
89
+
90
+ ```res example
91
+ module IntHash = Belt.Id.MakeHashable({
92
+ type t = int
93
+ let hash = a => a
94
+ let eq = (a, b) => a == b
95
+ })
96
+
97
+ let hMap = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
98
+
99
+ Belt.HashMap.set(hMap, 0, "a")
100
+ ```
101
+ *)
102
+
103
+ (*TODO: allow randomization for security *)
104
+
105
+ val clear: ('key, 'value, 'id ) t -> unit
106
+ (**
107
+ Clears a hash table.
108
+
109
+ ```res example
110
+ module IntHash = Belt.Id.MakeHashable({
111
+ type t = int
112
+ let hash = a => a
113
+ let eq = (a, b) => a == b
114
+ })
115
+
116
+ let hMap = Belt.HashMap.fromArray([(1, "1")], ~id=module(IntHash))
117
+ Belt.HashMap.clear(hMap)
118
+ Belt.HashMap.isEmpty(hMap) == true
119
+ ```
120
+ *)
121
+
122
+ val isEmpty: _ t -> bool
123
+ (**
124
+ `isEmpty(m)` checks whether a hash map is empty.
125
+
126
+ ```res example
127
+ module IntHash = Belt.Id.MakeHashable({
128
+ type t = int
129
+ let hash = a => a
130
+ let eq = (a, b) => a == b
131
+ })
132
+
133
+ Belt.HashMap.isEmpty(Belt.HashMap.fromArray([(1, "1")], ~id=module(IntHash))) == false
134
+ ```
135
+ *)
136
+
137
+ val set: ('key, 'value, 'id ) t -> 'key -> 'value -> unit
138
+ (**
139
+ `set(hMap, k, v)` if `k` does not exist, add the binding `k,v`, otherwise, update the old value with the new `v`.
140
+
141
+ ```res example
142
+ module IntHash = Belt.Id.MakeHashable({
143
+ type t = int
144
+ let hash = a => a
145
+ let eq = (a, b) => a == b
146
+ })
147
+
148
+ let s0 = Belt.HashMap.fromArray([(2, "2"), (1, "1"), (3, "3")], ~id=module(IntHash))
149
+
150
+ Belt.HashMap.set(s0, 2, "3")
151
+
152
+ Belt.HashMap.valuesToArray(s0) == ["1", "3", "3"]
153
+ ```
154
+ *)
155
+
156
+ val copy: ('key, 'value, 'id ) t -> ('key, 'value, 'id ) t
157
+ (**
158
+ Creates copy of a hash map.
159
+
160
+ ```res example
161
+ module IntHash = Belt.Id.MakeHashable({
162
+ type t = int
163
+ let hash = a => a
164
+ let eq = (a, b) => a == b
165
+ })
166
+
167
+ let s0 = Belt.HashMap.fromArray([(2, "2"), (1, "1"), (3, "3")], ~id=module(IntHash))
168
+ let s1 = Belt.HashMap.copy(s0)
169
+
170
+ Belt.HashMap.set(s0, 2, "3")
171
+
172
+ Belt.HashMap.get(s0, 2) != Belt.HashMap.get(s1, 2)
173
+ ```
174
+ *)
175
+
176
+ val get: ('key, 'value, 'id ) t -> 'key -> 'value option
177
+ (**
178
+ Returns value bound under specific key. If values not exist returns `None`.
179
+
180
+ ```res example
181
+ module IntHash = Belt.Id.MakeHashable({
182
+ type t = int
183
+ let hash = a => a
184
+ let eq = (a, b) => a == b
185
+ })
186
+
187
+ let s0 = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
188
+ Belt.HashMap.set(s0, 1, "value1")
189
+
190
+ Belt.HashMap.get(s0, 1) == Some("value1")
191
+ Belt.HashMap.get(s0, 2) == None
192
+ ```
193
+ *)
194
+
195
+
196
+ val has: ('key, 'value, 'id ) t -> 'key -> bool
197
+ (**
198
+ Checks if `x` is bound in `tbl`.
199
+
200
+ ```res example
201
+ module IntHash = Belt.Id.MakeHashable({
202
+ type t = int
203
+ let hash = a => a
204
+ let eq = (a, b) => a == b
205
+ })
206
+
207
+ let s0 = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
208
+ Belt.HashMap.set(s0, 1, "value1")
209
+
210
+ Belt.HashMap.has(s0, 1) == true
211
+ Belt.HashMap.has(s0, 2) == false
212
+ ```
213
+ *)
214
+
215
+ val remove: ('key, 'value, 'id ) t -> 'key -> unit
216
+ (**
217
+ If bound exists, removes it from the hash map.
218
+
219
+ ```res example
220
+ module IntHash = Belt.Id.MakeHashable({
221
+ type t = int
222
+ let hash = a => a
223
+ let eq = (a, b) => a == b
224
+ })
225
+
226
+ let s0 = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
227
+ Belt.HashMap.set(s0, 1, "value1")
228
+ Belt.HashMap.remove(s0, 1)
229
+ Belt.HashMap.has(s0, 1) == false
230
+ ```
231
+ *)
232
+
233
+ val forEachU: ('key, 'value, 'id ) t -> ('key -> 'value -> unit [@bs]) -> unit
234
+ (** Same as [forEach](#forEach) but takes uncurried function. *)
235
+
236
+ val forEach: ('key, 'value, 'id ) t -> ('key -> 'value -> unit) -> unit
237
+ (**
238
+ `forEach(tbl, f)` applies `f` to all bindings in table `tbl`. `f` receives the key as first argument, and the associated value as second argument. Each binding is presented exactly once to `f`.
239
+
240
+ ```res example
241
+ module IntHash = Belt.Id.MakeHashable({
242
+ type t = int
243
+ let hash = a => a
244
+ let eq = (a, b) => a == b
245
+ })
246
+
247
+ let s0 = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
248
+ Belt.HashMap.set(s0, 1, "value1")
249
+ Belt.HashMap.forEach(s0, (key, value) => Js.log2(key, value))
250
+ // prints (1, "value1")
251
+ ```
252
+ *)
253
+
254
+ val reduceU: ('key, 'value, 'id ) t -> 'c -> ('c -> 'key -> 'value -> 'c [@bs]) -> 'c
255
+ val reduce: ('key, 'value, 'id ) t -> 'c -> ('c -> 'key -> 'value -> 'c) -> 'c
256
+ (**
257
+ `reduce(tbl, init, f)` computes `(f(kN, dN) ... (f(k1, d1, init))...)`, where `k1 ... kN` are the keys of all bindings in `tbl`, and `d1 ... dN` are the associated values. Each binding is presented exactly once to `f`.
258
+
259
+ The order in which the bindings are passed to `f` is unspecified. However, if the table contains several bindings for the same key, they are passed to `f` in reverse order of introduction, that is, the most recent binding is passed first.
260
+
261
+ ```res example
262
+ module IntHash = Belt.Id.MakeHashable({
263
+ type t = int
264
+ let hash = a => a
265
+ let eq = (a, b) => a == b
266
+ })
267
+
268
+ let s0 = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
269
+ Belt.HashMap.set(s0, 1, "value1")
270
+ Belt.HashMap.set(s0, 2, "value2")
271
+
272
+ Belt.HashMap.reduce(s0, "", (acc, key, value) => acc ++ (", " ++ value)) == "value1, value2"
273
+ ```
274
+ *)
275
+
276
+ val keepMapInPlaceU: ('key, 'value, 'id ) t -> ('key -> 'value -> 'value option [@bs]) -> unit
277
+ (** Same as [keepMapInPlace](#keepMapInPlace) but takes uncurried function. *)
278
+
279
+ val keepMapInPlace: ('key, 'value, 'id ) t -> ('key -> 'value -> 'value option ) -> unit
280
+ (**
281
+ Filters out values for which function `f` returned `None`.
282
+
283
+ ```res example
284
+ module IntHash = Belt.Id.MakeHashable({
285
+ type t = int
286
+ let hash = a => a
287
+ let eq = (a, b) => a == b
288
+ })
289
+
290
+ let s0 = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
291
+ Belt.HashMap.set(s0, 1, "value1")
292
+ Belt.HashMap.set(s0, 2, "value2")
293
+
294
+ Belt.HashMap.keepMapInPlace(s0, (key, value) => key == 1 ? None : Some(value))
295
+ ```
296
+ *)
297
+
298
+ val size: _ t -> int
299
+ (**
300
+ `size(tbl)` returns the number of bindings in `tbl`. It takes constant time.
301
+
302
+ ```res example
303
+ module IntHash = Belt.Id.MakeHashable({
304
+ type t = int
305
+ let hash = a => a
306
+ let eq = (a, b) => a == b
307
+ })
308
+
309
+ let s0 = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
310
+ Belt.HashMap.set(s0, 1, "value1")
311
+ Belt.HashMap.set(s0, 2, "value2")
312
+
313
+ Belt.HashMap.size(s0) == 2
314
+ ```
315
+ *)
316
+
317
+ val toArray: ('key, 'value, 'id ) t -> ('key * 'value) array
318
+ (**
319
+ Returns array of key value pairs.
320
+
321
+ ```res example
322
+ module IntHash = Belt.Id.MakeHashable({
323
+ type t = int
324
+ let hash = a => a
325
+ let eq = (a, b) => a == b
326
+ })
327
+
328
+ let s0 = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
329
+ Belt.HashMap.set(s0, 1, "value1")
330
+ Belt.HashMap.set(s0, 2, "value2")
331
+
332
+ Belt.HashMap.toArray(s0) == [(1, "value1"), (2, "value2")]
333
+ ```
334
+ *)
335
+
336
+ val keysToArray: ('key, _, _) t -> 'key array
337
+ (**
338
+ Returns array of keys.
339
+
340
+ ```res example
341
+ module IntHash = Belt.Id.MakeHashable({
342
+ type t = int
343
+ let hash = a => a
344
+ let eq = (a, b) => a == b
345
+ })
346
+
347
+ let s0 = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
348
+ Belt.HashMap.set(s0, 1, "value1")
349
+ Belt.HashMap.set(s0, 2, "value2")
350
+
351
+ Belt.HashMap.keysToArray(s0) == [1, 2]
352
+ ```
353
+ *)
354
+
355
+ val valuesToArray: (_,'value,_) t -> 'value array
356
+ (**
357
+ Returns array of values.
358
+
359
+ ```res example
360
+ module IntHash = Belt.Id.MakeHashable({
361
+ type t = int
362
+ let hash = a => a
363
+ let eq = (a, b) => a == b
364
+ })
365
+
366
+ let s0 = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
367
+ Belt.HashMap.set(s0, 1, "value1")
368
+ Belt.HashMap.set(s0, 2, "value2")
369
+
370
+ Belt.HashMap.valuesToArray(s0) == ["value1", "value2"]
371
+ ```
372
+ *)
373
+
374
+ val fromArray: ('key * 'value) array -> id:('key,'id) id -> ('key, 'value, 'id ) t
375
+ (**
376
+ Creates new hash map from array of pairs.
377
+
378
+ Returns array of values.
379
+
380
+ ```res example
381
+ module IntHash = Belt.Id.MakeHashable({
382
+ type t = int
383
+ let hash = a => a
384
+ let eq = (a, b) => a == b
385
+ })
386
+
387
+ let s0 = Belt.HashMap.fromArray([(1, "value1"), (2, "value2")], ~id=module(IntHash))
388
+ Belt.HashMap.toArray(s0) == [(1, "value1"), (2, "value2")]
389
+ ```
390
+ *)
391
+
392
+ val mergeMany: ('key, 'value, 'id ) t -> ('key * 'value) array -> unit
393
+ (**
394
+ ```res example
395
+ module IntHash = Belt.Id.MakeHashable({
396
+ type t = int
397
+ let hash = a => a
398
+ let eq = (a, b) => a == b
399
+ })
400
+
401
+ let hMap = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
402
+ Belt.HashMap.mergeMany(hMap, [(1, "1"), (2, "2")])
403
+ ```
404
+ *)
405
+
406
+ val getBucketHistogram: _ t -> int array
407
+ (**
408
+ ```res example
409
+ module IntHash = Belt.Id.MakeHashable({
410
+ type t = int
411
+ let hash = a => a
412
+ let eq = (a, b) => a == b
413
+ })
414
+ let hMap = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
415
+ Belt.HashMap.set(hMap, 1, "1")
416
+
417
+ Belt.HashMap.getBucketHistogram(hMap)
418
+ ```
419
+ *)
420
+
421
+ val logStats: _ t -> unit
422
+ (**
423
+ ```res example
424
+ module IntHash = Belt.Id.MakeHashable({
425
+ type t = int
426
+ let hash = a => a
427
+ let eq = (a, b) => a == b
428
+ })
429
+ let hMap = Belt.HashMap.make(~hintSize=10, ~id=module(IntHash))
430
+ Belt.HashMap.set(hMap, 1, "1")
431
+
432
+ Belt.HashMap.logStats(hMap)
433
+ ```
434
+ *)
435
+
436
+
Binary file
Binary file
Binary file
@@ -0,0 +1,206 @@
1
+ # 1 "others/hashmap.cppo.ml"
2
+ (***********************************************************************)
3
+ (* *)
4
+ (* OCaml *)
5
+ (* *)
6
+ (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
7
+ (* *)
8
+ (* Copyright 1996 Institut National de Recherche en Informatique et *)
9
+ (* en Automatique. All rights reserved. This file is distributed *)
10
+ (* under the terms of the GNU Library General Public License, with *)
11
+ (* the special exception on linking described in file ../LICENSE. *)
12
+ (* *)
13
+ (***********************************************************************)
14
+ (** Adapted by Hongbo Zhang, Authors of ReScript 2017 *)
15
+
16
+ # 23 "others/hashmap.cppo.ml"
17
+ type key = int
18
+ type seed = int
19
+ external caml_hash_mix_int : seed -> int -> seed = "?hash_mix_int"
20
+ external final_mix : seed -> seed = "?hash_final_mix"
21
+ let hash (s : key) =
22
+ final_mix (caml_hash_mix_int 0 s)
23
+
24
+ # 33 "others/hashmap.cppo.ml"
25
+ module N = Belt_internalBuckets
26
+ module C = Belt_internalBucketsType
27
+ module A = Belt_Array
28
+
29
+
30
+ type 'b t = (unit, unit, key,'b) N.t
31
+
32
+
33
+ let rec copyBucketReHash ~h_buckets ~ndata_tail (old_bucket : _ N.bucket C.opt ) =
34
+ match C.toOpt old_bucket with
35
+ | None -> ()
36
+ | Some cell ->
37
+ let nidx = hash cell.key land (A.length h_buckets - 1) in
38
+ let v = C.return cell in
39
+ begin match C.toOpt (A.getUnsafe ndata_tail nidx) with
40
+ | None ->
41
+ A.setUnsafe h_buckets nidx v
42
+ | Some tail ->
43
+ tail.N.next <- v (* cell put at the end *)
44
+ end;
45
+ A.setUnsafe ndata_tail nidx v;
46
+ copyBucketReHash ~h_buckets ~ndata_tail cell.next
47
+
48
+
49
+ let resize h =
50
+ let odata = h.C.buckets in
51
+ let osize = A.length odata in
52
+ let nsize = osize * 2 in
53
+ if nsize >= osize then begin (* no overflow *)
54
+ let h_buckets = A.makeUninitialized nsize in
55
+ let ndata_tail = A.makeUninitialized nsize in (* keep track of tail *)
56
+ h.C.buckets <- h_buckets; (* so that indexfun sees the new bucket count *)
57
+ for i = 0 to osize - 1 do
58
+ copyBucketReHash ~h_buckets ~ndata_tail (A.getUnsafe odata i)
59
+ done;
60
+ for i = 0 to nsize - 1 do
61
+ match C.toOpt (A.getUnsafe ndata_tail i) with
62
+ | None -> ()
63
+ | Some tail -> tail.next <- C.emptyOpt
64
+ done
65
+ end
66
+
67
+
68
+ let rec replaceInBucket (key : key) info cell =
69
+ if cell.N.key = key
70
+ then
71
+ begin
72
+ cell.N.value <- info;
73
+ false
74
+ end
75
+ else
76
+ match C.toOpt cell.next with
77
+ | None -> true
78
+ | Some cell ->
79
+ replaceInBucket key info cell
80
+
81
+ let set h (key : key) value =
82
+ let h_buckets = h.C.buckets in
83
+ let buckets_len = A.length h_buckets in
84
+ let i = hash key land (buckets_len - 1) in
85
+ let l = A.getUnsafe h_buckets i in
86
+ (match C.toOpt l with
87
+ | None ->
88
+ A.setUnsafe h_buckets i (C.return {N.key; value; next = C.emptyOpt});
89
+ h.C.size <- (h.C.size + 1);
90
+ | Some bucket ->
91
+ if replaceInBucket key value bucket then begin
92
+ A.setUnsafe h_buckets i (C.return {N.key; value; next = l});
93
+ h.C.size <- (h.C.size + 1);
94
+ end
95
+ );
96
+ if h.C.size > buckets_len lsl 1 then resize h
97
+
98
+
99
+
100
+ let rec removeInBucket h h_buckets i (key : key) prec buckets =
101
+ match C.toOpt buckets with
102
+ | None -> ()
103
+ | Some cell ->
104
+ let cell_next = cell.N.next in
105
+ if cell.N.key = key
106
+ then
107
+ begin
108
+ prec.N.next <-cell_next;
109
+ h.C.size <- (h.C.size - 1);
110
+ end
111
+ else removeInBucket h h_buckets i key cell cell_next
112
+
113
+ let remove h key =
114
+ let h_buckets = h.C.buckets in
115
+ let i = hash key land (A.length h_buckets - 1) in
116
+ let bucket = (A.getUnsafe h_buckets i) in
117
+ match C.toOpt bucket with
118
+ | None -> ()
119
+ | Some cell ->
120
+ if cell.N.key = key then
121
+ begin
122
+ A.setUnsafe h_buckets i cell.next;
123
+ h.C.size <- (h.C.size - 1)
124
+ end
125
+ else
126
+ removeInBucket h h_buckets i key cell cell.next
127
+
128
+
129
+
130
+ let rec getAux (key : key) buckets =
131
+ match C.toOpt buckets with
132
+ | None ->
133
+ None
134
+ | Some cell ->
135
+ if key = cell.N.key then Some cell.N.value
136
+ else getAux key cell.next
137
+
138
+ let get h (key : key) =
139
+ let h_buckets = h.C.buckets in
140
+ let nid = hash key land (A.length h_buckets - 1) in
141
+ match C.toOpt (A.getUnsafe h_buckets nid) with
142
+ | None -> None
143
+ | Some cell1 ->
144
+ if key = cell1.N.key then Some cell1.N.value else
145
+ match C.toOpt cell1.N.next with
146
+ | None -> None
147
+ | Some cell2 ->
148
+ if key = cell2.N.key then Some cell2.N.value else
149
+ match C.toOpt cell2.N.next with
150
+ | None -> None
151
+ | Some cell3 ->
152
+ if key = cell3.N.key then Some cell3.N.value
153
+ else getAux key cell3.N.next
154
+
155
+
156
+ let rec memInBucket (key : key) cell =
157
+ cell.N.key = key ||
158
+ (match C.toOpt cell.next with
159
+ | None -> false
160
+ | Some nextCell -> memInBucket key nextCell
161
+ )
162
+
163
+ let has h key =
164
+ let h_buckets = h.C.buckets in
165
+ let nid = hash key land (A.length h_buckets - 1) in
166
+ let bucket = A.getUnsafe h_buckets nid in
167
+ match C.toOpt bucket with
168
+ | None -> false
169
+ | Some bucket ->
170
+ memInBucket key bucket
171
+
172
+
173
+ let make ~hintSize = C.make ~hintSize ~hash:() ~eq:()
174
+ let clear = C.clear
175
+ let size h = h.C.size
176
+ let forEachU = N.forEachU
177
+ let forEach = N.forEach
178
+ let reduceU = N.reduceU
179
+ let reduce = N.reduce
180
+ let logStats = N.logStats
181
+ let keepMapInPlaceU = N.keepMapInPlaceU
182
+ let keepMapInPlace = N.keepMapInPlace
183
+ let toArray = N.toArray
184
+ let copy = N.copy
185
+ let keysToArray = N.keysToArray
186
+ let valuesToArray = N.valuesToArray
187
+ let getBucketHistogram = N.getBucketHistogram
188
+ let isEmpty = C.isEmpty
189
+
190
+ let fromArray arr =
191
+ let len = A.length arr in
192
+ let v = make ~hintSize:len in
193
+ for i = 0 to len - 1 do
194
+ let k,value = (A.getUnsafe arr i) in
195
+ set v k value
196
+ done ;
197
+ v
198
+
199
+ (* TOOD: optimize heuristics for resizing *)
200
+ let mergeMany h arr =
201
+ let len = A.length arr in
202
+ for i = 0 to len - 1 do
203
+ let k,v = (A.getUnsafe arr i) in
204
+ set h k v
205
+ done
206
+
@@ -0,0 +1,50 @@
1
+ # 4 "others/hashmap.cppo.mli"
2
+ type key = int
3
+
4
+
5
+ # 10 "others/hashmap.cppo.mli"
6
+ type 'b t
7
+
8
+
9
+ val make: hintSize:int -> 'b t
10
+
11
+ val clear: 'b t -> unit
12
+
13
+ val isEmpty: _ t -> bool
14
+
15
+ val set: 'a t -> key -> 'a -> unit
16
+ (**
17
+ `setDone tbl k v` if `k` does not exist,
18
+ add the binding `k,v`, otherwise, update the old value with the new
19
+ `v`
20
+ *)
21
+
22
+
23
+ val copy: 'a t -> 'a t
24
+ val get: 'a t -> key -> 'a option
25
+
26
+ val has: 'b t -> key -> bool
27
+
28
+ val remove: 'a t -> key -> unit
29
+
30
+ val forEachU: 'b t -> (key -> 'b -> unit [@bs]) -> unit
31
+ val forEach: 'b t -> (key -> 'b -> unit) -> unit
32
+
33
+ val reduceU: 'b t -> 'c -> ('c -> key -> 'b -> 'c [@bs]) -> 'c
34
+ val reduce: 'b t -> 'c -> ('c -> key -> 'b -> 'c) -> 'c
35
+
36
+ val keepMapInPlaceU: 'a t -> (key -> 'a -> 'a option [@bs]) -> unit
37
+ val keepMapInPlace: 'a t -> (key -> 'a -> 'a option) -> unit
38
+
39
+
40
+ val size: _ t -> int
41
+
42
+
43
+ val toArray: 'a t -> (key * 'a) array
44
+ val keysToArray: 'a t -> key array
45
+ val valuesToArray: 'a t -> 'a array
46
+ val fromArray: (key * 'a) array -> 'a t
47
+ val mergeMany: 'a t -> (key * 'a) array -> unit
48
+ val getBucketHistogram: _ t -> int array
49
+ val logStats: _ t -> unit
50
+
Binary file
Binary file