@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,526 +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
- (* Sets over ordered types *)
17
-
18
- module type OrderedType =
19
- sig
20
- type t
21
- val compare: t -> t -> int
22
- end
23
-
24
- module type S =
25
- sig
26
- type elt
27
- type t
28
- val empty: t
29
- val is_empty: t -> bool
30
- val mem: elt -> t -> bool
31
- val add: elt -> t -> t
32
- val singleton: elt -> t
33
- val remove: elt -> t -> t
34
- val union: t -> t -> t
35
- val inter: t -> t -> t
36
- val diff: t -> t -> t
37
- val compare: t -> t -> int
38
- val equal: t -> t -> bool
39
- val subset: t -> t -> bool
40
- val iter: f:(elt -> unit) -> t -> unit
41
- val map: f:(elt -> elt) -> t -> t
42
- val fold: f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
43
- val for_all: f:(elt -> bool) -> t -> bool
44
- val exists: f:(elt -> bool) -> t -> bool
45
- val filter: f:(elt -> bool) -> t -> t
46
- val partition: f:(elt -> bool) -> t -> t * t
47
- val cardinal: t -> int
48
- val elements: t -> elt list
49
- val min_elt: t -> elt
50
- val min_elt_opt: t -> elt option
51
- val max_elt: t -> elt
52
- val max_elt_opt: t -> elt option
53
- val choose: t -> elt
54
- val choose_opt: t -> elt option
55
- val split: elt -> t -> t * bool * t
56
- val find: elt -> t -> elt
57
- val find_opt: elt -> t -> elt option
58
- val find_first: f:(elt -> bool) -> t -> elt
59
- val find_first_opt: f:(elt -> bool) -> t -> elt option
60
- val find_last: f:(elt -> bool) -> t -> elt
61
- val find_last_opt: f:(elt -> bool) -> t -> elt option
62
- val of_list: elt list -> t
63
- end
64
-
65
- module Make(Ord: OrderedType) =
66
- struct
67
- type elt = Ord.t
68
- type t = Empty | Node of {l:t; v:elt; r:t; h:int}
69
-
70
- (* Sets are represented by balanced binary trees (the heights of the
71
- children differ by at most 2 *)
72
-
73
- let height = function
74
- Empty -> 0
75
- | Node {h} -> h
76
-
77
- (* Creates a new node with left son l, value v and right son r.
78
- We must have all elements of l < v < all elements of r.
79
- l and r must be balanced and | height l - height r | <= 2.
80
- Inline expansion of height for better speed. *)
81
-
82
- let create l v r =
83
- let hl = match l with Empty -> 0 | Node {h} -> h in
84
- let hr = match r with Empty -> 0 | Node {h} -> h in
85
- Node{l; v; r; h=(if hl >= hr then hl + 1 else hr + 1)}
86
-
87
- (* Same as create, but performs one step of rebalancing if necessary.
88
- Assumes l and r balanced and | height l - height r | <= 3.
89
- Inline expansion of create for better speed in the most frequent case
90
- where no rebalancing is required. *)
91
-
92
- let bal l v r =
93
- let hl = match l with Empty -> 0 | Node {h} -> h in
94
- let hr = match r with Empty -> 0 | Node {h} -> h in
95
- if hl > hr + 2 then begin
96
- match l with
97
- Empty -> invalid_arg "Set.bal"
98
- | Node{l=ll; v=lv; r=lr} ->
99
- if height ll >= height lr then
100
- create ll lv (create lr v r)
101
- else begin
102
- match lr with
103
- Empty -> invalid_arg "Set.bal"
104
- | Node{l=lrl; v=lrv; r=lrr}->
105
- create (create ll lv lrl) lrv (create lrr v r)
106
- end
107
- end else if hr > hl + 2 then begin
108
- match r with
109
- Empty -> invalid_arg "Set.bal"
110
- | Node{l=rl; v=rv; r=rr} ->
111
- if height rr >= height rl then
112
- create (create l v rl) rv rr
113
- else begin
114
- match rl with
115
- Empty -> invalid_arg "Set.bal"
116
- | Node{l=rll; v=rlv; r=rlr} ->
117
- create (create l v rll) rlv (create rlr rv rr)
118
- end
119
- end else
120
- Node{l; v; r; h=(if hl >= hr then hl + 1 else hr + 1)}
121
-
122
- (* Insertion of one element *)
123
-
124
- let rec add x = function
125
- Empty -> Node{l=Empty; v=x; r=Empty; h=1}
126
- | Node{l; v; r} as t ->
127
- let c = Ord.compare x v in
128
- if c = 0 then t else
129
- if c < 0 then
130
- let ll = add x l in
131
- if l == ll then t else bal ll v r
132
- else
133
- let rr = add x r in
134
- if r == rr then t else bal l v rr
135
-
136
- let singleton x = Node{l=Empty; v=x; r=Empty; h=1}
137
-
138
- (* Beware: those two functions assume that the added v is *strictly*
139
- smaller (or bigger) than all the present elements in the tree; it
140
- does not test for equality with the current min (or max) element.
141
- Indeed, they are only used during the "join" operation which
142
- respects this precondition.
143
- *)
144
-
145
- let rec add_min_element x = function
146
- | Empty -> singleton x
147
- | Node {l; v; r} ->
148
- bal (add_min_element x l) v r
149
-
150
- let rec add_max_element x = function
151
- | Empty -> singleton x
152
- | Node {l; v; r} ->
153
- bal l v (add_max_element x r)
154
-
155
- (* Same as create and bal, but no assumptions are made on the
156
- relative heights of l and r. *)
157
-
158
- let rec join l v r =
159
- match (l, r) with
160
- (Empty, _) -> add_min_element v r
161
- | (_, Empty) -> add_max_element v l
162
- | (Node{l=ll; v=lv; r=lr; h=lh}, Node{l=rl; v=rv; r=rr; h=rh}) ->
163
- if lh > rh + 2 then bal ll lv (join lr v r) else
164
- if rh > lh + 2 then bal (join l v rl) rv rr else
165
- create l v r
166
-
167
- (* Smallest and greatest element of a set *)
168
-
169
- let rec min_elt = function
170
- Empty -> raise Not_found
171
- | Node{l=Empty; v} -> v
172
- | Node{l} -> min_elt l
173
-
174
- let rec min_elt_opt = function
175
- Empty -> None
176
- | Node{l=Empty; v} -> Some v
177
- | Node{l} -> min_elt_opt l
178
-
179
- let rec max_elt = function
180
- Empty -> raise Not_found
181
- | Node{v; r=Empty} -> v
182
- | Node{r} -> max_elt r
183
-
184
- let rec max_elt_opt = function
185
- Empty -> None
186
- | Node{v; r=Empty} -> Some v
187
- | Node{r} -> max_elt_opt r
188
-
189
- (* Remove the smallest element of the given set *)
190
-
191
- let rec remove_min_elt = function
192
- Empty -> invalid_arg "Set.remove_min_elt"
193
- | Node{l=Empty; r} -> r
194
- | Node{l; v; r} -> bal (remove_min_elt l) v r
195
-
196
- (* Merge two trees l and r into one.
197
- All elements of l must precede the elements of r.
198
- Assume | height l - height r | <= 2. *)
199
-
200
- let merge t1 t2 =
201
- match (t1, t2) with
202
- (Empty, t) -> t
203
- | (t, Empty) -> t
204
- | (_, _) -> bal t1 (min_elt t2) (remove_min_elt t2)
205
-
206
- (* Merge two trees l and r into one.
207
- All elements of l must precede the elements of r.
208
- No assumption on the heights of l and r. *)
209
-
210
- let concat t1 t2 =
211
- match (t1, t2) with
212
- (Empty, t) -> t
213
- | (t, Empty) -> t
214
- | (_, _) -> join t1 (min_elt t2) (remove_min_elt t2)
215
-
216
- (* Splitting. split x s returns a triple (l, present, r) where
217
- - l is the set of elements of s that are < x
218
- - r is the set of elements of s that are > x
219
- - present is false if s contains no element equal to x,
220
- or true if s contains an element equal to x. *)
221
-
222
- let rec split x = function
223
- Empty ->
224
- (Empty, false, Empty)
225
- | Node{l; v; r} ->
226
- let c = Ord.compare x v in
227
- if c = 0 then (l, true, r)
228
- else if c < 0 then
229
- let (ll, pres, rl) = split x l in (ll, pres, join rl v r)
230
- else
231
- let (lr, pres, rr) = split x r in (join l v lr, pres, rr)
232
-
233
- (* Implementation of the set operations *)
234
-
235
- let empty = Empty
236
-
237
- let is_empty = function Empty -> true | _ -> false
238
-
239
- let rec mem x = function
240
- Empty -> false
241
- | Node{l; v; r} ->
242
- let c = Ord.compare x v in
243
- c = 0 || mem x (if c < 0 then l else r)
244
-
245
- let rec remove x = function
246
- Empty -> Empty
247
- | (Node{l; v; r} as t) ->
248
- let c = Ord.compare x v in
249
- if c = 0 then merge l r
250
- else
251
- if c < 0 then
252
- let ll = remove x l in
253
- if l == ll then t
254
- else bal ll v r
255
- else
256
- let rr = remove x r in
257
- if r == rr then t
258
- else bal l v rr
259
-
260
- let rec union s1 s2 =
261
- match (s1, s2) with
262
- (Empty, t2) -> t2
263
- | (t1, Empty) -> t1
264
- | (Node{l=l1; v=v1; r=r1; h=h1}, Node{l=l2; v=v2; r=r2; h=h2}) ->
265
- if h1 >= h2 then
266
- if h2 = 1 then add v2 s1 else begin
267
- let (l2, _, r2) = split v1 s2 in
268
- join (union l1 l2) v1 (union r1 r2)
269
- end
270
- else
271
- if h1 = 1 then add v1 s2 else begin
272
- let (l1, _, r1) = split v2 s1 in
273
- join (union l1 l2) v2 (union r1 r2)
274
- end
275
-
276
- let rec inter s1 s2 =
277
- match (s1, s2) with
278
- (Empty, _) -> Empty
279
- | (_, Empty) -> Empty
280
- | (Node{l=l1; v=v1; r=r1}, t2) ->
281
- match split v1 t2 with
282
- (l2, false, r2) ->
283
- concat (inter l1 l2) (inter r1 r2)
284
- | (l2, true, r2) ->
285
- join (inter l1 l2) v1 (inter r1 r2)
286
-
287
- let rec diff s1 s2 =
288
- match (s1, s2) with
289
- (Empty, _) -> Empty
290
- | (t1, Empty) -> t1
291
- | (Node{l=l1; v=v1; r=r1}, t2) ->
292
- match split v1 t2 with
293
- (l2, false, r2) ->
294
- join (diff l1 l2) v1 (diff r1 r2)
295
- | (l2, true, r2) ->
296
- concat (diff l1 l2) (diff r1 r2)
297
-
298
- type enumeration = End | More of elt * t * enumeration
299
-
300
- let rec cons_enum s e =
301
- match s with
302
- Empty -> e
303
- | Node{l; v; r} -> cons_enum l (More(v, r, e))
304
-
305
- let rec compare_aux e1 e2 =
306
- match (e1, e2) with
307
- (End, End) -> 0
308
- | (End, _) -> -1
309
- | (_, End) -> 1
310
- | (More(v1, r1, e1), More(v2, r2, e2)) ->
311
- let c = Ord.compare v1 v2 in
312
- if c <> 0
313
- then c
314
- else compare_aux (cons_enum r1 e1) (cons_enum r2 e2)
315
-
316
- let compare s1 s2 =
317
- compare_aux (cons_enum s1 End) (cons_enum s2 End)
318
-
319
- let equal s1 s2 =
320
- compare s1 s2 = 0
321
-
322
- let rec subset s1 s2 =
323
- match (s1, s2) with
324
- Empty, _ ->
325
- true
326
- | _, Empty ->
327
- false
328
- | Node {l=l1; v=v1; r=r1}, (Node {l=l2; v=v2; r=r2} as t2) ->
329
- let c = Ord.compare v1 v2 in
330
- if c = 0 then
331
- subset l1 l2 && subset r1 r2
332
- else if c < 0 then
333
- subset (Node {l=l1; v=v1; r=Empty; h=0}) l2 && subset r1 t2
334
- else
335
- subset (Node {l=Empty; v=v1; r=r1; h=0}) r2 && subset l1 t2
336
-
337
- let rec iter ~f = function
338
- Empty -> ()
339
- | Node{l; v; r} -> iter ~f l; f v; iter ~f r
340
-
341
- let rec fold ~f s ~init:accu =
342
- match s with
343
- Empty -> accu
344
- | Node{l; v; r} -> fold ~f r ~init:(f v (fold ~f l ~init:accu))
345
-
346
- let rec for_all ~f:p = function
347
- Empty -> true
348
- | Node{l; v; r} -> p v && for_all ~f:p l && for_all ~f:p r
349
-
350
- let rec exists ~f:p = function
351
- Empty -> false
352
- | Node{l; v; r} -> p v || exists ~f:p l || exists ~f:p r
353
-
354
- let rec filter ~f:p = function
355
- Empty -> Empty
356
- | (Node{l; v; r}) as t ->
357
- (* call [p] in the expected left-to-right order *)
358
- let l' = filter ~f:p l in
359
- let pv = p v in
360
- let r' = filter ~f:p r in
361
- if pv then
362
- if l==l' && r==r' then t else join l' v r'
363
- else concat l' r'
364
-
365
- let rec partition ~f:p = function
366
- Empty -> (Empty, Empty)
367
- | Node{l; v; r} ->
368
- (* call [p] in the expected left-to-right order *)
369
- let (lt, lf) = partition ~f:p l in
370
- let pv = p v in
371
- let (rt, rf) = partition ~f:p r in
372
- if pv
373
- then (join lt v rt, concat lf rf)
374
- else (concat lt rt, join lf v rf)
375
-
376
- let rec cardinal = function
377
- Empty -> 0
378
- | Node{l; r} -> cardinal l + 1 + cardinal r
379
-
380
- let rec elements_aux accu = function
381
- Empty -> accu
382
- | Node{l; v; r} -> elements_aux (v :: elements_aux accu r) l
383
-
384
- let elements s =
385
- elements_aux [] s
386
-
387
- let choose = min_elt
388
-
389
- let choose_opt = min_elt_opt
390
-
391
- let rec find x = function
392
- Empty -> raise Not_found
393
- | Node{l; v; r} ->
394
- let c = Ord.compare x v in
395
- if c = 0 then v
396
- else find x (if c < 0 then l else r)
397
-
398
- let rec find_first_aux v0 f = function
399
- Empty ->
400
- v0
401
- | Node{l; v; r} ->
402
- if f v then
403
- find_first_aux v f l
404
- else
405
- find_first_aux v0 f r
406
-
407
- let rec find_first ~f = function
408
- Empty ->
409
- raise Not_found
410
- | Node{l; v; r} ->
411
- if f v then
412
- find_first_aux v f l
413
- else
414
- find_first ~f r
415
-
416
- let rec find_first_opt_aux v0 f = function
417
- Empty ->
418
- Some v0
419
- | Node{l; v; r} ->
420
- if f v then
421
- find_first_opt_aux v f l
422
- else
423
- find_first_opt_aux v0 f r
424
-
425
- let rec find_first_opt ~f = function
426
- Empty ->
427
- None
428
- | Node{l; v; r} ->
429
- if f v then
430
- find_first_opt_aux v f l
431
- else
432
- find_first_opt ~f r
433
-
434
- let rec find_last_aux v0 f = function
435
- Empty ->
436
- v0
437
- | Node{l; v; r} ->
438
- if f v then
439
- find_last_aux v f r
440
- else
441
- find_last_aux v0 f l
442
-
443
- let rec find_last ~f = function
444
- Empty ->
445
- raise Not_found
446
- | Node{l; v; r} ->
447
- if f v then
448
- find_last_aux v f r
449
- else
450
- find_last ~f l
451
-
452
- let rec find_last_opt_aux v0 f = function
453
- Empty ->
454
- Some v0
455
- | Node{l; v; r} ->
456
- if f v then
457
- find_last_opt_aux v f r
458
- else
459
- find_last_opt_aux v0 f l
460
-
461
- let rec find_last_opt ~f = function
462
- Empty ->
463
- None
464
- | Node{l; v; r} ->
465
- if f v then
466
- find_last_opt_aux v f r
467
- else
468
- find_last_opt ~f l
469
-
470
- let rec find_opt x = function
471
- Empty -> None
472
- | Node{l; v; r} ->
473
- let c = Ord.compare x v in
474
- if c = 0 then Some v
475
- else find_opt x (if c < 0 then l else r)
476
-
477
- let try_join l v r =
478
- (* [join l v r] can only be called when (elements of l < v <
479
- elements of r); use [try_join l v r] when this property may
480
- not hold, but you hope it does hold in the common case *)
481
- if (l = Empty || Ord.compare (max_elt l) v < 0)
482
- && (r = Empty || Ord.compare v (min_elt r) < 0)
483
- then join l v r
484
- else union l (add v r)
485
-
486
- let rec map ~f = function
487
- | Empty -> Empty
488
- | Node{l; v; r} as t ->
489
- (* enforce left-to-right evaluation order *)
490
- let l' = map ~f l in
491
- let v' = f v in
492
- let r' = map ~f r in
493
- if l == l' && v == v' && r == r' then t
494
- else try_join l' v' r'
495
-
496
- let of_sorted_list l =
497
- let rec sub n l =
498
- match n, l with
499
- | 0, l -> Empty, l
500
- | 1, x0 :: l -> Node {l=Empty; v=x0; r=Empty; h=1}, l
501
- | 2, x0 :: x1 :: l ->
502
- Node{l=Node{l=Empty; v=x0; r=Empty; h=1}; v=x1; r=Empty; h=2}, l
503
- | 3, x0 :: x1 :: x2 :: l ->
504
- Node{l=Node{l=Empty; v=x0; r=Empty; h=1}; v=x1;
505
- r=Node{l=Empty; v=x2; r=Empty; h=1}; h=2}, l
506
- | n, l ->
507
- let nl = n / 2 in
508
- let left, l = sub nl l in
509
- match l with
510
- | [] -> assert false
511
- | mid :: l ->
512
- let right, l = sub (n - nl - 1) l in
513
- create left mid right, l
514
- in
515
- fst (sub (List.length l) l)
516
-
517
- let of_list l =
518
- match l with
519
- | [] -> empty
520
- | [x0] -> singleton x0
521
- | [x0; x1] -> add x1 (singleton x0)
522
- | [x0; x1; x2] -> add x2 (add x1 (singleton x0))
523
- | [x0; x1; x2; x3] -> add x3 (add x2 (add x1 (singleton x0)))
524
- | [x0; x1; x2; x3; x4] -> add x4 (add x3 (add x2 (add x1 (singleton x0))))
525
- | _ -> of_sorted_list (List.sort_uniq Ord.compare l)
526
- end