@tellahq/rescript 10.1.4-republish-2 → 10.1.4-republish-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/darwin/bsb_helper.exe +0 -0
  2. package/darwin/bsc.exe +0 -0
  3. package/darwin/ninja.exe +0 -0
  4. package/darwin/rescript.exe +0 -0
  5. package/darwinarm64/bsb_helper.exe +0 -0
  6. package/darwinarm64/bsc.exe +0 -0
  7. package/darwinarm64/ninja.exe +0 -0
  8. package/darwinarm64/rescript.exe +0 -0
  9. package/lib/ocaml/arg.cmi +0 -0
  10. package/lib/ocaml/arg.cmt +0 -0
  11. package/lib/ocaml/arg.cmti +0 -0
  12. package/lib/ocaml/arg.ml +359 -0
  13. package/lib/ocaml/arg.mli +185 -0
  14. package/lib/ocaml/array.cmi +0 -0
  15. package/lib/ocaml/array.cmt +0 -0
  16. package/lib/ocaml/array.cmti +0 -0
  17. package/lib/ocaml/array.ml +307 -0
  18. package/lib/ocaml/array.mli +275 -0
  19. package/lib/ocaml/arrayLabels.cmi +0 -0
  20. package/lib/ocaml/arrayLabels.cmt +0 -0
  21. package/lib/ocaml/arrayLabels.cmti +0 -0
  22. package/lib/ocaml/arrayLabels.ml +307 -0
  23. package/lib/ocaml/arrayLabels.mli +276 -0
  24. package/lib/ocaml/belt.cmi +0 -0
  25. package/lib/ocaml/belt.cmt +0 -0
  26. package/lib/ocaml/belt.ml +352 -0
  27. package/lib/ocaml/belt_Array.cmi +0 -0
  28. package/lib/ocaml/belt_Array.cmt +0 -0
  29. package/lib/ocaml/belt_Array.cmti +0 -0
  30. package/lib/ocaml/belt_Array.ml +525 -0
  31. package/lib/ocaml/belt_Array.mli +707 -0
  32. package/lib/ocaml/belt_Float.cmi +0 -0
  33. package/lib/ocaml/belt_Float.cmt +0 -0
  34. package/lib/ocaml/belt_Float.cmti +0 -0
  35. package/lib/ocaml/belt_Float.ml +50 -0
  36. package/lib/ocaml/belt_Float.mli +106 -0
  37. package/lib/ocaml/belt_HashMap.cmi +0 -0
  38. package/lib/ocaml/belt_HashMap.cmt +0 -0
  39. package/lib/ocaml/belt_HashMap.cmti +0 -0
  40. package/lib/ocaml/belt_HashMap.ml +226 -0
  41. package/lib/ocaml/belt_HashMap.mli +436 -0
  42. package/lib/ocaml/belt_HashMapInt.cmi +0 -0
  43. package/lib/ocaml/belt_HashMapInt.cmt +0 -0
  44. package/lib/ocaml/belt_HashMapInt.cmti +0 -0
  45. package/lib/ocaml/belt_HashMapInt.ml +206 -0
  46. package/lib/ocaml/belt_HashMapInt.mli +50 -0
  47. package/lib/ocaml/belt_HashMapString.cmi +0 -0
  48. package/lib/ocaml/belt_HashMapString.cmt +0 -0
  49. package/lib/ocaml/belt_HashMapString.cmti +0 -0
  50. package/lib/ocaml/belt_HashMapString.ml +206 -0
  51. package/lib/ocaml/belt_HashMapString.mli +50 -0
  52. package/lib/ocaml/belt_HashSet.cmi +0 -0
  53. package/lib/ocaml/belt_HashSet.cmt +0 -0
  54. package/lib/ocaml/belt_HashSet.cmti +0 -0
  55. package/lib/ocaml/belt_HashSet.ml +196 -0
  56. package/lib/ocaml/belt_HashSet.mli +125 -0
  57. package/lib/ocaml/belt_HashSetInt.cmi +0 -0
  58. package/lib/ocaml/belt_HashSetInt.cmt +0 -0
  59. package/lib/ocaml/belt_HashSetInt.cmti +0 -0
  60. package/lib/ocaml/belt_HashSetInt.ml +155 -0
  61. package/lib/ocaml/belt_HashSetInt.mli +74 -0
  62. package/lib/ocaml/belt_HashSetString.cmi +0 -0
  63. package/lib/ocaml/belt_HashSetString.cmt +0 -0
  64. package/lib/ocaml/belt_HashSetString.cmti +0 -0
  65. package/lib/ocaml/belt_HashSetString.ml +156 -0
  66. package/lib/ocaml/belt_HashSetString.mli +74 -0
  67. package/lib/ocaml/belt_Id.cmi +0 -0
  68. package/lib/ocaml/belt_Id.cmt +0 -0
  69. package/lib/ocaml/belt_Id.cmti +0 -0
  70. package/lib/ocaml/belt_Id.ml +133 -0
  71. package/lib/ocaml/belt_Id.mli +171 -0
  72. package/lib/ocaml/belt_Int.cmi +0 -0
  73. package/lib/ocaml/belt_Int.cmt +0 -0
  74. package/lib/ocaml/belt_Int.cmti +0 -0
  75. package/lib/ocaml/belt_Int.ml +50 -0
  76. package/lib/ocaml/belt_Int.mli +103 -0
  77. package/lib/ocaml/belt_List.cmi +0 -0
  78. package/lib/ocaml/belt_List.cmt +0 -0
  79. package/lib/ocaml/belt_List.cmti +0 -0
  80. package/lib/ocaml/belt_List.ml +803 -0
  81. package/lib/ocaml/belt_List.mli +844 -0
  82. package/lib/ocaml/belt_Map.cmi +0 -0
  83. package/lib/ocaml/belt_Map.cmt +0 -0
  84. package/lib/ocaml/belt_Map.cmti +0 -0
  85. package/lib/ocaml/belt_Map.ml +170 -0
  86. package/lib/ocaml/belt_Map.mli +496 -0
  87. package/lib/ocaml/belt_MapDict.cmi +0 -0
  88. package/lib/ocaml/belt_MapDict.cmt +0 -0
  89. package/lib/ocaml/belt_MapDict.cmti +0 -0
  90. package/lib/ocaml/belt_MapDict.ml +278 -0
  91. package/lib/ocaml/belt_MapDict.mli +268 -0
  92. package/lib/ocaml/belt_MapInt.cmi +0 -0
  93. package/lib/ocaml/belt_MapInt.cmt +0 -0
  94. package/lib/ocaml/belt_MapInt.cmti +0 -0
  95. package/lib/ocaml/belt_MapInt.ml +169 -0
  96. package/lib/ocaml/belt_MapInt.mli +187 -0
  97. package/lib/ocaml/belt_MapString.cmi +0 -0
  98. package/lib/ocaml/belt_MapString.cmt +0 -0
  99. package/lib/ocaml/belt_MapString.cmti +0 -0
  100. package/lib/ocaml/belt_MapString.ml +169 -0
  101. package/lib/ocaml/belt_MapString.mli +187 -0
  102. package/lib/ocaml/belt_MutableMap.cmi +0 -0
  103. package/lib/ocaml/belt_MutableMap.cmt +0 -0
  104. package/lib/ocaml/belt_MutableMap.cmti +0 -0
  105. package/lib/ocaml/belt_MutableMap.ml +241 -0
  106. package/lib/ocaml/belt_MutableMap.mli +145 -0
  107. package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
  108. package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
  109. package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
  110. package/lib/ocaml/belt_MutableMapInt.ml +172 -0
  111. package/lib/ocaml/belt_MutableMapInt.mli +135 -0
  112. package/lib/ocaml/belt_MutableMapString.cmi +0 -0
  113. package/lib/ocaml/belt_MutableMapString.cmt +0 -0
  114. package/lib/ocaml/belt_MutableMapString.cmti +0 -0
  115. package/lib/ocaml/belt_MutableMapString.ml +172 -0
  116. package/lib/ocaml/belt_MutableMapString.mli +135 -0
  117. package/lib/ocaml/belt_MutableQueue.cmi +0 -0
  118. package/lib/ocaml/belt_MutableQueue.cmt +0 -0
  119. package/lib/ocaml/belt_MutableQueue.cmti +0 -0
  120. package/lib/ocaml/belt_MutableQueue.ml +222 -0
  121. package/lib/ocaml/belt_MutableQueue.mli +116 -0
  122. package/lib/ocaml/belt_MutableSet.cmi +0 -0
  123. package/lib/ocaml/belt_MutableSet.cmt +0 -0
  124. package/lib/ocaml/belt_MutableSet.cmti +0 -0
  125. package/lib/ocaml/belt_MutableSet.ml +371 -0
  126. package/lib/ocaml/belt_MutableSet.mli +617 -0
  127. package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
  128. package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
  129. package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
  130. package/lib/ocaml/belt_MutableSetInt.ml +342 -0
  131. package/lib/ocaml/belt_MutableSetInt.mli +124 -0
  132. package/lib/ocaml/belt_MutableSetString.cmi +0 -0
  133. package/lib/ocaml/belt_MutableSetString.cmt +0 -0
  134. package/lib/ocaml/belt_MutableSetString.cmti +0 -0
  135. package/lib/ocaml/belt_MutableSetString.ml +342 -0
  136. package/lib/ocaml/belt_MutableSetString.mli +124 -0
  137. package/lib/ocaml/belt_MutableStack.cmi +0 -0
  138. package/lib/ocaml/belt_MutableStack.cmt +0 -0
  139. package/lib/ocaml/belt_MutableStack.cmti +0 -0
  140. package/lib/ocaml/belt_MutableStack.ml +106 -0
  141. package/lib/ocaml/belt_MutableStack.mli +63 -0
  142. package/lib/ocaml/belt_Option.cmi +0 -0
  143. package/lib/ocaml/belt_Option.cmt +0 -0
  144. package/lib/ocaml/belt_Option.cmti +0 -0
  145. package/lib/ocaml/belt_Option.ml +93 -0
  146. package/lib/ocaml/belt_Option.mli +270 -0
  147. package/lib/ocaml/belt_Range.cmi +0 -0
  148. package/lib/ocaml/belt_Range.cmt +0 -0
  149. package/lib/ocaml/belt_Range.cmti +0 -0
  150. package/lib/ocaml/belt_Range.ml +76 -0
  151. package/lib/ocaml/belt_Range.mli +114 -0
  152. package/lib/ocaml/belt_Result.cmi +0 -0
  153. package/lib/ocaml/belt_Result.cmt +0 -0
  154. package/lib/ocaml/belt_Result.cmti +0 -0
  155. package/lib/ocaml/belt_Result.ml +75 -0
  156. package/lib/ocaml/belt_Result.mli +205 -0
  157. package/lib/ocaml/belt_Set.cmi +0 -0
  158. package/lib/ocaml/belt_Set.cmt +0 -0
  159. package/lib/ocaml/belt_Set.cmti +0 -0
  160. package/lib/ocaml/belt_Set.cppo.ml +205 -0
  161. package/lib/ocaml/belt_Set.cppo.mli +153 -0
  162. package/lib/ocaml/belt_Set.ml +164 -0
  163. package/lib/ocaml/belt_Set.mli +523 -0
  164. package/lib/ocaml/belt_SetDict.cmi +0 -0
  165. package/lib/ocaml/belt_SetDict.cmt +0 -0
  166. package/lib/ocaml/belt_SetDict.cmti +0 -0
  167. package/lib/ocaml/belt_SetDict.ml +237 -0
  168. package/lib/ocaml/belt_SetDict.mli +567 -0
  169. package/lib/ocaml/belt_SetInt.cmi +0 -0
  170. package/lib/ocaml/belt_SetInt.cmt +0 -0
  171. package/lib/ocaml/belt_SetInt.cmti +0 -0
  172. package/lib/ocaml/belt_SetInt.ml +201 -0
  173. package/lib/ocaml/belt_SetInt.mli +151 -0
  174. package/lib/ocaml/belt_SetString.cmi +0 -0
  175. package/lib/ocaml/belt_SetString.cmt +0 -0
  176. package/lib/ocaml/belt_SetString.cmti +0 -0
  177. package/lib/ocaml/belt_SetString.ml +201 -0
  178. package/lib/ocaml/belt_SetString.mli +151 -0
  179. package/lib/ocaml/belt_SortArray.cmi +0 -0
  180. package/lib/ocaml/belt_SortArray.cmt +0 -0
  181. package/lib/ocaml/belt_SortArray.cmti +0 -0
  182. package/lib/ocaml/belt_SortArray.ml +322 -0
  183. package/lib/ocaml/belt_SortArray.mli +146 -0
  184. package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
  185. package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
  186. package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
  187. package/lib/ocaml/belt_SortArrayInt.ml +263 -0
  188. package/lib/ocaml/belt_SortArrayInt.mli +93 -0
  189. package/lib/ocaml/belt_SortArrayString.cmi +0 -0
  190. package/lib/ocaml/belt_SortArrayString.cmt +0 -0
  191. package/lib/ocaml/belt_SortArrayString.cmti +0 -0
  192. package/lib/ocaml/belt_SortArrayString.ml +263 -0
  193. package/lib/ocaml/belt_SortArrayString.mli +93 -0
  194. package/lib/ocaml/belt_internalAVLset.cmt +0 -0
  195. package/lib/ocaml/belt_internalAVLset.cmti +0 -0
  196. package/lib/ocaml/belt_internalAVLset.ml +665 -0
  197. package/lib/ocaml/belt_internalAVLset.mli +124 -0
  198. package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
  199. package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
  200. package/lib/ocaml/belt_internalAVLtree.ml +762 -0
  201. package/lib/ocaml/belt_internalAVLtree.mli +215 -0
  202. package/lib/ocaml/belt_internalBuckets.cmt +0 -0
  203. package/lib/ocaml/belt_internalBuckets.cmti +0 -0
  204. package/lib/ocaml/belt_internalBuckets.ml +218 -0
  205. package/lib/ocaml/belt_internalBuckets.mli +57 -0
  206. package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
  207. package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
  208. package/lib/ocaml/belt_internalBucketsType.ml +59 -0
  209. package/lib/ocaml/belt_internalBucketsType.mli +46 -0
  210. package/lib/ocaml/belt_internalMapInt.cmt +0 -0
  211. package/lib/ocaml/belt_internalMapInt.ml +227 -0
  212. package/lib/ocaml/belt_internalMapString.cmt +0 -0
  213. package/lib/ocaml/belt_internalMapString.ml +227 -0
  214. package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
  215. package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
  216. package/lib/ocaml/belt_internalSetBuckets.ml +157 -0
  217. package/lib/ocaml/belt_internalSetBuckets.mli +47 -0
  218. package/lib/ocaml/belt_internalSetInt.cmt +0 -0
  219. package/lib/ocaml/belt_internalSetInt.ml +129 -0
  220. package/lib/ocaml/belt_internalSetString.cmt +0 -0
  221. package/lib/ocaml/belt_internalSetString.ml +129 -0
  222. package/lib/ocaml/belt_internals.cmti +0 -0
  223. package/lib/ocaml/belt_internals.mli +79 -0
  224. package/lib/ocaml/buffer.cmi +0 -0
  225. package/lib/ocaml/buffer.cmt +0 -0
  226. package/lib/ocaml/buffer.cmti +0 -0
  227. package/lib/ocaml/buffer.ml +250 -0
  228. package/lib/ocaml/buffer.mli +149 -0
  229. package/lib/ocaml/bytes.cmi +0 -0
  230. package/lib/ocaml/bytes.cmt +0 -0
  231. package/lib/ocaml/bytes.cmti +0 -0
  232. package/lib/ocaml/bytes.ml +431 -0
  233. package/lib/ocaml/bytes.mli +430 -0
  234. package/lib/ocaml/bytesLabels.cmi +0 -0
  235. package/lib/ocaml/bytesLabels.cmt +0 -0
  236. package/lib/ocaml/bytesLabels.cmti +0 -0
  237. package/lib/ocaml/bytesLabels.ml +428 -0
  238. package/lib/ocaml/bytesLabels.mli +276 -0
  239. package/lib/ocaml/callback.cmi +0 -0
  240. package/lib/ocaml/callback.cmt +0 -0
  241. package/lib/ocaml/callback.cmti +0 -0
  242. package/lib/ocaml/callback.ml +20 -0
  243. package/lib/ocaml/callback.mli +34 -0
  244. package/lib/ocaml/camlinternalLazy.cmi +0 -0
  245. package/lib/ocaml/camlinternalLazy.cmt +0 -0
  246. package/lib/ocaml/camlinternalLazy.cmti +0 -0
  247. package/lib/ocaml/camlinternalLazy.ml +89 -0
  248. package/lib/ocaml/camlinternalLazy.mli +27 -0
  249. package/lib/ocaml/camlinternalMod.cmi +0 -0
  250. package/lib/ocaml/camlinternalMod.cmt +0 -0
  251. package/lib/ocaml/camlinternalMod.cmti +0 -0
  252. package/lib/ocaml/camlinternalMod.ml +21 -0
  253. package/lib/ocaml/camlinternalMod.mli +25 -0
  254. package/lib/ocaml/char.cmi +0 -0
  255. package/lib/ocaml/char.cmt +0 -0
  256. package/lib/ocaml/char.cmti +0 -0
  257. package/lib/ocaml/char.ml +76 -0
  258. package/lib/ocaml/char.mli +72 -0
  259. package/lib/ocaml/complex.cmi +0 -0
  260. package/lib/ocaml/complex.cmt +0 -0
  261. package/lib/ocaml/complex.cmti +0 -0
  262. package/lib/ocaml/complex.ml +87 -0
  263. package/lib/ocaml/complex.mli +86 -0
  264. package/lib/ocaml/digest.cmi +0 -0
  265. package/lib/ocaml/digest.cmt +0 -0
  266. package/lib/ocaml/digest.cmti +0 -0
  267. package/lib/ocaml/digest.ml +66 -0
  268. package/lib/ocaml/digest.mli +68 -0
  269. package/lib/ocaml/dom.cmi +0 -0
  270. package/lib/ocaml/dom.cmt +0 -0
  271. package/lib/ocaml/dom.ml +296 -0
  272. package/lib/ocaml/dom_storage.cmi +0 -0
  273. package/lib/ocaml/dom_storage.cmt +0 -0
  274. package/lib/ocaml/dom_storage.ml +22 -0
  275. package/lib/ocaml/dom_storage2.cmi +0 -0
  276. package/lib/ocaml/dom_storage2.cmt +0 -0
  277. package/lib/ocaml/dom_storage2.ml +11 -0
  278. package/lib/ocaml/filename.cmi +0 -0
  279. package/lib/ocaml/filename.cmt +0 -0
  280. package/lib/ocaml/filename.cmti +0 -0
  281. package/lib/ocaml/filename.ml +233 -0
  282. package/lib/ocaml/filename.mli +134 -0
  283. package/lib/ocaml/genlex.cmi +0 -0
  284. package/lib/ocaml/genlex.cmt +0 -0
  285. package/lib/ocaml/genlex.cmti +0 -0
  286. package/lib/ocaml/genlex.ml +201 -0
  287. package/lib/ocaml/genlex.mli +73 -0
  288. package/lib/ocaml/hashmap.cppo.ml +214 -0
  289. package/lib/ocaml/hashmap.cppo.mli +54 -0
  290. package/lib/ocaml/hashset.cppo.ml +165 -0
  291. package/lib/ocaml/hashset.cppo.mli +77 -0
  292. package/lib/ocaml/hashtbl.cmi +0 -0
  293. package/lib/ocaml/hashtbl.cmt +0 -0
  294. package/lib/ocaml/hashtbl.cmti +0 -0
  295. package/lib/ocaml/hashtbl.ml +541 -0
  296. package/lib/ocaml/hashtbl.mli +411 -0
  297. package/lib/ocaml/hashtblLabels.cmi +0 -0
  298. package/lib/ocaml/hashtblLabels.cmt +0 -0
  299. package/lib/ocaml/hashtblLabels.ml +130 -0
  300. package/lib/ocaml/int32.cmi +0 -0
  301. package/lib/ocaml/int32.cmt +0 -0
  302. package/lib/ocaml/int32.cmti +0 -0
  303. package/lib/ocaml/int32.ml +64 -0
  304. package/lib/ocaml/int32.mli +186 -0
  305. package/lib/ocaml/int64.cmi +0 -0
  306. package/lib/ocaml/int64.cmt +0 -0
  307. package/lib/ocaml/int64.cmti +0 -0
  308. package/lib/ocaml/int64.ml +72 -0
  309. package/lib/ocaml/int64.mli +197 -0
  310. package/lib/ocaml/internal_map.cppo.ml +230 -0
  311. package/lib/ocaml/internal_set.cppo.ml +134 -0
  312. package/lib/ocaml/js.cmi +0 -0
  313. package/lib/ocaml/js.cmt +0 -0
  314. package/lib/ocaml/js.ml +316 -0
  315. package/lib/ocaml/js_OO.cmi +0 -0
  316. package/lib/ocaml/js_OO.cmt +0 -0
  317. package/lib/ocaml/js_OO.ml +180 -0
  318. package/lib/ocaml/js_array.cmi +0 -0
  319. package/lib/ocaml/js_array.cmt +0 -0
  320. package/lib/ocaml/js_array.ml +970 -0
  321. package/lib/ocaml/js_array2.cmi +0 -0
  322. package/lib/ocaml/js_array2.cmt +0 -0
  323. package/lib/ocaml/js_array2.ml +1065 -0
  324. package/lib/ocaml/js_bigint.cmi +0 -0
  325. package/lib/ocaml/js_bigint.cmt +0 -0
  326. package/lib/ocaml/js_bigint.ml +3 -0
  327. package/lib/ocaml/js_cast.cmi +0 -0
  328. package/lib/ocaml/js_cast.cmt +0 -0
  329. package/lib/ocaml/js_cast.cmti +0 -0
  330. package/lib/ocaml/js_cast.ml +29 -0
  331. package/lib/ocaml/js_cast.mli +45 -0
  332. package/lib/ocaml/js_console.cmi +0 -0
  333. package/lib/ocaml/js_console.cmt +0 -0
  334. package/lib/ocaml/js_console.ml +51 -0
  335. package/lib/ocaml/js_date.cmi +0 -0
  336. package/lib/ocaml/js_date.cmt +0 -0
  337. package/lib/ocaml/js_date.ml +1263 -0
  338. package/lib/ocaml/js_dict.cmi +0 -0
  339. package/lib/ocaml/js_dict.cmt +0 -0
  340. package/lib/ocaml/js_dict.cmti +0 -0
  341. package/lib/ocaml/js_dict.ml +114 -0
  342. package/lib/ocaml/js_dict.mli +152 -0
  343. package/lib/ocaml/js_exn.cmi +0 -0
  344. package/lib/ocaml/js_exn.cmt +0 -0
  345. package/lib/ocaml/js_exn.cmti +0 -0
  346. package/lib/ocaml/js_exn.ml +102 -0
  347. package/lib/ocaml/js_exn.mli +79 -0
  348. package/lib/ocaml/js_float.cmi +0 -0
  349. package/lib/ocaml/js_float.cmt +0 -0
  350. package/lib/ocaml/js_float.ml +294 -0
  351. package/lib/ocaml/js_global.cmi +0 -0
  352. package/lib/ocaml/js_global.cmt +0 -0
  353. package/lib/ocaml/js_global.ml +185 -0
  354. package/lib/ocaml/js_int.cmi +0 -0
  355. package/lib/ocaml/js_int.cmt +0 -0
  356. package/lib/ocaml/js_int.ml +158 -0
  357. package/lib/ocaml/js_json.cmi +0 -0
  358. package/lib/ocaml/js_json.cmt +0 -0
  359. package/lib/ocaml/js_json.cmti +0 -0
  360. package/lib/ocaml/js_json.ml +195 -0
  361. package/lib/ocaml/js_json.mli +244 -0
  362. package/lib/ocaml/js_list.cmi +0 -0
  363. package/lib/ocaml/js_list.cmt +0 -0
  364. package/lib/ocaml/js_list.cmti +0 -0
  365. package/lib/ocaml/js_list.ml +174 -0
  366. package/lib/ocaml/js_list.mli +72 -0
  367. package/lib/ocaml/js_map.cmi +0 -0
  368. package/lib/ocaml/js_map.cmt +0 -0
  369. package/lib/ocaml/js_map.ml +3 -0
  370. package/lib/ocaml/js_mapperRt.cmi +0 -0
  371. package/lib/ocaml/js_mapperRt.cmt +0 -0
  372. package/lib/ocaml/js_mapperRt.cmti +0 -0
  373. package/lib/ocaml/js_mapperRt.ml +50 -0
  374. package/lib/ocaml/js_mapperRt.mli +44 -0
  375. package/lib/ocaml/js_math.cmi +0 -0
  376. package/lib/ocaml/js_math.cmt +0 -0
  377. package/lib/ocaml/js_math.ml +626 -0
  378. package/lib/ocaml/js_null.cmi +0 -0
  379. package/lib/ocaml/js_null.cmt +0 -0
  380. package/lib/ocaml/js_null.cmti +0 -0
  381. package/lib/ocaml/js_null.ml +57 -0
  382. package/lib/ocaml/js_null.mli +87 -0
  383. package/lib/ocaml/js_null_undefined.cmi +0 -0
  384. package/lib/ocaml/js_null_undefined.cmt +0 -0
  385. package/lib/ocaml/js_null_undefined.cmti +0 -0
  386. package/lib/ocaml/js_null_undefined.ml +50 -0
  387. package/lib/ocaml/js_null_undefined.mli +85 -0
  388. package/lib/ocaml/js_obj.cmi +0 -0
  389. package/lib/ocaml/js_obj.cmt +0 -0
  390. package/lib/ocaml/js_obj.ml +100 -0
  391. package/lib/ocaml/js_option.cmi +0 -0
  392. package/lib/ocaml/js_option.cmt +0 -0
  393. package/lib/ocaml/js_option.cmti +0 -0
  394. package/lib/ocaml/js_option.ml +203 -0
  395. package/lib/ocaml/js_option.mli +52 -0
  396. package/lib/ocaml/js_promise.cmi +0 -0
  397. package/lib/ocaml/js_promise.cmt +0 -0
  398. package/lib/ocaml/js_promise.ml +100 -0
  399. package/lib/ocaml/js_promise2.cmi +0 -0
  400. package/lib/ocaml/js_promise2.cmt +0 -0
  401. package/lib/ocaml/js_promise2.res +58 -0
  402. package/lib/ocaml/js_re.cmi +0 -0
  403. package/lib/ocaml/js_re.cmt +0 -0
  404. package/lib/ocaml/js_re.ml +184 -0
  405. package/lib/ocaml/js_result.cmi +0 -0
  406. package/lib/ocaml/js_result.cmt +0 -0
  407. package/lib/ocaml/js_result.cmti +0 -0
  408. package/lib/ocaml/js_result.ml +28 -0
  409. package/lib/ocaml/js_result.mli +28 -0
  410. package/lib/ocaml/js_set.cmi +0 -0
  411. package/lib/ocaml/js_set.cmt +0 -0
  412. package/lib/ocaml/js_set.ml +3 -0
  413. package/lib/ocaml/js_string.cmi +0 -0
  414. package/lib/ocaml/js_string.cmt +0 -0
  415. package/lib/ocaml/js_string.ml +914 -0
  416. package/lib/ocaml/js_string2.cmi +0 -0
  417. package/lib/ocaml/js_string2.cmt +0 -0
  418. package/lib/ocaml/js_string2.ml +912 -0
  419. package/lib/ocaml/js_typed_array.cmi +0 -0
  420. package/lib/ocaml/js_typed_array.cmt +0 -0
  421. package/lib/ocaml/js_typed_array.cppo.ml +429 -0
  422. package/lib/ocaml/js_typed_array.ml +1405 -0
  423. package/lib/ocaml/js_typed_array2.cmi +0 -0
  424. package/lib/ocaml/js_typed_array2.cmt +0 -0
  425. package/lib/ocaml/js_typed_array2.cppo.ml +296 -0
  426. package/lib/ocaml/js_typed_array2.ml +1269 -0
  427. package/lib/ocaml/js_types.cmi +0 -0
  428. package/lib/ocaml/js_types.cmt +0 -0
  429. package/lib/ocaml/js_types.cmti +0 -0
  430. package/lib/ocaml/js_types.ml +118 -0
  431. package/lib/ocaml/js_types.mli +78 -0
  432. package/lib/ocaml/js_undefined.cmi +0 -0
  433. package/lib/ocaml/js_undefined.cmt +0 -0
  434. package/lib/ocaml/js_undefined.cmti +0 -0
  435. package/lib/ocaml/js_undefined.ml +59 -0
  436. package/lib/ocaml/js_undefined.mli +92 -0
  437. package/lib/ocaml/js_vector.cmi +0 -0
  438. package/lib/ocaml/js_vector.cmt +0 -0
  439. package/lib/ocaml/js_vector.cmti +0 -0
  440. package/lib/ocaml/js_vector.ml +143 -0
  441. package/lib/ocaml/js_vector.mli +92 -0
  442. package/lib/ocaml/js_weakmap.cmi +0 -0
  443. package/lib/ocaml/js_weakmap.cmt +0 -0
  444. package/lib/ocaml/js_weakmap.ml +3 -0
  445. package/lib/ocaml/js_weakset.cmi +0 -0
  446. package/lib/ocaml/js_weakset.cmt +0 -0
  447. package/lib/ocaml/js_weakset.ml +3 -0
  448. package/lib/ocaml/jsx.cmi +0 -0
  449. package/lib/ocaml/jsx.cmt +0 -0
  450. package/lib/ocaml/jsx.res +40 -0
  451. package/lib/ocaml/jsxDOM.cmi +0 -0
  452. package/lib/ocaml/jsxDOM.cmt +0 -0
  453. package/lib/ocaml/jsxDOM.res +620 -0
  454. package/lib/ocaml/jsxDOMStyle.cmi +0 -0
  455. package/lib/ocaml/jsxDOMStyle.cmt +0 -0
  456. package/lib/ocaml/jsxDOMStyle.ml +781 -0
  457. package/lib/ocaml/jsxEvent.cmi +0 -0
  458. package/lib/ocaml/jsxEvent.cmt +0 -0
  459. package/lib/ocaml/jsxEvent.ml +358 -0
  460. package/lib/ocaml/jsxPPXReactSupport.cmi +0 -0
  461. package/lib/ocaml/jsxPPXReactSupport.cmt +0 -0
  462. package/lib/ocaml/jsxPPXReactSupport.res +48 -0
  463. package/lib/ocaml/lazy.cmi +0 -0
  464. package/lib/ocaml/lazy.cmt +0 -0
  465. package/lib/ocaml/lazy.cmti +0 -0
  466. package/lib/ocaml/lazy.ml +70 -0
  467. package/lib/ocaml/lazy.mli +95 -0
  468. package/lib/ocaml/lexing.cmi +0 -0
  469. package/lib/ocaml/lexing.cmt +0 -0
  470. package/lib/ocaml/lexing.cmti +0 -0
  471. package/lib/ocaml/lexing.ml +230 -0
  472. package/lib/ocaml/lexing.mli +172 -0
  473. package/lib/ocaml/list.cmi +0 -0
  474. package/lib/ocaml/list.cmt +0 -0
  475. package/lib/ocaml/list.cmti +0 -0
  476. package/lib/ocaml/list.ml +485 -0
  477. package/lib/ocaml/list.mli +347 -0
  478. package/lib/ocaml/listLabels.cmi +0 -0
  479. package/lib/ocaml/listLabels.cmt +0 -0
  480. package/lib/ocaml/listLabels.cmti +0 -0
  481. package/lib/ocaml/listLabels.ml +485 -0
  482. package/lib/ocaml/listLabels.mli +353 -0
  483. package/lib/ocaml/map.cmi +0 -0
  484. package/lib/ocaml/map.cmt +0 -0
  485. package/lib/ocaml/map.cmti +0 -0
  486. package/lib/ocaml/map.cppo.ml +174 -0
  487. package/lib/ocaml/map.cppo.mli +191 -0
  488. package/lib/ocaml/map.ml +480 -0
  489. package/lib/ocaml/map.mli +315 -0
  490. package/lib/ocaml/mapLabels.cmi +0 -0
  491. package/lib/ocaml/mapLabels.cmt +0 -0
  492. package/lib/ocaml/mapLabels.ml +480 -0
  493. package/lib/ocaml/mapm.cppo.ml +177 -0
  494. package/lib/ocaml/mapm.cppo.mli +138 -0
  495. package/lib/ocaml/moreLabels.cmi +0 -0
  496. package/lib/ocaml/moreLabels.cmt +0 -0
  497. package/lib/ocaml/moreLabels.cmti +0 -0
  498. package/lib/ocaml/moreLabels.ml +22 -0
  499. package/lib/ocaml/moreLabels.mli +198 -0
  500. package/lib/ocaml/node.cmi +0 -0
  501. package/lib/ocaml/node.cmt +0 -0
  502. package/lib/ocaml/node.ml +84 -0
  503. package/lib/ocaml/node_buffer.cmi +0 -0
  504. package/lib/ocaml/node_buffer.cmt +0 -0
  505. package/lib/ocaml/node_buffer.ml +47 -0
  506. package/lib/ocaml/node_child_process.cmi +0 -0
  507. package/lib/ocaml/node_child_process.cmt +0 -0
  508. package/lib/ocaml/node_child_process.ml +50 -0
  509. package/lib/ocaml/node_fs.cmi +0 -0
  510. package/lib/ocaml/node_fs.cmt +0 -0
  511. package/lib/ocaml/node_fs.ml +153 -0
  512. package/lib/ocaml/node_module.cmi +0 -0
  513. package/lib/ocaml/node_module.cmt +0 -0
  514. package/lib/ocaml/node_module.ml +29 -0
  515. package/lib/ocaml/node_path.cmi +0 -0
  516. package/lib/ocaml/node_path.cmt +0 -0
  517. package/lib/ocaml/node_path.ml +71 -0
  518. package/lib/ocaml/node_process.cmi +0 -0
  519. package/lib/ocaml/node_process.cmt +0 -0
  520. package/lib/ocaml/node_process.cmti +0 -0
  521. package/lib/ocaml/node_process.ml +59 -0
  522. package/lib/ocaml/node_process.mli +48 -0
  523. package/lib/ocaml/obj.cmi +0 -0
  524. package/lib/ocaml/obj.cmt +0 -0
  525. package/lib/ocaml/obj.cmti +0 -0
  526. package/lib/ocaml/obj.ml +29 -0
  527. package/lib/ocaml/obj.mli +62 -0
  528. package/lib/ocaml/parsing.cmi +0 -0
  529. package/lib/ocaml/parsing.cmt +0 -0
  530. package/lib/ocaml/parsing.cmti +0 -0
  531. package/lib/ocaml/parsing.ml +212 -0
  532. package/lib/ocaml/parsing.mli +105 -0
  533. package/lib/ocaml/pervasives.cmi +0 -0
  534. package/lib/ocaml/pervasives.cmt +0 -0
  535. package/lib/ocaml/pervasives.cmti +0 -0
  536. package/lib/ocaml/pervasives.ml +297 -0
  537. package/lib/ocaml/pervasives.mli +771 -0
  538. package/lib/ocaml/printexc.cmi +0 -0
  539. package/lib/ocaml/printexc.cmt +0 -0
  540. package/lib/ocaml/printexc.cmti +0 -0
  541. package/lib/ocaml/printexc.ml +75 -0
  542. package/lib/ocaml/printexc.mli +57 -0
  543. package/lib/ocaml/queue.cmi +0 -0
  544. package/lib/ocaml/queue.cmt +0 -0
  545. package/lib/ocaml/queue.cmti +0 -0
  546. package/lib/ocaml/queue.ml +132 -0
  547. package/lib/ocaml/queue.mli +82 -0
  548. package/lib/ocaml/random.cmi +0 -0
  549. package/lib/ocaml/random.cmt +0 -0
  550. package/lib/ocaml/random.cmti +0 -0
  551. package/lib/ocaml/random.ml +273 -0
  552. package/lib/ocaml/random.mli +102 -0
  553. package/lib/ocaml/set.cmi +0 -0
  554. package/lib/ocaml/set.cmt +0 -0
  555. package/lib/ocaml/set.cmti +0 -0
  556. package/lib/ocaml/set.ml +526 -0
  557. package/lib/ocaml/set.mli +266 -0
  558. package/lib/ocaml/setLabels.cmi +0 -0
  559. package/lib/ocaml/setLabels.cmt +0 -0
  560. package/lib/ocaml/setLabels.ml +526 -0
  561. package/lib/ocaml/setm.cppo.ml +346 -0
  562. package/lib/ocaml/setm.cppo.mli +126 -0
  563. package/lib/ocaml/sort.cmi +0 -0
  564. package/lib/ocaml/sort.cmt +0 -0
  565. package/lib/ocaml/sort.cmti +0 -0
  566. package/lib/ocaml/sort.cppo.ml +267 -0
  567. package/lib/ocaml/sort.cppo.mli +96 -0
  568. package/lib/ocaml/sort.ml +99 -0
  569. package/lib/ocaml/sort.mli +44 -0
  570. package/lib/ocaml/stack.cmi +0 -0
  571. package/lib/ocaml/stack.cmt +0 -0
  572. package/lib/ocaml/stack.cmti +0 -0
  573. package/lib/ocaml/stack.ml +44 -0
  574. package/lib/ocaml/stack.mli +63 -0
  575. package/lib/ocaml/stdLabels.cmi +0 -0
  576. package/lib/ocaml/stdLabels.cmt +0 -0
  577. package/lib/ocaml/stdLabels.cmti +0 -0
  578. package/lib/ocaml/stdLabels.ml +24 -0
  579. package/lib/ocaml/stdLabels.mli +29 -0
  580. package/lib/ocaml/stream.cmi +0 -0
  581. package/lib/ocaml/stream.cmt +0 -0
  582. package/lib/ocaml/stream.cmti +0 -0
  583. package/lib/ocaml/stream.ml +213 -0
  584. package/lib/ocaml/stream.mli +108 -0
  585. package/lib/ocaml/string.cmi +0 -0
  586. package/lib/ocaml/string.cmt +0 -0
  587. package/lib/ocaml/string.cmti +0 -0
  588. package/lib/ocaml/string.ml +190 -0
  589. package/lib/ocaml/string.mli +286 -0
  590. package/lib/ocaml/stringLabels.cmi +0 -0
  591. package/lib/ocaml/stringLabels.cmt +0 -0
  592. package/lib/ocaml/stringLabels.cmti +0 -0
  593. package/lib/ocaml/stringLabels.ml +190 -0
  594. package/lib/ocaml/stringLabels.mli +241 -0
  595. package/lib/ocaml/sys.cmi +0 -0
  596. package/lib/ocaml/sys.cmt +0 -0
  597. package/lib/ocaml/sys.cmti +0 -0
  598. package/lib/ocaml/sys.ml +135 -0
  599. package/lib/ocaml/sys.mli +333 -0
  600. package/lib/ocaml/uchar.cmi +0 -0
  601. package/lib/ocaml/uchar.cmt +0 -0
  602. package/lib/ocaml/uchar.cmti +0 -0
  603. package/lib/ocaml/uchar.ml +58 -0
  604. package/lib/ocaml/uchar.mli +98 -0
  605. package/linux/bsb_helper.exe +0 -0
  606. package/linux/bsc.exe +0 -0
  607. package/linux/ninja.exe +0 -0
  608. package/linux/rescript.exe +0 -0
  609. package/ninja.COPYING +202 -0
  610. package/package.json +1 -1
  611. package/vendor/ninja.tar.gz +0 -0
  612. package/win32/bsb_helper.exe +0 -0
  613. package/win32/bsc.exe +0 -0
  614. package/win32/ninja.exe +0 -0
  615. package/win32/refmt.exe +0 -0
  616. package/win32/rescript.exe +0 -0
