@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.
Files changed (598) hide show
  1. package/darwinarm64/ninja.exe +0 -0
  2. package/package.json +1 -1
  3. package/lib/ocaml/arg.cmi +0 -0
  4. package/lib/ocaml/arg.cmt +0 -0
  5. package/lib/ocaml/arg.cmti +0 -0
  6. package/lib/ocaml/arg.ml +0 -359
  7. package/lib/ocaml/arg.mli +0 -185
  8. package/lib/ocaml/array.cmi +0 -0
  9. package/lib/ocaml/array.cmt +0 -0
  10. package/lib/ocaml/array.cmti +0 -0
  11. package/lib/ocaml/array.ml +0 -307
  12. package/lib/ocaml/array.mli +0 -275
  13. package/lib/ocaml/arrayLabels.cmi +0 -0
  14. package/lib/ocaml/arrayLabels.cmt +0 -0
  15. package/lib/ocaml/arrayLabels.cmti +0 -0
  16. package/lib/ocaml/arrayLabels.ml +0 -307
  17. package/lib/ocaml/arrayLabels.mli +0 -276
  18. package/lib/ocaml/belt.cmi +0 -0
  19. package/lib/ocaml/belt.cmt +0 -0
  20. package/lib/ocaml/belt.ml +0 -352
  21. package/lib/ocaml/belt_Array.cmi +0 -0
  22. package/lib/ocaml/belt_Array.cmt +0 -0
  23. package/lib/ocaml/belt_Array.cmti +0 -0
  24. package/lib/ocaml/belt_Array.ml +0 -525
  25. package/lib/ocaml/belt_Array.mli +0 -707
  26. package/lib/ocaml/belt_Float.cmi +0 -0
  27. package/lib/ocaml/belt_Float.cmt +0 -0
  28. package/lib/ocaml/belt_Float.cmti +0 -0
  29. package/lib/ocaml/belt_Float.ml +0 -50
  30. package/lib/ocaml/belt_Float.mli +0 -106
  31. package/lib/ocaml/belt_HashMap.cmi +0 -0
  32. package/lib/ocaml/belt_HashMap.cmt +0 -0
  33. package/lib/ocaml/belt_HashMap.cmti +0 -0
  34. package/lib/ocaml/belt_HashMap.ml +0 -226
  35. package/lib/ocaml/belt_HashMap.mli +0 -436
  36. package/lib/ocaml/belt_HashMapInt.cmi +0 -0
  37. package/lib/ocaml/belt_HashMapInt.cmt +0 -0
  38. package/lib/ocaml/belt_HashMapInt.cmti +0 -0
  39. package/lib/ocaml/belt_HashMapInt.ml +0 -206
  40. package/lib/ocaml/belt_HashMapInt.mli +0 -50
  41. package/lib/ocaml/belt_HashMapString.cmi +0 -0
  42. package/lib/ocaml/belt_HashMapString.cmt +0 -0
  43. package/lib/ocaml/belt_HashMapString.cmti +0 -0
  44. package/lib/ocaml/belt_HashMapString.ml +0 -206
  45. package/lib/ocaml/belt_HashMapString.mli +0 -50
  46. package/lib/ocaml/belt_HashSet.cmi +0 -0
  47. package/lib/ocaml/belt_HashSet.cmt +0 -0
  48. package/lib/ocaml/belt_HashSet.cmti +0 -0
  49. package/lib/ocaml/belt_HashSet.ml +0 -196
  50. package/lib/ocaml/belt_HashSet.mli +0 -125
  51. package/lib/ocaml/belt_HashSetInt.cmi +0 -0
  52. package/lib/ocaml/belt_HashSetInt.cmt +0 -0
  53. package/lib/ocaml/belt_HashSetInt.cmti +0 -0
  54. package/lib/ocaml/belt_HashSetInt.ml +0 -155
  55. package/lib/ocaml/belt_HashSetInt.mli +0 -74
  56. package/lib/ocaml/belt_HashSetString.cmi +0 -0
  57. package/lib/ocaml/belt_HashSetString.cmt +0 -0
  58. package/lib/ocaml/belt_HashSetString.cmti +0 -0
  59. package/lib/ocaml/belt_HashSetString.ml +0 -156
  60. package/lib/ocaml/belt_HashSetString.mli +0 -74
  61. package/lib/ocaml/belt_Id.cmi +0 -0
  62. package/lib/ocaml/belt_Id.cmt +0 -0
  63. package/lib/ocaml/belt_Id.cmti +0 -0
  64. package/lib/ocaml/belt_Id.ml +0 -133
  65. package/lib/ocaml/belt_Id.mli +0 -171
  66. package/lib/ocaml/belt_Int.cmi +0 -0
  67. package/lib/ocaml/belt_Int.cmt +0 -0
  68. package/lib/ocaml/belt_Int.cmti +0 -0
  69. package/lib/ocaml/belt_Int.ml +0 -50
  70. package/lib/ocaml/belt_Int.mli +0 -103
  71. package/lib/ocaml/belt_List.cmi +0 -0
  72. package/lib/ocaml/belt_List.cmt +0 -0
  73. package/lib/ocaml/belt_List.cmti +0 -0
  74. package/lib/ocaml/belt_List.ml +0 -803
  75. package/lib/ocaml/belt_List.mli +0 -844
  76. package/lib/ocaml/belt_Map.cmi +0 -0
  77. package/lib/ocaml/belt_Map.cmt +0 -0
  78. package/lib/ocaml/belt_Map.cmti +0 -0
  79. package/lib/ocaml/belt_Map.ml +0 -170
  80. package/lib/ocaml/belt_Map.mli +0 -496
  81. package/lib/ocaml/belt_MapDict.cmi +0 -0
  82. package/lib/ocaml/belt_MapDict.cmt +0 -0
  83. package/lib/ocaml/belt_MapDict.cmti +0 -0
  84. package/lib/ocaml/belt_MapDict.ml +0 -278
  85. package/lib/ocaml/belt_MapDict.mli +0 -268
  86. package/lib/ocaml/belt_MapInt.cmi +0 -0
  87. package/lib/ocaml/belt_MapInt.cmt +0 -0
  88. package/lib/ocaml/belt_MapInt.cmti +0 -0
  89. package/lib/ocaml/belt_MapInt.ml +0 -169
  90. package/lib/ocaml/belt_MapInt.mli +0 -187
  91. package/lib/ocaml/belt_MapString.cmi +0 -0
  92. package/lib/ocaml/belt_MapString.cmt +0 -0
  93. package/lib/ocaml/belt_MapString.cmti +0 -0
  94. package/lib/ocaml/belt_MapString.ml +0 -169
  95. package/lib/ocaml/belt_MapString.mli +0 -187
  96. package/lib/ocaml/belt_MutableMap.cmi +0 -0
  97. package/lib/ocaml/belt_MutableMap.cmt +0 -0
  98. package/lib/ocaml/belt_MutableMap.cmti +0 -0
  99. package/lib/ocaml/belt_MutableMap.ml +0 -241
  100. package/lib/ocaml/belt_MutableMap.mli +0 -145
  101. package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
  102. package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
  103. package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
  104. package/lib/ocaml/belt_MutableMapInt.ml +0 -172
  105. package/lib/ocaml/belt_MutableMapInt.mli +0 -135
  106. package/lib/ocaml/belt_MutableMapString.cmi +0 -0
  107. package/lib/ocaml/belt_MutableMapString.cmt +0 -0
  108. package/lib/ocaml/belt_MutableMapString.cmti +0 -0
  109. package/lib/ocaml/belt_MutableMapString.ml +0 -172
  110. package/lib/ocaml/belt_MutableMapString.mli +0 -135
  111. package/lib/ocaml/belt_MutableQueue.cmi +0 -0
  112. package/lib/ocaml/belt_MutableQueue.cmt +0 -0
  113. package/lib/ocaml/belt_MutableQueue.cmti +0 -0
  114. package/lib/ocaml/belt_MutableQueue.ml +0 -222
  115. package/lib/ocaml/belt_MutableQueue.mli +0 -116
  116. package/lib/ocaml/belt_MutableSet.cmi +0 -0
  117. package/lib/ocaml/belt_MutableSet.cmt +0 -0
  118. package/lib/ocaml/belt_MutableSet.cmti +0 -0
  119. package/lib/ocaml/belt_MutableSet.ml +0 -371
  120. package/lib/ocaml/belt_MutableSet.mli +0 -617
  121. package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
  122. package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
  123. package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
  124. package/lib/ocaml/belt_MutableSetInt.ml +0 -342
  125. package/lib/ocaml/belt_MutableSetInt.mli +0 -124
  126. package/lib/ocaml/belt_MutableSetString.cmi +0 -0
  127. package/lib/ocaml/belt_MutableSetString.cmt +0 -0
  128. package/lib/ocaml/belt_MutableSetString.cmti +0 -0
  129. package/lib/ocaml/belt_MutableSetString.ml +0 -342
  130. package/lib/ocaml/belt_MutableSetString.mli +0 -124
  131. package/lib/ocaml/belt_MutableStack.cmi +0 -0
  132. package/lib/ocaml/belt_MutableStack.cmt +0 -0
  133. package/lib/ocaml/belt_MutableStack.cmti +0 -0
  134. package/lib/ocaml/belt_MutableStack.ml +0 -106
  135. package/lib/ocaml/belt_MutableStack.mli +0 -63
  136. package/lib/ocaml/belt_Option.cmi +0 -0
  137. package/lib/ocaml/belt_Option.cmt +0 -0
  138. package/lib/ocaml/belt_Option.cmti +0 -0
  139. package/lib/ocaml/belt_Option.ml +0 -93
  140. package/lib/ocaml/belt_Option.mli +0 -270
  141. package/lib/ocaml/belt_Range.cmi +0 -0
  142. package/lib/ocaml/belt_Range.cmt +0 -0
  143. package/lib/ocaml/belt_Range.cmti +0 -0
  144. package/lib/ocaml/belt_Range.ml +0 -76
  145. package/lib/ocaml/belt_Range.mli +0 -114
  146. package/lib/ocaml/belt_Result.cmi +0 -0
  147. package/lib/ocaml/belt_Result.cmt +0 -0
  148. package/lib/ocaml/belt_Result.cmti +0 -0
  149. package/lib/ocaml/belt_Result.ml +0 -75
  150. package/lib/ocaml/belt_Result.mli +0 -205
  151. package/lib/ocaml/belt_Set.cmi +0 -0
  152. package/lib/ocaml/belt_Set.cmt +0 -0
  153. package/lib/ocaml/belt_Set.cmti +0 -0
  154. package/lib/ocaml/belt_Set.cppo.ml +0 -205
  155. package/lib/ocaml/belt_Set.cppo.mli +0 -153
  156. package/lib/ocaml/belt_Set.ml +0 -164
  157. package/lib/ocaml/belt_Set.mli +0 -523
  158. package/lib/ocaml/belt_SetDict.cmi +0 -0
  159. package/lib/ocaml/belt_SetDict.cmt +0 -0
  160. package/lib/ocaml/belt_SetDict.cmti +0 -0
  161. package/lib/ocaml/belt_SetDict.ml +0 -237
  162. package/lib/ocaml/belt_SetDict.mli +0 -567
  163. package/lib/ocaml/belt_SetInt.cmi +0 -0
  164. package/lib/ocaml/belt_SetInt.cmt +0 -0
  165. package/lib/ocaml/belt_SetInt.cmti +0 -0
  166. package/lib/ocaml/belt_SetInt.ml +0 -201
  167. package/lib/ocaml/belt_SetInt.mli +0 -151
  168. package/lib/ocaml/belt_SetString.cmi +0 -0
  169. package/lib/ocaml/belt_SetString.cmt +0 -0
  170. package/lib/ocaml/belt_SetString.cmti +0 -0
  171. package/lib/ocaml/belt_SetString.ml +0 -201
  172. package/lib/ocaml/belt_SetString.mli +0 -151
  173. package/lib/ocaml/belt_SortArray.cmi +0 -0
  174. package/lib/ocaml/belt_SortArray.cmt +0 -0
  175. package/lib/ocaml/belt_SortArray.cmti +0 -0
  176. package/lib/ocaml/belt_SortArray.ml +0 -322
  177. package/lib/ocaml/belt_SortArray.mli +0 -146
  178. package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
  179. package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
  180. package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
  181. package/lib/ocaml/belt_SortArrayInt.ml +0 -263
  182. package/lib/ocaml/belt_SortArrayInt.mli +0 -93
  183. package/lib/ocaml/belt_SortArrayString.cmi +0 -0
  184. package/lib/ocaml/belt_SortArrayString.cmt +0 -0
  185. package/lib/ocaml/belt_SortArrayString.cmti +0 -0
  186. package/lib/ocaml/belt_SortArrayString.ml +0 -263
  187. package/lib/ocaml/belt_SortArrayString.mli +0 -93
  188. package/lib/ocaml/belt_internalAVLset.cmt +0 -0
  189. package/lib/ocaml/belt_internalAVLset.cmti +0 -0
  190. package/lib/ocaml/belt_internalAVLset.ml +0 -665
  191. package/lib/ocaml/belt_internalAVLset.mli +0 -124
  192. package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
  193. package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
  194. package/lib/ocaml/belt_internalAVLtree.ml +0 -762
  195. package/lib/ocaml/belt_internalAVLtree.mli +0 -215
  196. package/lib/ocaml/belt_internalBuckets.cmt +0 -0
  197. package/lib/ocaml/belt_internalBuckets.cmti +0 -0
  198. package/lib/ocaml/belt_internalBuckets.ml +0 -218
  199. package/lib/ocaml/belt_internalBuckets.mli +0 -57
  200. package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
  201. package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
  202. package/lib/ocaml/belt_internalBucketsType.ml +0 -59
  203. package/lib/ocaml/belt_internalBucketsType.mli +0 -46
  204. package/lib/ocaml/belt_internalMapInt.cmt +0 -0
  205. package/lib/ocaml/belt_internalMapInt.ml +0 -227
  206. package/lib/ocaml/belt_internalMapString.cmt +0 -0
  207. package/lib/ocaml/belt_internalMapString.ml +0 -227
  208. package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
  209. package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
  210. package/lib/ocaml/belt_internalSetBuckets.ml +0 -157
  211. package/lib/ocaml/belt_internalSetBuckets.mli +0 -47
  212. package/lib/ocaml/belt_internalSetInt.cmt +0 -0
  213. package/lib/ocaml/belt_internalSetInt.ml +0 -129
  214. package/lib/ocaml/belt_internalSetString.cmt +0 -0
  215. package/lib/ocaml/belt_internalSetString.ml +0 -129
  216. package/lib/ocaml/belt_internals.cmti +0 -0
  217. package/lib/ocaml/belt_internals.mli +0 -79
  218. package/lib/ocaml/buffer.cmi +0 -0
  219. package/lib/ocaml/buffer.cmt +0 -0
  220. package/lib/ocaml/buffer.cmti +0 -0
  221. package/lib/ocaml/buffer.ml +0 -250
  222. package/lib/ocaml/buffer.mli +0 -149
  223. package/lib/ocaml/bytes.cmi +0 -0
  224. package/lib/ocaml/bytes.cmt +0 -0
  225. package/lib/ocaml/bytes.cmti +0 -0
  226. package/lib/ocaml/bytes.ml +0 -431
  227. package/lib/ocaml/bytes.mli +0 -430
  228. package/lib/ocaml/bytesLabels.cmi +0 -0
  229. package/lib/ocaml/bytesLabels.cmt +0 -0
  230. package/lib/ocaml/bytesLabels.cmti +0 -0
  231. package/lib/ocaml/bytesLabels.ml +0 -428
  232. package/lib/ocaml/bytesLabels.mli +0 -276
  233. package/lib/ocaml/callback.cmi +0 -0
  234. package/lib/ocaml/callback.cmt +0 -0
  235. package/lib/ocaml/callback.cmti +0 -0
  236. package/lib/ocaml/callback.ml +0 -20
  237. package/lib/ocaml/callback.mli +0 -34
  238. package/lib/ocaml/camlinternalLazy.cmi +0 -0
  239. package/lib/ocaml/camlinternalLazy.cmt +0 -0
  240. package/lib/ocaml/camlinternalLazy.cmti +0 -0
  241. package/lib/ocaml/camlinternalLazy.ml +0 -89
  242. package/lib/ocaml/camlinternalLazy.mli +0 -27
  243. package/lib/ocaml/camlinternalMod.cmi +0 -0
  244. package/lib/ocaml/camlinternalMod.cmt +0 -0
  245. package/lib/ocaml/camlinternalMod.cmti +0 -0
  246. package/lib/ocaml/camlinternalMod.ml +0 -21
  247. package/lib/ocaml/camlinternalMod.mli +0 -25
  248. package/lib/ocaml/char.cmi +0 -0
  249. package/lib/ocaml/char.cmt +0 -0
  250. package/lib/ocaml/char.cmti +0 -0
  251. package/lib/ocaml/char.ml +0 -76
  252. package/lib/ocaml/char.mli +0 -72
  253. package/lib/ocaml/complex.cmi +0 -0
  254. package/lib/ocaml/complex.cmt +0 -0
  255. package/lib/ocaml/complex.cmti +0 -0
  256. package/lib/ocaml/complex.ml +0 -87
  257. package/lib/ocaml/complex.mli +0 -86
  258. package/lib/ocaml/digest.cmi +0 -0
  259. package/lib/ocaml/digest.cmt +0 -0
  260. package/lib/ocaml/digest.cmti +0 -0
  261. package/lib/ocaml/digest.ml +0 -66
  262. package/lib/ocaml/digest.mli +0 -68
  263. package/lib/ocaml/dom.cmi +0 -0
  264. package/lib/ocaml/dom.cmt +0 -0
  265. package/lib/ocaml/dom.ml +0 -296
  266. package/lib/ocaml/dom_storage.cmi +0 -0
  267. package/lib/ocaml/dom_storage.cmt +0 -0
  268. package/lib/ocaml/dom_storage.ml +0 -22
  269. package/lib/ocaml/dom_storage2.cmi +0 -0
  270. package/lib/ocaml/dom_storage2.cmt +0 -0
  271. package/lib/ocaml/dom_storage2.ml +0 -11
  272. package/lib/ocaml/filename.cmi +0 -0
  273. package/lib/ocaml/filename.cmt +0 -0
  274. package/lib/ocaml/filename.cmti +0 -0
  275. package/lib/ocaml/filename.ml +0 -233
  276. package/lib/ocaml/filename.mli +0 -134
  277. package/lib/ocaml/genlex.cmi +0 -0
  278. package/lib/ocaml/genlex.cmt +0 -0
  279. package/lib/ocaml/genlex.cmti +0 -0
  280. package/lib/ocaml/genlex.ml +0 -201
  281. package/lib/ocaml/genlex.mli +0 -73
  282. package/lib/ocaml/hashmap.cppo.ml +0 -214
  283. package/lib/ocaml/hashmap.cppo.mli +0 -54
  284. package/lib/ocaml/hashset.cppo.ml +0 -165
  285. package/lib/ocaml/hashset.cppo.mli +0 -77
  286. package/lib/ocaml/hashtbl.cmi +0 -0
  287. package/lib/ocaml/hashtbl.cmt +0 -0
  288. package/lib/ocaml/hashtbl.cmti +0 -0
  289. package/lib/ocaml/hashtbl.ml +0 -541
  290. package/lib/ocaml/hashtbl.mli +0 -411
  291. package/lib/ocaml/hashtblLabels.cmi +0 -0
  292. package/lib/ocaml/hashtblLabels.cmt +0 -0
  293. package/lib/ocaml/hashtblLabels.ml +0 -130
  294. package/lib/ocaml/int32.cmi +0 -0
  295. package/lib/ocaml/int32.cmt +0 -0
  296. package/lib/ocaml/int32.cmti +0 -0
  297. package/lib/ocaml/int32.ml +0 -64
  298. package/lib/ocaml/int32.mli +0 -186
  299. package/lib/ocaml/int64.cmi +0 -0
  300. package/lib/ocaml/int64.cmt +0 -0
  301. package/lib/ocaml/int64.cmti +0 -0
  302. package/lib/ocaml/int64.ml +0 -72
  303. package/lib/ocaml/int64.mli +0 -197
  304. package/lib/ocaml/internal_map.cppo.ml +0 -230
  305. package/lib/ocaml/internal_set.cppo.ml +0 -134
  306. package/lib/ocaml/js.cmi +0 -0
  307. package/lib/ocaml/js.cmt +0 -0
  308. package/lib/ocaml/js.ml +0 -316
  309. package/lib/ocaml/js_OO.cmi +0 -0
  310. package/lib/ocaml/js_OO.cmt +0 -0
  311. package/lib/ocaml/js_OO.ml +0 -180
  312. package/lib/ocaml/js_array.cmi +0 -0
  313. package/lib/ocaml/js_array.cmt +0 -0
  314. package/lib/ocaml/js_array.ml +0 -970
  315. package/lib/ocaml/js_array2.cmi +0 -0
  316. package/lib/ocaml/js_array2.cmt +0 -0
  317. package/lib/ocaml/js_array2.ml +0 -1065
  318. package/lib/ocaml/js_bigint.cmi +0 -0
  319. package/lib/ocaml/js_bigint.cmt +0 -0
  320. package/lib/ocaml/js_bigint.ml +0 -3
  321. package/lib/ocaml/js_cast.cmi +0 -0
  322. package/lib/ocaml/js_cast.cmt +0 -0
  323. package/lib/ocaml/js_cast.cmti +0 -0
  324. package/lib/ocaml/js_cast.ml +0 -29
  325. package/lib/ocaml/js_cast.mli +0 -45
  326. package/lib/ocaml/js_console.cmi +0 -0
  327. package/lib/ocaml/js_console.cmt +0 -0
  328. package/lib/ocaml/js_console.ml +0 -51
  329. package/lib/ocaml/js_date.cmi +0 -0
  330. package/lib/ocaml/js_date.cmt +0 -0
  331. package/lib/ocaml/js_date.ml +0 -1263
  332. package/lib/ocaml/js_dict.cmi +0 -0
  333. package/lib/ocaml/js_dict.cmt +0 -0
  334. package/lib/ocaml/js_dict.cmti +0 -0
  335. package/lib/ocaml/js_dict.ml +0 -114
  336. package/lib/ocaml/js_dict.mli +0 -152
  337. package/lib/ocaml/js_exn.cmi +0 -0
  338. package/lib/ocaml/js_exn.cmt +0 -0
  339. package/lib/ocaml/js_exn.cmti +0 -0
  340. package/lib/ocaml/js_exn.ml +0 -102
  341. package/lib/ocaml/js_exn.mli +0 -79
  342. package/lib/ocaml/js_float.cmi +0 -0
  343. package/lib/ocaml/js_float.cmt +0 -0
  344. package/lib/ocaml/js_float.ml +0 -294
  345. package/lib/ocaml/js_global.cmi +0 -0
  346. package/lib/ocaml/js_global.cmt +0 -0
  347. package/lib/ocaml/js_global.ml +0 -185
  348. package/lib/ocaml/js_int.cmi +0 -0
  349. package/lib/ocaml/js_int.cmt +0 -0
  350. package/lib/ocaml/js_int.ml +0 -158
  351. package/lib/ocaml/js_json.cmi +0 -0
  352. package/lib/ocaml/js_json.cmt +0 -0
  353. package/lib/ocaml/js_json.cmti +0 -0
  354. package/lib/ocaml/js_json.ml +0 -195
  355. package/lib/ocaml/js_json.mli +0 -244
  356. package/lib/ocaml/js_list.cmi +0 -0
  357. package/lib/ocaml/js_list.cmt +0 -0
  358. package/lib/ocaml/js_list.cmti +0 -0
  359. package/lib/ocaml/js_list.ml +0 -174
  360. package/lib/ocaml/js_list.mli +0 -72
  361. package/lib/ocaml/js_map.cmi +0 -0
  362. package/lib/ocaml/js_map.cmt +0 -0
  363. package/lib/ocaml/js_map.ml +0 -3
  364. package/lib/ocaml/js_mapperRt.cmi +0 -0
  365. package/lib/ocaml/js_mapperRt.cmt +0 -0
  366. package/lib/ocaml/js_mapperRt.cmti +0 -0
  367. package/lib/ocaml/js_mapperRt.ml +0 -50
  368. package/lib/ocaml/js_mapperRt.mli +0 -44
  369. package/lib/ocaml/js_math.cmi +0 -0
  370. package/lib/ocaml/js_math.cmt +0 -0
  371. package/lib/ocaml/js_math.ml +0 -626
  372. package/lib/ocaml/js_null.cmi +0 -0
  373. package/lib/ocaml/js_null.cmt +0 -0
  374. package/lib/ocaml/js_null.cmti +0 -0
  375. package/lib/ocaml/js_null.ml +0 -57
  376. package/lib/ocaml/js_null.mli +0 -87
  377. package/lib/ocaml/js_null_undefined.cmi +0 -0
  378. package/lib/ocaml/js_null_undefined.cmt +0 -0
  379. package/lib/ocaml/js_null_undefined.cmti +0 -0
  380. package/lib/ocaml/js_null_undefined.ml +0 -50
  381. package/lib/ocaml/js_null_undefined.mli +0 -85
  382. package/lib/ocaml/js_obj.cmi +0 -0
  383. package/lib/ocaml/js_obj.cmt +0 -0
  384. package/lib/ocaml/js_obj.ml +0 -100
  385. package/lib/ocaml/js_option.cmi +0 -0
  386. package/lib/ocaml/js_option.cmt +0 -0
  387. package/lib/ocaml/js_option.cmti +0 -0
  388. package/lib/ocaml/js_option.ml +0 -203
  389. package/lib/ocaml/js_option.mli +0 -52
  390. package/lib/ocaml/js_promise.cmi +0 -0
  391. package/lib/ocaml/js_promise.cmt +0 -0
  392. package/lib/ocaml/js_promise.ml +0 -100
  393. package/lib/ocaml/js_promise2.cmi +0 -0
  394. package/lib/ocaml/js_promise2.cmt +0 -0
  395. package/lib/ocaml/js_promise2.res +0 -58
  396. package/lib/ocaml/js_re.cmi +0 -0
  397. package/lib/ocaml/js_re.cmt +0 -0
  398. package/lib/ocaml/js_re.ml +0 -184
  399. package/lib/ocaml/js_result.cmi +0 -0
  400. package/lib/ocaml/js_result.cmt +0 -0
  401. package/lib/ocaml/js_result.cmti +0 -0
  402. package/lib/ocaml/js_result.ml +0 -28
  403. package/lib/ocaml/js_result.mli +0 -28
  404. package/lib/ocaml/js_set.cmi +0 -0
  405. package/lib/ocaml/js_set.cmt +0 -0
  406. package/lib/ocaml/js_set.ml +0 -3
  407. package/lib/ocaml/js_string.cmi +0 -0
  408. package/lib/ocaml/js_string.cmt +0 -0
  409. package/lib/ocaml/js_string.ml +0 -914
  410. package/lib/ocaml/js_string2.cmi +0 -0
  411. package/lib/ocaml/js_string2.cmt +0 -0
  412. package/lib/ocaml/js_string2.ml +0 -912
  413. package/lib/ocaml/js_typed_array.cmi +0 -0
  414. package/lib/ocaml/js_typed_array.cmt +0 -0
  415. package/lib/ocaml/js_typed_array.cppo.ml +0 -429
  416. package/lib/ocaml/js_typed_array.ml +0 -1405
  417. package/lib/ocaml/js_typed_array2.cmi +0 -0
  418. package/lib/ocaml/js_typed_array2.cmt +0 -0
  419. package/lib/ocaml/js_typed_array2.cppo.ml +0 -296
  420. package/lib/ocaml/js_typed_array2.ml +0 -1269
  421. package/lib/ocaml/js_types.cmi +0 -0
  422. package/lib/ocaml/js_types.cmt +0 -0
  423. package/lib/ocaml/js_types.cmti +0 -0
  424. package/lib/ocaml/js_types.ml +0 -118
  425. package/lib/ocaml/js_types.mli +0 -78
  426. package/lib/ocaml/js_undefined.cmi +0 -0
  427. package/lib/ocaml/js_undefined.cmt +0 -0
  428. package/lib/ocaml/js_undefined.cmti +0 -0
  429. package/lib/ocaml/js_undefined.ml +0 -59
  430. package/lib/ocaml/js_undefined.mli +0 -92
  431. package/lib/ocaml/js_vector.cmi +0 -0
  432. package/lib/ocaml/js_vector.cmt +0 -0
  433. package/lib/ocaml/js_vector.cmti +0 -0
  434. package/lib/ocaml/js_vector.ml +0 -143
  435. package/lib/ocaml/js_vector.mli +0 -92
  436. package/lib/ocaml/js_weakmap.cmi +0 -0
  437. package/lib/ocaml/js_weakmap.cmt +0 -0
  438. package/lib/ocaml/js_weakmap.ml +0 -3
  439. package/lib/ocaml/js_weakset.cmi +0 -0
  440. package/lib/ocaml/js_weakset.cmt +0 -0
  441. package/lib/ocaml/js_weakset.ml +0 -3
  442. package/lib/ocaml/jsx.cmi +0 -0
  443. package/lib/ocaml/jsx.cmt +0 -0
  444. package/lib/ocaml/jsx.res +0 -40
  445. package/lib/ocaml/jsxDOM.cmi +0 -0
  446. package/lib/ocaml/jsxDOM.cmt +0 -0
  447. package/lib/ocaml/jsxDOM.res +0 -620
  448. package/lib/ocaml/jsxDOMStyle.cmi +0 -0
  449. package/lib/ocaml/jsxDOMStyle.cmt +0 -0
  450. package/lib/ocaml/jsxDOMStyle.ml +0 -781
  451. package/lib/ocaml/jsxEvent.cmi +0 -0
  452. package/lib/ocaml/jsxEvent.cmt +0 -0
  453. package/lib/ocaml/jsxEvent.ml +0 -358
  454. package/lib/ocaml/jsxPPXReactSupport.cmi +0 -0
  455. package/lib/ocaml/jsxPPXReactSupport.cmt +0 -0
  456. package/lib/ocaml/jsxPPXReactSupport.res +0 -48
  457. package/lib/ocaml/lazy.cmi +0 -0
  458. package/lib/ocaml/lazy.cmt +0 -0
  459. package/lib/ocaml/lazy.cmti +0 -0
  460. package/lib/ocaml/lazy.ml +0 -70
  461. package/lib/ocaml/lazy.mli +0 -95
  462. package/lib/ocaml/lexing.cmi +0 -0
  463. package/lib/ocaml/lexing.cmt +0 -0
  464. package/lib/ocaml/lexing.cmti +0 -0
  465. package/lib/ocaml/lexing.ml +0 -230
  466. package/lib/ocaml/lexing.mli +0 -172
  467. package/lib/ocaml/list.cmi +0 -0
  468. package/lib/ocaml/list.cmt +0 -0
  469. package/lib/ocaml/list.cmti +0 -0
  470. package/lib/ocaml/list.ml +0 -485
  471. package/lib/ocaml/list.mli +0 -347
  472. package/lib/ocaml/listLabels.cmi +0 -0
  473. package/lib/ocaml/listLabels.cmt +0 -0
  474. package/lib/ocaml/listLabels.cmti +0 -0
  475. package/lib/ocaml/listLabels.ml +0 -485
  476. package/lib/ocaml/listLabels.mli +0 -353
  477. package/lib/ocaml/map.cmi +0 -0
  478. package/lib/ocaml/map.cmt +0 -0
  479. package/lib/ocaml/map.cmti +0 -0
  480. package/lib/ocaml/map.cppo.ml +0 -174
  481. package/lib/ocaml/map.cppo.mli +0 -191
  482. package/lib/ocaml/map.ml +0 -480
  483. package/lib/ocaml/map.mli +0 -315
  484. package/lib/ocaml/mapLabels.cmi +0 -0
  485. package/lib/ocaml/mapLabels.cmt +0 -0
  486. package/lib/ocaml/mapLabels.ml +0 -480
  487. package/lib/ocaml/mapm.cppo.ml +0 -177
  488. package/lib/ocaml/mapm.cppo.mli +0 -138
  489. package/lib/ocaml/moreLabels.cmi +0 -0
  490. package/lib/ocaml/moreLabels.cmt +0 -0
  491. package/lib/ocaml/moreLabels.cmti +0 -0
  492. package/lib/ocaml/moreLabels.ml +0 -22
  493. package/lib/ocaml/moreLabels.mli +0 -198
  494. package/lib/ocaml/node.cmi +0 -0
  495. package/lib/ocaml/node.cmt +0 -0
  496. package/lib/ocaml/node.ml +0 -84
  497. package/lib/ocaml/node_buffer.cmi +0 -0
  498. package/lib/ocaml/node_buffer.cmt +0 -0
  499. package/lib/ocaml/node_buffer.ml +0 -47
  500. package/lib/ocaml/node_child_process.cmi +0 -0
  501. package/lib/ocaml/node_child_process.cmt +0 -0
  502. package/lib/ocaml/node_child_process.ml +0 -50
  503. package/lib/ocaml/node_fs.cmi +0 -0
  504. package/lib/ocaml/node_fs.cmt +0 -0
  505. package/lib/ocaml/node_fs.ml +0 -153
  506. package/lib/ocaml/node_module.cmi +0 -0
  507. package/lib/ocaml/node_module.cmt +0 -0
  508. package/lib/ocaml/node_module.ml +0 -29
  509. package/lib/ocaml/node_path.cmi +0 -0
  510. package/lib/ocaml/node_path.cmt +0 -0
  511. package/lib/ocaml/node_path.ml +0 -71
  512. package/lib/ocaml/node_process.cmi +0 -0
  513. package/lib/ocaml/node_process.cmt +0 -0
  514. package/lib/ocaml/node_process.cmti +0 -0
  515. package/lib/ocaml/node_process.ml +0 -59
  516. package/lib/ocaml/node_process.mli +0 -48
  517. package/lib/ocaml/obj.cmi +0 -0
  518. package/lib/ocaml/obj.cmt +0 -0
  519. package/lib/ocaml/obj.cmti +0 -0
  520. package/lib/ocaml/obj.ml +0 -29
  521. package/lib/ocaml/obj.mli +0 -62
  522. package/lib/ocaml/parsing.cmi +0 -0
  523. package/lib/ocaml/parsing.cmt +0 -0
  524. package/lib/ocaml/parsing.cmti +0 -0
  525. package/lib/ocaml/parsing.ml +0 -212
  526. package/lib/ocaml/parsing.mli +0 -105
  527. package/lib/ocaml/pervasives.cmi +0 -0
  528. package/lib/ocaml/pervasives.cmt +0 -0
  529. package/lib/ocaml/pervasives.cmti +0 -0
  530. package/lib/ocaml/pervasives.ml +0 -297
  531. package/lib/ocaml/pervasives.mli +0 -771
  532. package/lib/ocaml/printexc.cmi +0 -0
  533. package/lib/ocaml/printexc.cmt +0 -0
  534. package/lib/ocaml/printexc.cmti +0 -0
  535. package/lib/ocaml/printexc.ml +0 -75
  536. package/lib/ocaml/printexc.mli +0 -57
  537. package/lib/ocaml/queue.cmi +0 -0
  538. package/lib/ocaml/queue.cmt +0 -0
  539. package/lib/ocaml/queue.cmti +0 -0
  540. package/lib/ocaml/queue.ml +0 -132
  541. package/lib/ocaml/queue.mli +0 -82
  542. package/lib/ocaml/random.cmi +0 -0
  543. package/lib/ocaml/random.cmt +0 -0
  544. package/lib/ocaml/random.cmti +0 -0
  545. package/lib/ocaml/random.ml +0 -273
  546. package/lib/ocaml/random.mli +0 -102
  547. package/lib/ocaml/set.cmi +0 -0
  548. package/lib/ocaml/set.cmt +0 -0
  549. package/lib/ocaml/set.cmti +0 -0
  550. package/lib/ocaml/set.ml +0 -526
  551. package/lib/ocaml/set.mli +0 -266
  552. package/lib/ocaml/setLabels.cmi +0 -0
  553. package/lib/ocaml/setLabels.cmt +0 -0
  554. package/lib/ocaml/setLabels.ml +0 -526
  555. package/lib/ocaml/setm.cppo.ml +0 -346
  556. package/lib/ocaml/setm.cppo.mli +0 -126
  557. package/lib/ocaml/sort.cmi +0 -0
  558. package/lib/ocaml/sort.cmt +0 -0
  559. package/lib/ocaml/sort.cmti +0 -0
  560. package/lib/ocaml/sort.cppo.ml +0 -267
  561. package/lib/ocaml/sort.cppo.mli +0 -96
  562. package/lib/ocaml/sort.ml +0 -99
  563. package/lib/ocaml/sort.mli +0 -44
  564. package/lib/ocaml/stack.cmi +0 -0
  565. package/lib/ocaml/stack.cmt +0 -0
  566. package/lib/ocaml/stack.cmti +0 -0
  567. package/lib/ocaml/stack.ml +0 -44
  568. package/lib/ocaml/stack.mli +0 -63
  569. package/lib/ocaml/stdLabels.cmi +0 -0
  570. package/lib/ocaml/stdLabels.cmt +0 -0
  571. package/lib/ocaml/stdLabels.cmti +0 -0
  572. package/lib/ocaml/stdLabels.ml +0 -24
  573. package/lib/ocaml/stdLabels.mli +0 -29
  574. package/lib/ocaml/stream.cmi +0 -0
  575. package/lib/ocaml/stream.cmt +0 -0
  576. package/lib/ocaml/stream.cmti +0 -0
  577. package/lib/ocaml/stream.ml +0 -213
  578. package/lib/ocaml/stream.mli +0 -108
  579. package/lib/ocaml/string.cmi +0 -0
  580. package/lib/ocaml/string.cmt +0 -0
  581. package/lib/ocaml/string.cmti +0 -0
  582. package/lib/ocaml/string.ml +0 -190
  583. package/lib/ocaml/string.mli +0 -286
  584. package/lib/ocaml/stringLabels.cmi +0 -0
  585. package/lib/ocaml/stringLabels.cmt +0 -0
  586. package/lib/ocaml/stringLabels.cmti +0 -0
  587. package/lib/ocaml/stringLabels.ml +0 -190
  588. package/lib/ocaml/stringLabels.mli +0 -241
  589. package/lib/ocaml/sys.cmi +0 -0
  590. package/lib/ocaml/sys.cmt +0 -0
  591. package/lib/ocaml/sys.cmti +0 -0
  592. package/lib/ocaml/sys.ml +0 -135
  593. package/lib/ocaml/sys.mli +0 -333
  594. package/lib/ocaml/uchar.cmi +0 -0
  595. package/lib/ocaml/uchar.cmt +0 -0
  596. package/lib/ocaml/uchar.cmti +0 -0
  597. package/lib/ocaml/uchar.ml +0 -58
  598. package/lib/ocaml/uchar.mli +0 -98