@@ -0,0 +1,480 @@
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
+ module type OrderedType =
17
+ sig
18
+ type t
19
+ val compare: t -> t -> int
20
+ end
21
+
22
+ module type S =
23
+ sig
24
+ type key
25
+ type +'a t
26
+ val empty: 'a t
27
+ val is_empty: 'a t -> bool
28
+ val mem: key -> 'a t -> bool
29
+ val add: key:key -> data:'a -> 'a t -> 'a t
30
+ val update: key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
31
+ val singleton: key -> 'a -> 'a t
32
+ val remove: key -> 'a t -> 'a t
33
+ val merge:
34
+ f:(key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
35
+ val union: f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
36
+ val compare: cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
37
+ val equal: cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
38
+ val iter: f:(key:key -> data:'a -> unit) -> 'a t -> unit
39
+ val fold: f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
40
+ val for_all: f:(key -> 'a -> bool) -> 'a t -> bool
41
+ val exists: f:(key -> 'a -> bool) -> 'a t -> bool
42
+ val filter: f:(key -> 'a -> bool) -> 'a t -> 'a t
43
+ val partition: f:(key -> 'a -> bool) -> 'a t -> 'a t * 'a t
44
+ val cardinal: 'a t -> int
45
+ val bindings: 'a t -> (key * 'a) list
46
+ val min_binding: 'a t -> (key * 'a)
47
+ val min_binding_opt: 'a t -> (key * 'a) option
48
+ val max_binding: 'a t -> (key * 'a)
49
+ val max_binding_opt: 'a t -> (key * 'a) option
50
+ val choose: 'a t -> (key * 'a)
51
+ val choose_opt: 'a t -> (key * 'a) option
52
+ val split: key -> 'a t -> 'a t * 'a option * 'a t
53
+ val find: key -> 'a t -> 'a
54
+ val find_opt: key -> 'a t -> 'a option
55
+ val find_first: f:(key -> bool) -> 'a t -> key * 'a
56
+ val find_first_opt: f:(key -> bool) -> 'a t -> (key * 'a) option
57
+ val find_last: f:(key -> bool) -> 'a t -> key * 'a
58
+ val find_last_opt: f:(key -> bool) -> 'a t -> (key * 'a) option
59
+ val map: f:('a -> 'b) -> 'a t -> 'b t
60
+ val mapi: f:(key -> 'a -> 'b) -> 'a t -> 'b t
61
+ end
62
+
63
+ module Make(Ord: OrderedType) = struct
64
+
65
+ type key = Ord.t
66
+
67
+ type 'a t =
68
+ Empty
69
+ | Node of {l:'a t; v:key; d:'a; r:'a t; h:int}
70
+
71
+ let height = function
72
+ Empty -> 0
73
+ | Node {h} -> h
74
+
75
+ let create l x d r =
76
+ let hl = height l and hr = height r in
77
+ Node{l; v=x; d; r; h=(if hl >= hr then hl + 1 else hr + 1)}
78
+
79
+ let singleton x d = Node{l=Empty; v=x; d; r=Empty; h=1}
80
+
81
+ let bal l x d r =
82
+ let hl = match l with Empty -> 0 | Node {h} -> h in
83
+ let hr = match r with Empty -> 0 | Node {h} -> h in
84
+ if hl > hr + 2 then begin
85
+ match l with
86
+ Empty -> invalid_arg "Map.bal"
87
+ | Node{l=ll; v=lv; d=ld; r=lr} ->
88
+ if height ll >= height lr then
89
+ create ll lv ld (create lr x d r)
90
+ else begin
91
+ match lr with
92
+ Empty -> invalid_arg "Map.bal"
93
+ | Node{l=lrl; v=lrv; d=lrd; r=lrr}->
94
+ create (create ll lv ld lrl) lrv lrd (create lrr x d r)
95
+ end
96
+ end else if hr > hl + 2 then begin
97
+ match r with
98
+ Empty -> invalid_arg "Map.bal"
99
+ | Node{l=rl; v=rv; d=rd; r=rr} ->
100
+ if height rr >= height rl then
101
+ create (create l x d rl) rv rd rr
102
+ else begin
103
+ match rl with
104
+ Empty -> invalid_arg "Map.bal"
105
+ | Node{l=rll; v=rlv; d=rld; r=rlr} ->
106
+ create (create l x d rll) rlv rld (create rlr rv rd rr)
107
+ end
108
+ end else
109
+ Node{l; v=x; d; r; h=(if hl >= hr then hl + 1 else hr + 1)}
110
+
111
+ let empty = Empty
112
+
113
+ let is_empty = function Empty -> true | _ -> false
114
+
115
+ let rec add ~key:x ~data = function
116
+ Empty ->
117
+ Node{l=Empty; v=x; d=data; r=Empty; h=1}
118
+ | Node {l; v; d; r; h} as m ->
119
+ let c = Ord.compare x v in
120
+ if c = 0 then
121
+ if d == data then m else Node{l; v=x; d=data; r; h}
122
+ else if c < 0 then
123
+ let ll = add ~key:x ~data l in
124
+ if l == ll then m else bal ll v d r
125
+ else
126
+ let rr = add ~key:x ~data r in
127
+ if r == rr then m else bal l v d rr
128
+
129
+ let rec find x = function
130
+ Empty ->
131
+ raise Not_found
132
+ | Node {l; v; d; r} ->
133
+ let c = Ord.compare x v in
134
+ if c = 0 then d
135
+ else find x (if c < 0 then l else r)
136
+
137
+ let rec find_first_aux v0 d0 f = function
138
+ Empty ->
139
+ (v0, d0)
140
+ | Node {l; v; d; r} ->
141
+ if f v then
142
+ find_first_aux v d f l
143
+ else
144
+ find_first_aux v0 d0 f r
145
+
146
+ let rec find_first ~f = function
147
+ Empty ->
148
+ raise Not_found
149
+ | Node {l; v; d; r} ->
150
+ if f v then
151
+ find_first_aux v d f l
152
+ else
153
+ find_first ~f r
154
+
155
+ let rec find_first_opt_aux v0 d0 f = function
156
+ Empty ->
157
+ Some (v0, d0)
158
+ | Node {l; v; d; r} ->
159
+ if f v then
160
+ find_first_opt_aux v d f l
161
+ else
162
+ find_first_opt_aux v0 d0 f r
163
+
164
+ let rec find_first_opt ~f = function
165
+ Empty ->
166
+ None
167
+ | Node {l; v; d; r} ->
168
+ if f v then
169
+ find_first_opt_aux v d f l
170
+ else
171
+ find_first_opt ~f r
172
+
173
+ let rec find_last_aux v0 d0 f = function
174
+ Empty ->
175
+ (v0, d0)
176
+ | Node {l; v; d; r} ->
177
+ if f v then
178
+ find_last_aux v d f r
179
+ else
180
+ find_last_aux v0 d0 f l
181
+
182
+ let rec find_last ~f = function
183
+ Empty ->
184
+ raise Not_found
185
+ | Node {l; v; d; r} ->
186
+ if f v then
187
+ find_last_aux v d f r
188
+ else
189
+ find_last ~f l
190
+
191
+ let rec find_last_opt_aux v0 d0 f = function
192
+ Empty ->
193
+ Some (v0, d0)
194
+ | Node {l; v; d; r} ->
195
+ if f v then
196
+ find_last_opt_aux v d f r
197
+ else
198
+ find_last_opt_aux v0 d0 f l
199
+
200
+ let rec find_last_opt ~f = function
201
+ Empty ->
202
+ None
203
+ | Node {l; v; d; r} ->
204
+ if f v then
205
+ find_last_opt_aux v d f r
206
+ else
207
+ find_last_opt ~f l
208
+
209
+ let rec find_opt x = function
210
+ Empty ->
211
+ None
212
+ | Node {l; v; d; r} ->
213
+ let c = Ord.compare x v in
214
+ if c = 0 then Some d
215
+ else find_opt x (if c < 0 then l else r)
216
+
217
+ let rec mem x = function
218
+ Empty ->
219
+ false
220
+ | Node {l; v; r} ->
221
+ let c = Ord.compare x v in
222
+ c = 0 || mem x (if c < 0 then l else r)
223
+
224
+ let rec min_binding = function
225
+ Empty -> raise Not_found
226
+ | Node {l=Empty; v; d} -> (v, d)
227
+ | Node {l} -> min_binding l
228
+
229
+ let rec min_binding_opt = function
230
+ Empty -> None
231
+ | Node {l=Empty; v; d} -> Some (v, d)
232
+ | Node {l}-> min_binding_opt l
233
+
234
+ let rec max_binding = function
235
+ Empty -> raise Not_found
236
+ | Node {v; d; r=Empty} -> (v, d)
237
+ | Node {r} -> max_binding r
238
+
239
+ let rec max_binding_opt = function
240
+ Empty -> None
241
+ | Node {v; d; r=Empty} -> Some (v, d)
242
+ | Node {r} -> max_binding_opt r
243
+
244
+ let rec remove_min_binding = function
245
+ Empty -> invalid_arg "Map.remove_min_elt"
246
+ | Node {l=Empty; r} -> r
247
+ | Node {l; v; d; r} -> bal (remove_min_binding l) v d r
248
+
249
+ let merge t1 t2 =
250
+ match (t1, t2) with
251
+ (Empty, t) -> t
252
+ | (t, Empty) -> t
253
+ | (_, _) ->
254
+ let (x, d) = min_binding t2 in
255
+ bal t1 x d (remove_min_binding t2)
256
+
257
+ let rec remove x = function
258
+ Empty ->
259
+ Empty
260
+ | (Node {l; v; d; r} as m) ->
261
+ let c = Ord.compare x v in
262
+ if c = 0 then merge l r
263
+ else if c < 0 then
264
+ let ll = remove x l in if l == ll then m else bal ll v d r
265
+ else
266
+ let rr = remove x r in if r == rr then m else bal l v d rr
267
+
268
+ let rec update ~key:x ~f = function
269
+ Empty ->
270
+ begin match f None with
271
+ | None -> Empty
272
+ | Some data -> Node{l=Empty; v=x; d=data; r=Empty; h=1}
273
+ end
274
+ | Node {l; v; d; r; h} as m ->
275
+ let c = Ord.compare x v in
276
+ if c = 0 then begin
277
+ match f (Some d) with
278
+ | None -> merge l r
279
+ | Some data ->
280
+ if d == data then m else Node{l; v=x; d=data; r; h}
281
+ end else if c < 0 then
282
+ let ll = update ~key:x ~f l in
283
+ if l == ll then m else bal ll v d r
284
+ else
285
+ let rr = update ~key:x ~f r in
286
+ if r == rr then m else bal l v d rr
287
+
288
+ let rec iter ~f = function
289
+ Empty -> ()
290
+ | Node {l; v; d; r} ->
291
+ iter ~f l; f ~key:v ~data:d; iter ~f r
292
+
293
+ let rec map ~f = function
294
+ Empty ->
295
+ Empty
296
+ | Node {l; v; d; r; h} ->
297
+ let l' = map ~f l in
298
+ let d' = f d in
299
+ let r' = map ~f r in
300
+ Node{l=l'; v; d=d'; r=r'; h}
301
+
302
+ let rec mapi ~f = function
303
+ Empty ->
304
+ Empty
305
+ | Node {l; v; d; r; h} ->
306
+ let l' = mapi ~f l in
307
+ let d' = f v d in
308
+ let r' = mapi ~f r in
309
+ Node{l=l'; v; d=d'; r=r'; h}
310
+
311
+ let rec fold ~f m ~init:accu =
312
+ match m with
313
+ Empty -> accu
314
+ | Node {l; v; d; r} ->
315
+ fold ~f r ~init:(f ~key:v ~data:d (fold ~f l ~init:accu))
316
+
317
+ let rec for_all ~f:p = function
318
+ Empty -> true
319
+ | Node {l; v; d; r} -> p v d && for_all ~f:p l && for_all ~f:p r
320
+
321
+ let rec exists ~f:p = function
322
+ Empty -> false
323
+ | Node {l; v; d; r} -> p v d || exists ~f:p l || exists ~f:p r
324
+
325
+ (* Beware: those two functions assume that the added k is *strictly*
326
+ smaller (or bigger) than all the present keys in the tree; it
327
+ does not test for equality with the current min (or max) key.
328
+
329
+ Indeed, they are only used during the "join" operation which
330
+ respects this precondition.
331
+ *)
332
+
333
+ let rec add_min_binding k x = function
334
+ | Empty -> singleton k x
335
+ | Node {l; v; d; r} ->
336
+ bal (add_min_binding k x l) v d r
337
+
338
+ let rec add_max_binding k x = function
339
+ | Empty -> singleton k x
340
+ | Node {l; v; d; r} ->
341
+ bal l v d (add_max_binding k x r)
342
+
343
+ (* Same as create and bal, but no assumptions are made on the
344
+ relative heights of l and r. *)
345
+
346
+ let rec join l v d r =
347
+ match (l, r) with
348
+ (Empty, _) -> add_min_binding v d r
349
+ | (_, Empty) -> add_max_binding v d l
350
+ | (Node{l=ll; v=lv; d=ld; r=lr; h=lh}, Node{l=rl; v=rv; d=rd; r=rr; h=rh}) ->
351
+ if lh > rh + 2 then bal ll lv ld (join lr v d r) else
352
+ if rh > lh + 2 then bal (join l v d rl) rv rd rr else
353
+ create l v d r
354
+
355
+ (* Merge two trees l and r into one.
356
+ All elements of l must precede the elements of r.
357
+ No assumption on the heights of l and r. *)
358
+
359
+ let concat t1 t2 =
360
+ match (t1, t2) with
361
+ (Empty, t) -> t
362
+ | (t, Empty) -> t
363
+ | (_, _) ->
364
+ let (x, d) = min_binding t2 in
365
+ join t1 x d (remove_min_binding t2)
366
+
367
+ let concat_or_join t1 v d t2 =
368
+ match d with
369
+ | Some d -> join t1 v d t2
370
+ | None -> concat t1 t2
371
+
372
+ let rec split x = function
373
+ Empty ->
374
+ (Empty, None, Empty)
375
+ | Node {l; v; d; r} ->
376
+ let c = Ord.compare x v in
377
+ if c = 0 then (l, Some d, r)
378
+ else if c < 0 then
379
+ let (ll, pres, rl) = split x l in (ll, pres, join rl v d r)
380
+ else
381
+ let (lr, pres, rr) = split x r in (join l v d lr, pres, rr)
382
+
383
+ let rec merge ~f s1 s2 =
384
+ match (s1, s2) with
385
+ (Empty, Empty) -> Empty
386
+ | (Node {l=l1; v=v1; d=d1; r=r1; h=h1}, _) when h1 >= height s2 ->
387
+ let (l2, d2, r2) = split v1 s2 in
388
+ concat_or_join (merge ~f l1 l2) v1 (f v1 (Some d1) d2) (merge ~f r1 r2)
389
+ | (_, Node {l=l2; v=v2; d=d2; r=r2}) ->
390
+ let (l1, d1, r1) = split v2 s1 in
391
+ concat_or_join (merge ~f l1 l2) v2 (f v2 d1 (Some d2)) (merge ~f r1 r2)
392
+ | _ ->
393
+ assert false
394
+
395
+ let rec union ~f s1 s2 =
396
+ match (s1, s2) with
397
+ | (Empty, s) | (s, Empty) -> s
398
+ | (Node {l=l1; v=v1; d=d1; r=r1; h=h1}, Node {l=l2; v=v2; d=d2; r=r2; h=h2}) ->
399
+ if h1 >= h2 then
400
+ let (l2, d2, r2) = split v1 s2 in
401
+ let l = union ~f l1 l2 and r = union ~f r1 r2 in
402
+ match d2 with
403
+ | None -> join l v1 d1 r
404
+ | Some d2 -> concat_or_join l v1 (f v1 d1 d2) r
405
+ else
406
+ let (l1, d1, r1) = split v2 s1 in
407
+ let l = union ~f l1 l2 and r = union ~f r1 r2 in
408
+ match d1 with
409
+ | None -> join l v2 d2 r
410
+ | Some d1 -> concat_or_join l v2 (f v2 d1 d2) r
411
+
412
+ let rec filter ~f:p = function
413
+ Empty -> Empty
414
+ | Node {l; v; d; r} as m ->
415
+ (* call [p] in the expected left-to-right order *)
416
+ let l' = filter ~f:p l in
417
+ let pvd = p v d in
418
+ let r' = filter ~f:p r in
419
+ if pvd then if l==l' && r==r' then m else join l' v d r'
420
+ else concat l' r'
421
+
422
+ let rec partition ~f:p = function
423
+ Empty -> (Empty, Empty)
424
+ | Node {l; v; d; r} ->
425
+ (* call [p] in the expected left-to-right order *)
426
+ let (lt, lf) = partition ~f:p l in
427
+ let pvd = p v d in
428
+ let (rt, rf) = partition ~f:p r in
429
+ if pvd
430
+ then (join lt v d rt, concat lf rf)
431
+ else (concat lt rt, join lf v d rf)
432
+
433
+ type 'a enumeration = End | More of key * 'a * 'a t * 'a enumeration
434
+
435
+ let rec cons_enum m e =
436
+ match m with
437
+ Empty -> e
438
+ | Node {l; v; d; r} -> cons_enum l (More(v, d, r, e))
439
+
440
+ let compare ~cmp m1 m2 =
441
+ let rec compare_aux e1 e2 =
442
+ match (e1, e2) with
443
+ (End, End) -> 0
444
+ | (End, _) -> -1
445
+ | (_, End) -> 1
446
+ | (More(v1, d1, r1, e1), More(v2, d2, r2, e2)) ->
447
+ let c = Ord.compare v1 v2 in
448
+ if c <> 0 then c else
449
+ let c = cmp d1 d2 in
450
+ if c <> 0 then c else
451
+ compare_aux (cons_enum r1 e1) (cons_enum r2 e2)
452
+ in compare_aux (cons_enum m1 End) (cons_enum m2 End)
453
+
454
+ let equal ~cmp m1 m2 =
455
+ let rec equal_aux e1 e2 =
456
+ match (e1, e2) with
457
+ (End, End) -> true
458
+ | (End, _) -> false
459
+ | (_, End) -> false
460
+ | (More(v1, d1, r1, e1), More(v2, d2, r2, e2)) ->
461
+ Ord.compare v1 v2 = 0 && cmp d1 d2 &&
462
+ equal_aux (cons_enum r1 e1) (cons_enum r2 e2)
463
+ in equal_aux (cons_enum m1 End) (cons_enum m2 End)
464
+
465
+ let rec cardinal = function
466
+ Empty -> 0
467
+ | Node {l; r} -> cardinal l + 1 + cardinal r
468
+
469
+ let rec bindings_aux accu = function
470
+ Empty -> accu
471
+ | Node {l; v; d; r} -> bindings_aux ((v, d) :: bindings_aux accu r) l
472
+
473
+ let bindings s =
474
+ bindings_aux [] s
475
+
476
+ let choose = min_binding
477
+
478
+ let choose_opt = min_binding_opt
479
+
480
+ end
@@ -0,0 +1,177 @@
1
+ #ifdef TYPE_INT
2
+ module I = Belt_internalMapInt
3
+ type key = int
4
+ #elif defined TYPE_STRING
5
+ module I = Belt_internalMapString
6
+ type key = string
7
+ #else
8
+ [%error "unknown type"]
9
+ #endif
10
+ module N = Belt_internalAVLtree
11
+ module A = Belt_Array
12
+
13
+
14
+
15
+
16
+ type 'a t = {
17
+ mutable data : 'a I.t
18
+ }
19
+
20
+
21
+ let make () = {data = None}
22
+ let isEmpty m = N.isEmpty m.data
23
+ let clear m = m.data<- None
24
+ (* let singleton k v = t ~data:(N.singleton k v) *)
25
+
26
+ let minKeyUndefined m = N.minKeyUndefined m.data
27
+ let minKey m = N.minKey m.data
28
+ let maxKeyUndefined m = N.maxKeyUndefined m.data
29
+ let maxKey m = N.maxKey m.data
30
+ let minimum m = N.minimum m.data
31
+ let minUndefined m = N.minUndefined m.data
32
+ let maximum m = N.maximum m.data
33
+ let maxUndefined m = N.maxUndefined m.data
34
+
35
+ let set (m : _ t) k v =
36
+ let old_data = m.data in
37
+ let v = I.addMutate old_data k v in
38
+ if v != old_data then
39
+ m.data <-v
40
+
41
+ let forEachU d f = N.forEachU d.data f
42
+ let forEach d f = forEachU d (fun[@bs] a b -> f a b)
43
+ let mapU d f = {data = N.mapU d.data f}
44
+ let map d f = mapU d (fun[@bs] a -> f a )
45
+ let mapWithKeyU d f = { data = (N.mapWithKeyU d.data f)}
46
+ let mapWithKey d f = mapWithKeyU d (fun [@bs] a b -> f a b)
47
+ let reduceU d acc f = N.reduceU d.data acc f
48
+ let reduce d acc f = reduceU d acc (fun[@bs] a b c -> f a b c)
49
+ let everyU d f = N.everyU d.data f
50
+ let every d f = everyU d (fun[@bs] a b -> f a b)
51
+ let someU d f = N.someU d.data f
52
+ let some d f = someU d (fun[@bs] a b -> f a b)
53
+ let size d = N.size d.data
54
+ let toList d = N.toList d.data
55
+ let toArray d = N.toArray d.data
56
+ let keysToArray d = N.keysToArray d.data
57
+ let valuesToArray d = N.valuesToArray d.data
58
+ let checkInvariantInternal d = N.checkInvariantInternal d.data
59
+ let has d v = I.has d.data v
60
+
61
+
62
+ let rec removeMutateAux nt (x : key)=
63
+ let k = nt.N.key in
64
+ if x = k then
65
+ let {N.left = l; right = r} = nt in
66
+ match l, r with
67
+ | None, _ -> r
68
+ | _, None -> l
69
+ | _, Some nr ->
70
+ nt.right <- (N.removeMinAuxWithRootMutate nt nr);
71
+ Some (N.balMutate nt)
72
+ else
73
+ begin
74
+ if x < k then
75
+ match nt.left with
76
+ | None -> Some nt
77
+ | Some l ->
78
+ nt.left <- (removeMutateAux l x );
79
+ Some (N.balMutate nt)
80
+ else
81
+ match nt.right with
82
+ | None -> Some nt
83
+ | Some r ->
84
+ nt.right <- (removeMutateAux r x);
85
+ Some (N.balMutate nt)
86
+ end
87
+
88
+ let remove d v =
89
+ let oldRoot = d.data in
90
+ match oldRoot with
91
+ | None -> ()
92
+ | Some root ->
93
+ let newRoot = removeMutateAux root v in
94
+ if newRoot != oldRoot then
95
+ d.data <- newRoot
96
+
97
+
98
+ let rec updateDone t (x : key) f =
99
+ match t with
100
+ | None ->
101
+ (match f None [@bs] with
102
+ | Some data -> N.singleton x data
103
+ | None -> t)
104
+ | Some nt ->
105
+ let k = nt.N.key in
106
+ (* let c = (Belt_Cmp.getCmpInternal cmp) x k [@bs] in *)
107
+ if k = x then begin
108
+ match f (Some nt.value) [@bs] with
109
+ | None ->
110
+ let {N.left = l; right = r} = nt in
111
+ begin match l, r with
112
+ | None, _ -> r
113
+ | _, None -> l
114
+ | _, Some nr ->
115
+ nt.right <- (N.removeMinAuxWithRootMutate nt nr);
116
+ Some (N.balMutate nt)
117
+ end
118
+ | Some data ->
119
+ nt.value <- data;
120
+ Some nt
121
+ end
122
+ else
123
+ let {N.left = l; right = r} = nt in
124
+ (if x < k then
125
+ let ll = updateDone l x f in
126
+ nt.left <- ll
127
+ else
128
+ nt.right <- (updateDone r x f);
129
+ );
130
+ Some (N.balMutate nt)
131
+
132
+ let updateU t x f =
133
+ let oldRoot = t.data in
134
+ let newRoot = updateDone oldRoot x f in
135
+ if newRoot != oldRoot then
136
+ t.data <- newRoot
137
+ let update t x f = updateU t x (fun[@bs] a -> f a )
138
+ let rec removeArrayMutateAux t xs i len =
139
+ if i < len then
140
+ let ele = A.getUnsafe xs i in
141
+ let u = removeMutateAux t ele in
142
+ match u with
143
+ | None -> None
144
+ | Some t -> removeArrayMutateAux t xs (i+1) len
145
+ else Some t
146
+
147
+ let removeMany (d : _ t) xs =
148
+ let oldRoot = d.data in
149
+ match oldRoot with
150
+ | None -> ()
151
+ | Some nt ->
152
+ let len = A.length xs in
153
+ let newRoot = removeArrayMutateAux nt xs 0 len in
154
+ if newRoot != oldRoot then
155
+ d.data <- newRoot
156
+
157
+
158
+
159
+ (* let split = I.split *)
160
+ (* let merge = I.merge *)
161
+
162
+
163
+ let fromArray xs =
164
+ { data = I.fromArray xs }
165
+
166
+ let cmpU d0 d1 f =
167
+ I.cmpU d0.data d1.data f
168
+ let cmp d0 d1 f = cmpU d0 d1 (fun[@bs] a b -> f a b)
169
+
170
+ let eqU d0 d1 f =
171
+ I.eqU d0.data d1.data f
172
+ let eq d0 d1 f = eqU d0 d1 (fun[@bs] a b -> f a b)
173
+
174
+ let get d x = I.get d.data x
175
+ let getUndefined d x = I.getUndefined d.data x
176
+ let getWithDefault d x def = I.getWithDefault d.data x def
177
+ let getExn d x = I.getExn d.data x