@@ -1,541 +0,0 @@
1
- (**************************************************************************)
2
- (* *)
3
- (* OCaml *)
4
- (* *)
5
- (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
6
- (* *)
7
- (* Copyright 1996 Institut National de Recherche en Informatique et *)
8
- (* en Automatique. *)
9
- (* *)
10
- (* All rights reserved. This file is distributed under the terms of *)
11
- (* the GNU Lesser General Public License version 2.1, with the *)
12
- (* special exception on linking described in the file LICENSE. *)
13
- (* *)
14
- (**************************************************************************)
15
-
16
- (* Hash tables *)
17
-
18
- external seeded_hash_param :
19
- int -> int -> int -> 'a -> int = "?hash" [@@noalloc]
20
- (* external old_hash_param :
21
- int -> int -> 'a -> int = "caml_hash_univ_param" [@@noalloc] *)
22
-
23
- let hash x = seeded_hash_param 10 100 0 x
24
- let hash_param n1 n2 x = seeded_hash_param n1 n2 0 x
25
- let seeded_hash seed x = seeded_hash_param 10 100 seed x
26
-
27
- (* We do dynamic hashing, and resize the table and rehash the elements
28
- when buckets become too long. *)
29
-
30
- type ('a, 'b) t =
31
- { mutable size: int; (* number of entries *)
32
- mutable data: ('a, 'b) bucketlist array; (* the buckets *)
33
- mutable seed: int; (* for randomization *)
34
- mutable initial_size: int; (* initial array size *)
35
- }
36
-
37
- and ('a, 'b) bucketlist =
38
- Empty
39
- | Cons of { mutable key: 'a;
40
- mutable data: 'b;
41
- mutable next: ('a, 'b) bucketlist }
42
-
43
- (* The sign of initial_size encodes the fact that a traversal is
44
- ongoing or not.
45
-
46
- This disables the efficient in place implementation of resizing.
47
- *)
48
-
49
- let ongoing_traversal h =
50
- h.initial_size < 0
51
-
52
- let flip_ongoing_traversal h =
53
- h.initial_size <- - h.initial_size
54
-
55
- (* To pick random seeds if requested *)
56
-
57
-
58
-
59
- let randomized_default = false
60
-
61
- let randomized = ref randomized_default
62
-
63
- let randomize () = randomized := true
64
- let is_randomized () = !randomized
65
-
66
- let prng = lazy (Random.State.make_self_init())
67
-
68
- (* Creating a fresh, empty table *)
69
-
70
- let rec power_2_above x n =
71
- if x >= n then x
72
- else if x * 2 < x then x (* overflow *)
73
- else power_2_above (x * 2) n
74
-
75
- let create ?(random = !randomized) initial_size =
76
- let s = power_2_above 16 initial_size in
77
- let seed = if random then Random.State.bits (Lazy.force prng) else 0 in
78
- { initial_size = s; size = 0; seed = seed; data = Array.make s Empty }
79
-
80
- let clear h =
81
- h.size <- 0;
82
- let len = Array.length h.data in
83
- for i = 0 to len - 1 do
84
- h.data.(i) <- Empty
85
- done
86
-
87
- let reset h =
88
- let len = Array.length h.data in
89
- if len = abs h.initial_size then
90
- clear h
91
- else begin
92
- h.size <- 0;
93
- h.data <- Array.make (abs h.initial_size) Empty
94
- end
95
-
96
- let copy_bucketlist = function
97
- | Empty -> Empty
98
- | Cons {key; data; next} ->
99
- let rec loop prec = function
100
- | Empty -> ()
101
- | Cons {key; data; next} ->
102
- let r = Cons {key; data; next} in
103
- begin match prec with
104
- | Empty -> assert false
105
- | Cons prec -> prec.next <- r
106
- end;
107
- loop r next
108
- in
109
- let r = Cons {key; data; next} in
110
- loop r next;
111
- r
112
-
113
- let copy h = { h with data = Array.map copy_bucketlist h.data }
114
-
115
- let length h = h.size
116
-
117
- let resize indexfun h =
118
- let odata = h.data in
119
- let osize = Array.length odata in
120
- let nsize = osize * 2 in
121
- if
122
- nsize >= osize
123
- then begin
124
- let ndata = Array.make nsize Empty in
125
- let ndata_tail = Array.make nsize Empty in
126
- let inplace = not (ongoing_traversal h) in
127
- h.data <- ndata; (* so that indexfun sees the new bucket count *)
128
- let rec insert_bucket = function
129
- | Empty -> ()
130
- | Cons {key; data; next} as cell ->
131
- let cell =
132
- if inplace then cell
133
- else Cons {key; data; next = Empty}
134
- in
135
- let nidx = indexfun h key in
136
- begin match ndata_tail.(nidx) with
137
- | Empty -> ndata.(nidx) <- cell;
138
- | Cons tail -> tail.next <- cell;
139
- end;
140
- ndata_tail.(nidx) <- cell;
141
- insert_bucket next
142
- in
143
- for i = 0 to osize - 1 do
144
- insert_bucket odata.(i)
145
- done;
146
- if inplace then
147
- for i = 0 to nsize - 1 do
148
- match ndata_tail.(i) with
149
- | Empty -> ()
150
- | Cons tail -> tail.next <- Empty
151
- done;
152
- end
153
-
154
- let key_index h key =
155
- (* compatibility with old hash tables *)
156
- (seeded_hash_param 10 100 h.seed key) land (Array.length h.data - 1)
157
-
158
-
159
- let add h key data =
160
- let i = key_index h key in
161
- let bucket = Cons{key; data; next=h.data.(i)} in
162
- h.data.(i) <- bucket;
163
- h.size <- h.size + 1;
164
- if h.size > Array.length h.data lsl 1 then resize key_index h
165
-
166
- let rec remove_bucket h i key prec = function
167
- | Empty ->
168
- ()
169
- | (Cons {key=k; next}) as c ->
170
- if compare k key = 0
171
- then begin
172
- h.size <- h.size - 1;
173
- match prec with
174
- | Empty -> h.data.(i) <- next
175
- | Cons c -> c.next <- next
176
- end
177
- else remove_bucket h i key c next
178
-
179
- let remove h key =
180
- let i = key_index h key in
181
- remove_bucket h i key Empty h.data.(i)
182
-
183
- let rec find_rec key = function
184
- | Empty ->
185
- raise Not_found
186
- | Cons{key=k; data; next} ->
187
- if compare key k = 0 then data else find_rec key next
188
-
189
- let find h key =
190
- match h.data.(key_index h key) with
191
- | Empty -> raise Not_found
192
- | Cons{key=k1; data=d1; next=next1} ->
193
- if compare key k1 = 0 then d1 else
194
- match next1 with
195
- | Empty -> raise Not_found
196
- | Cons{key=k2; data=d2; next=next2} ->
197
- if compare key k2 = 0 then d2 else
198
- match next2 with
199
- | Empty -> raise Not_found
200
- | Cons{key=k3; data=d3; next=next3} ->
201
- if compare key k3 = 0 then d3 else find_rec key next3
202
-
203
- let rec find_rec_opt key = function
204
- | Empty ->
205
- None
206
- | Cons{key=k; data; next} ->
207
- if compare key k = 0 then Some data else find_rec_opt key next
208
-
209
- let find_opt h key =
210
- match h.data.(key_index h key) with
211
- | Empty -> None
212
- | Cons{key=k1; data=d1; next=next1} ->
213
- if compare key k1 = 0 then Some d1 else
214
- match next1 with
215
- | Empty -> None
216
- | Cons{key=k2; data=d2; next=next2} ->
217
- if compare key k2 = 0 then Some d2 else
218
- match next2 with
219
- | Empty -> None
220
- | Cons{key=k3; data=d3; next=next3} ->
221
- if compare key k3 = 0 then Some d3 else find_rec_opt key next3
222
-
223
- let find_all h key =
224
- let rec find_in_bucket = function
225
- | Empty ->
226
- []
227
- | Cons{key=k; data; next} ->
228
- if compare k key = 0
229
- then data :: find_in_bucket next
230
- else find_in_bucket next in
231
- find_in_bucket h.data.(key_index h key)
232
-
233
- let rec replace_bucket key data = function
234
- | Empty ->
235
- true
236
- | Cons ({key=k; next} as slot) ->
237
- if compare k key = 0
238
- then (slot.key <- key; slot.data <- data; false)
239
- else replace_bucket key data next
240
-
241
- let replace h key data =
242
- let i = key_index h key in
243
- let l = h.data.(i) in
244
- if replace_bucket key data l then begin
245
- h.data.(i) <- Cons{key; data; next=l};
246
- h.size <- h.size + 1;
247
- if h.size > Array.length h.data lsl 1 then resize key_index h
248
- end
249
-
250
- let mem h key =
251
- let rec mem_in_bucket = function
252
- | Empty ->
253
- false
254
- | Cons{key=k; next} ->
255
- compare k key = 0 || mem_in_bucket next in
256
- mem_in_bucket h.data.(key_index h key)
257
-
258
- let iter f h =
259
- let rec do_bucket = function
260
- | Empty ->
261
- ()
262
- | Cons{key; data; next} ->
263
- f key data; do_bucket next in
264
- let old_trav = ongoing_traversal h in
265
- if not old_trav then flip_ongoing_traversal h;
266
- try
267
- let d = h.data in
268
- for i = 0 to Array.length d - 1 do
269
- do_bucket d.(i)
270
- done;
271
- if not old_trav then flip_ongoing_traversal h;
272
- with exn when not old_trav ->
273
- flip_ongoing_traversal h;
274
- raise exn
275
-
276
- let rec filter_map_inplace_bucket f h i prec = function
277
- | Empty ->
278
- begin match prec with
279
- | Empty -> h.data.(i) <- Empty
280
- | Cons c -> c.next <- Empty
281
- end
282
- | (Cons ({key; data; next} as c)) as slot ->
283
- begin match f key data with
284
- | None ->
285
- h.size <- h.size - 1;
286
- filter_map_inplace_bucket f h i prec next
287
- | Some data ->
288
- begin match prec with
289
- | Empty -> h.data.(i) <- slot
290
- | Cons c -> c.next <- slot
291
- end;
292
- c.data <- data;
293
- filter_map_inplace_bucket f h i slot next
294
- end
295
-
296
- let filter_map_inplace f h =
297
- let d = h.data in
298
- let old_trav = ongoing_traversal h in
299
- if not old_trav then flip_ongoing_traversal h;
300
- try
301
- for i = 0 to Array.length d - 1 do
302
- filter_map_inplace_bucket f h i Empty h.data.(i)
303
- done
304
- with exn when not old_trav ->
305
- flip_ongoing_traversal h;
306
- raise exn
307
-
308
- let fold f h init =
309
- let rec do_bucket b accu =
310
- match b with
311
- Empty ->
312
- accu
313
- | Cons{key; data; next} ->
314
- do_bucket next (f key data accu) in
315
- let old_trav = ongoing_traversal h in
316
- if not old_trav then flip_ongoing_traversal h;
317
- try
318
- let d = h.data in
319
- let accu = ref init in
320
- for i = 0 to Array.length d - 1 do
321
- accu := do_bucket d.(i) !accu
322
- done;
323
- if not old_trav then flip_ongoing_traversal h;
324
- !accu
325
- with exn when not old_trav ->
326
- flip_ongoing_traversal h;
327
- raise exn
328
-
329
- type statistics = {
330
- num_bindings: int;
331
- num_buckets: int;
332
- max_bucket_length: int;
333
- bucket_histogram: int array
334
- }
335
-
336
- let rec bucket_length accu = function
337
- | Empty -> accu
338
- | Cons{next} -> bucket_length (accu + 1) next
339
-
340
- let stats h =
341
- let mbl =
342
- Array.fold_left (fun m b -> max m (bucket_length 0 b)) 0 h.data in
343
- let histo = Array.make (mbl + 1) 0 in
344
- Array.iter
345
- (fun b ->
346
- let l = bucket_length 0 b in
347
- histo.(l) <- histo.(l) + 1)
348
- h.data;
349
- { num_bindings = h.size;
350
- num_buckets = Array.length h.data;
351
- max_bucket_length = mbl;
352
- bucket_histogram = histo }
353
-
354
- (* Functorial interface *)
355
-
356
- module type HashedType =
357
- sig
358
- type t
359
- val equal: t -> t -> bool
360
- val hash: t -> int
361
- end
362
-
363
- module type SeededHashedType =
364
- sig
365
- type t
366
- val equal: t -> t -> bool
367
- val hash: int -> t -> int
368
- end
369
-
370
- module type S =
371
- sig
372
- type key
373
- type 'a t
374
- val create: int -> 'a t
375
- val clear : 'a t -> unit
376
- val reset : 'a t -> unit
377
- val copy: 'a t -> 'a t
378
- val add: 'a t -> key -> 'a -> unit
379
- val remove: 'a t -> key -> unit
380
- val find: 'a t -> key -> 'a
381
- val find_opt: 'a t -> key -> 'a option
382
- val find_all: 'a t -> key -> 'a list
383
- val replace : 'a t -> key -> 'a -> unit
384
- val mem : 'a t -> key -> bool
385
- val iter: (key -> 'a -> unit) -> 'a t -> unit
386
- val filter_map_inplace: (key -> 'a -> 'a option) -> 'a t -> unit
387
- val fold: (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
388
- val length: 'a t -> int
389
- val stats: 'a t -> statistics
390
- end
391
-
392
- module type SeededS =
393
- sig
394
- type key
395
- type 'a t
396
- val create : ?random:bool -> int -> 'a t
397
- val clear : 'a t -> unit
398
- val reset : 'a t -> unit
399
- val copy : 'a t -> 'a t
400
- val add : 'a t -> key -> 'a -> unit
401
- val remove : 'a t -> key -> unit
402
- val find : 'a t -> key -> 'a
403
- val find_opt: 'a t -> key -> 'a option
404
- val find_all : 'a t -> key -> 'a list
405
- val replace : 'a t -> key -> 'a -> unit
406
- val mem : 'a t -> key -> bool
407
- val iter : (key -> 'a -> unit) -> 'a t -> unit
408
- val filter_map_inplace: (key -> 'a -> 'a option) -> 'a t -> unit
409
- val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
410
- val length : 'a t -> int
411
- val stats: 'a t -> statistics
412
- end
413
-
414
- module MakeSeeded(H: SeededHashedType): (SeededS with type key = H.t) =
415
- struct
416
- type key = H.t
417
- type 'a hashtbl = (key, 'a) t
418
- type 'a t = 'a hashtbl
419
- let create = create
420
- let clear = clear
421
- let reset = reset
422
- let copy = copy
423
-
424
- let key_index h key =
425
- (H.hash h.seed key) land (Array.length h.data - 1)
426
-
427
- let add h key data =
428
- let i = key_index h key in
429
- let bucket = Cons{key; data; next=h.data.(i)} in
430
- h.data.(i) <- bucket;
431
- h.size <- h.size + 1;
432
- if h.size > Array.length h.data lsl 1 then resize key_index h
433
-
434
- let rec remove_bucket h i key prec = function
435
- | Empty ->
436
- ()
437
- | (Cons {key=k; next}) as c ->
438
- if H.equal k key
439
- then begin
440
- h.size <- h.size - 1;
441
- match prec with
442
- | Empty -> h.data.(i) <- next
443
- | Cons c -> c.next <- next
444
- end
445
- else remove_bucket h i key c next
446
-
447
- let remove h key =
448
- let i = key_index h key in
449
- remove_bucket h i key Empty h.data.(i)
450
-
451
- let rec find_rec key = function
452
- | Empty ->
453
- raise Not_found
454
- | Cons{key=k; data; next} ->
455
- if H.equal key k then data else find_rec key next
456
-
457
- let find h key =
458
- match h.data.(key_index h key) with
459
- | Empty -> raise Not_found
460
- | Cons{key=k1; data=d1; next=next1} ->
461
- if H.equal key k1 then d1 else
462
- match next1 with
463
- | Empty -> raise Not_found
464
- | Cons{key=k2; data=d2; next=next2} ->
465
- if H.equal key k2 then d2 else
466
- match next2 with
467
- | Empty -> raise Not_found
468
- | Cons{key=k3; data=d3; next=next3} ->
469
- if H.equal key k3 then d3 else find_rec key next3
470
-
471
- let rec find_rec_opt key = function
472
- | Empty ->
473
- None
474
- | Cons{key=k; data; next} ->
475
- if H.equal key k then Some data else find_rec_opt key next
476
-
477
- let find_opt h key =
478
- match h.data.(key_index h key) with
479
- | Empty -> None
480
- | Cons{key=k1; data=d1; next=next1} ->
481
- if H.equal key k1 then Some d1 else
482
- match next1 with
483
- | Empty -> None
484
- | Cons{key=k2; data=d2; next=next2} ->
485
- if H.equal key k2 then Some d2 else
486
- match next2 with
487
- | Empty -> None
488
- | Cons{key=k3; data=d3; next=next3} ->
489
- if H.equal key k3 then Some d3 else find_rec_opt key next3
490
-
491
- let find_all h key =
492
- let rec find_in_bucket = function
493
- | Empty ->
494
- []
495
- | Cons{key=k; data=d; next} ->
496
- if H.equal k key
497
- then d :: find_in_bucket next
498
- else find_in_bucket next in
499
- find_in_bucket h.data.(key_index h key)
500
-
501
- let rec replace_bucket key data = function
502
- | Empty ->
503
- true
504
- | Cons ({key=k; next} as slot) ->
505
- if H.equal k key
506
- then (slot.key <- key; slot.data <- data; false)
507
- else replace_bucket key data next
508
-
509
- let replace h key data =
510
- let i = key_index h key in
511
- let l = h.data.(i) in
512
- if replace_bucket key data l then begin
513
- h.data.(i) <- Cons{key; data; next=l};
514
- h.size <- h.size + 1;
515
- if h.size > Array.length h.data lsl 1 then resize key_index h
516
- end
517
-
518
- let mem h key =
519
- let rec mem_in_bucket = function
520
- | Empty ->
521
- false
522
- | Cons{key=k; next} ->
523
- H.equal k key || mem_in_bucket next in
524
- mem_in_bucket h.data.(key_index h key)
525
-
526
- let iter = iter
527
- let filter_map_inplace = filter_map_inplace
528
- let fold = fold
529
- let length = length
530
- let stats = stats
531
- end
532
-
533
- module Make(H: HashedType): (S with type key = H.t) =
534
- struct
535
- include MakeSeeded(struct
536
- type t = H.t
537
- let equal = H.equal
538
- let hash (_seed: int) x = H.hash x
539
- end)
540
- let create sz = create ~random:false sz
541
- end