@tellahq/rescript 10.1.0-alpha.2 → 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 (668) hide show
  1. package/CHANGELOG.md +204 -2
  2. package/README.md +1 -1
  3. package/darwinarm64/bsb_helper.exe +0 -0
  4. package/darwinarm64/bsc.exe +0 -0
  5. package/darwinarm64/ninja.exe +0 -0
  6. package/darwinarm64/rescript.exe +0 -0
  7. package/docs/docson/build-schema.json +497 -516
  8. package/lib/4.06.1/bsb_helper.ml +6 -1
  9. package/lib/4.06.1/rescript.ml +1414 -1191
  10. package/lib/4.06.1/whole_compiler.ml +69844 -69069
  11. package/lib/es6/belt_internalBuckets.js +13 -13
  12. package/lib/es6/caml_float.js +5 -5
  13. package/lib/es6/caml_format.js +1 -1
  14. package/lib/es6/caml_int64.js +1 -1
  15. package/lib/es6/caml_obj.js +26 -6
  16. package/lib/es6/complex.js +4 -4
  17. package/lib/es6/js.js +3 -0
  18. package/lib/es6/js_promise2.js +16 -0
  19. package/lib/es6/jsxPPXReactSupport.js +26 -0
  20. package/lib/js/belt_internalBuckets.js +13 -13
  21. package/lib/js/caml_float.js +5 -5
  22. package/lib/js/caml_format.js +1 -1
  23. package/lib/js/caml_int64.js +1 -1
  24. package/lib/js/caml_obj.js +26 -6
  25. package/lib/js/complex.js +4 -4
  26. package/lib/js/js.js +3 -0
  27. package/lib/js/js_promise2.js +14 -0
  28. package/lib/js/jsxPPXReactSupport.js +24 -0
  29. package/package.json +2 -1
  30. package/scripts/buildNinjaBinary.js +29 -0
  31. package/scripts/install.js +7 -3
  32. package/scripts/installUtils.js +9 -1
  33. package/scripts/rescript_arg.js +2 -4
  34. package/scripts/rescript_format.js +73 -39
  35. package/win32/refmt.exe +0 -0
  36. package/darwin/bsb_helper.exe +0 -0
  37. package/darwin/bsc.exe +0 -0
  38. package/darwin/ninja.COPYING +0 -202
  39. package/darwin/ninja.exe +0 -0
  40. package/darwin/rescript.exe +0 -0
  41. package/darwinarm64/ninja.COPYING +0 -202
  42. package/freebsd/ninja.COPYING +0 -202
  43. package/lib/ocaml/arg.cmi +0 -0
  44. package/lib/ocaml/arg.cmt +0 -0
  45. package/lib/ocaml/arg.cmti +0 -0
  46. package/lib/ocaml/arg.ml +0 -359
  47. package/lib/ocaml/arg.mli +0 -185
  48. package/lib/ocaml/array.cmi +0 -0
  49. package/lib/ocaml/array.cmt +0 -0
  50. package/lib/ocaml/array.cmti +0 -0
  51. package/lib/ocaml/array.ml +0 -307
  52. package/lib/ocaml/array.mli +0 -275
  53. package/lib/ocaml/arrayLabels.cmi +0 -0
  54. package/lib/ocaml/arrayLabels.cmt +0 -0
  55. package/lib/ocaml/arrayLabels.cmti +0 -0
  56. package/lib/ocaml/arrayLabels.ml +0 -307
  57. package/lib/ocaml/arrayLabels.mli +0 -276
  58. package/lib/ocaml/belt.cmi +0 -0
  59. package/lib/ocaml/belt.cmt +0 -0
  60. package/lib/ocaml/belt.ml +0 -352
  61. package/lib/ocaml/belt_Array.cmi +0 -0
  62. package/lib/ocaml/belt_Array.cmt +0 -0
  63. package/lib/ocaml/belt_Array.cmti +0 -0
  64. package/lib/ocaml/belt_Array.ml +0 -525
  65. package/lib/ocaml/belt_Array.mli +0 -707
  66. package/lib/ocaml/belt_Float.cmi +0 -0
  67. package/lib/ocaml/belt_Float.cmt +0 -0
  68. package/lib/ocaml/belt_Float.cmti +0 -0
  69. package/lib/ocaml/belt_Float.ml +0 -50
  70. package/lib/ocaml/belt_Float.mli +0 -106
  71. package/lib/ocaml/belt_HashMap.cmi +0 -0
  72. package/lib/ocaml/belt_HashMap.cmt +0 -0
  73. package/lib/ocaml/belt_HashMap.cmti +0 -0
  74. package/lib/ocaml/belt_HashMap.ml +0 -226
  75. package/lib/ocaml/belt_HashMap.mli +0 -436
  76. package/lib/ocaml/belt_HashMapInt.cmi +0 -0
  77. package/lib/ocaml/belt_HashMapInt.cmt +0 -0
  78. package/lib/ocaml/belt_HashMapInt.cmti +0 -0
  79. package/lib/ocaml/belt_HashMapInt.ml +0 -206
  80. package/lib/ocaml/belt_HashMapInt.mli +0 -50
  81. package/lib/ocaml/belt_HashMapString.cmi +0 -0
  82. package/lib/ocaml/belt_HashMapString.cmt +0 -0
  83. package/lib/ocaml/belt_HashMapString.cmti +0 -0
  84. package/lib/ocaml/belt_HashMapString.ml +0 -206
  85. package/lib/ocaml/belt_HashMapString.mli +0 -50
  86. package/lib/ocaml/belt_HashSet.cmi +0 -0
  87. package/lib/ocaml/belt_HashSet.cmt +0 -0
  88. package/lib/ocaml/belt_HashSet.cmti +0 -0
  89. package/lib/ocaml/belt_HashSet.ml +0 -196
  90. package/lib/ocaml/belt_HashSet.mli +0 -125
  91. package/lib/ocaml/belt_HashSetInt.cmi +0 -0
  92. package/lib/ocaml/belt_HashSetInt.cmt +0 -0
  93. package/lib/ocaml/belt_HashSetInt.cmti +0 -0
  94. package/lib/ocaml/belt_HashSetInt.ml +0 -155
  95. package/lib/ocaml/belt_HashSetInt.mli +0 -74
  96. package/lib/ocaml/belt_HashSetString.cmi +0 -0
  97. package/lib/ocaml/belt_HashSetString.cmt +0 -0
  98. package/lib/ocaml/belt_HashSetString.cmti +0 -0
  99. package/lib/ocaml/belt_HashSetString.ml +0 -156
  100. package/lib/ocaml/belt_HashSetString.mli +0 -74
  101. package/lib/ocaml/belt_Id.cmi +0 -0
  102. package/lib/ocaml/belt_Id.cmt +0 -0
  103. package/lib/ocaml/belt_Id.cmti +0 -0
  104. package/lib/ocaml/belt_Id.ml +0 -133
  105. package/lib/ocaml/belt_Id.mli +0 -171
  106. package/lib/ocaml/belt_Int.cmi +0 -0
  107. package/lib/ocaml/belt_Int.cmt +0 -0
  108. package/lib/ocaml/belt_Int.cmti +0 -0
  109. package/lib/ocaml/belt_Int.ml +0 -50
  110. package/lib/ocaml/belt_Int.mli +0 -103
  111. package/lib/ocaml/belt_List.cmi +0 -0
  112. package/lib/ocaml/belt_List.cmt +0 -0
  113. package/lib/ocaml/belt_List.cmti +0 -0
  114. package/lib/ocaml/belt_List.ml +0 -803
  115. package/lib/ocaml/belt_List.mli +0 -844
  116. package/lib/ocaml/belt_Map.cmi +0 -0
  117. package/lib/ocaml/belt_Map.cmt +0 -0
  118. package/lib/ocaml/belt_Map.cmti +0 -0
  119. package/lib/ocaml/belt_Map.ml +0 -170
  120. package/lib/ocaml/belt_Map.mli +0 -496
  121. package/lib/ocaml/belt_MapDict.cmi +0 -0
  122. package/lib/ocaml/belt_MapDict.cmt +0 -0
  123. package/lib/ocaml/belt_MapDict.cmti +0 -0
  124. package/lib/ocaml/belt_MapDict.ml +0 -278
  125. package/lib/ocaml/belt_MapDict.mli +0 -268
  126. package/lib/ocaml/belt_MapInt.cmi +0 -0
  127. package/lib/ocaml/belt_MapInt.cmt +0 -0
  128. package/lib/ocaml/belt_MapInt.cmti +0 -0
  129. package/lib/ocaml/belt_MapInt.ml +0 -169
  130. package/lib/ocaml/belt_MapInt.mli +0 -187
  131. package/lib/ocaml/belt_MapString.cmi +0 -0
  132. package/lib/ocaml/belt_MapString.cmt +0 -0
  133. package/lib/ocaml/belt_MapString.cmti +0 -0
  134. package/lib/ocaml/belt_MapString.ml +0 -169
  135. package/lib/ocaml/belt_MapString.mli +0 -187
  136. package/lib/ocaml/belt_MutableMap.cmi +0 -0
  137. package/lib/ocaml/belt_MutableMap.cmt +0 -0
  138. package/lib/ocaml/belt_MutableMap.cmti +0 -0
  139. package/lib/ocaml/belt_MutableMap.ml +0 -241
  140. package/lib/ocaml/belt_MutableMap.mli +0 -145
  141. package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
  142. package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
  143. package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
  144. package/lib/ocaml/belt_MutableMapInt.ml +0 -172
  145. package/lib/ocaml/belt_MutableMapInt.mli +0 -135
  146. package/lib/ocaml/belt_MutableMapString.cmi +0 -0
  147. package/lib/ocaml/belt_MutableMapString.cmt +0 -0
  148. package/lib/ocaml/belt_MutableMapString.cmti +0 -0
  149. package/lib/ocaml/belt_MutableMapString.ml +0 -172
  150. package/lib/ocaml/belt_MutableMapString.mli +0 -135
  151. package/lib/ocaml/belt_MutableQueue.cmi +0 -0
  152. package/lib/ocaml/belt_MutableQueue.cmt +0 -0
  153. package/lib/ocaml/belt_MutableQueue.cmti +0 -0
  154. package/lib/ocaml/belt_MutableQueue.ml +0 -222
  155. package/lib/ocaml/belt_MutableQueue.mli +0 -116
  156. package/lib/ocaml/belt_MutableSet.cmi +0 -0
  157. package/lib/ocaml/belt_MutableSet.cmt +0 -0
  158. package/lib/ocaml/belt_MutableSet.cmti +0 -0
  159. package/lib/ocaml/belt_MutableSet.ml +0 -371
  160. package/lib/ocaml/belt_MutableSet.mli +0 -617
  161. package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
  162. package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
  163. package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
  164. package/lib/ocaml/belt_MutableSetInt.ml +0 -342
  165. package/lib/ocaml/belt_MutableSetInt.mli +0 -124
  166. package/lib/ocaml/belt_MutableSetString.cmi +0 -0
  167. package/lib/ocaml/belt_MutableSetString.cmt +0 -0
  168. package/lib/ocaml/belt_MutableSetString.cmti +0 -0
  169. package/lib/ocaml/belt_MutableSetString.ml +0 -342
  170. package/lib/ocaml/belt_MutableSetString.mli +0 -124
  171. package/lib/ocaml/belt_MutableStack.cmi +0 -0
  172. package/lib/ocaml/belt_MutableStack.cmt +0 -0
  173. package/lib/ocaml/belt_MutableStack.cmti +0 -0
  174. package/lib/ocaml/belt_MutableStack.ml +0 -106
  175. package/lib/ocaml/belt_MutableStack.mli +0 -63
  176. package/lib/ocaml/belt_Option.cmi +0 -0
  177. package/lib/ocaml/belt_Option.cmt +0 -0
  178. package/lib/ocaml/belt_Option.cmti +0 -0
  179. package/lib/ocaml/belt_Option.ml +0 -93
  180. package/lib/ocaml/belt_Option.mli +0 -270
  181. package/lib/ocaml/belt_Range.cmi +0 -0
  182. package/lib/ocaml/belt_Range.cmt +0 -0
  183. package/lib/ocaml/belt_Range.cmti +0 -0
  184. package/lib/ocaml/belt_Range.ml +0 -76
  185. package/lib/ocaml/belt_Range.mli +0 -114
  186. package/lib/ocaml/belt_Result.cmi +0 -0
  187. package/lib/ocaml/belt_Result.cmt +0 -0
  188. package/lib/ocaml/belt_Result.cmti +0 -0
  189. package/lib/ocaml/belt_Result.ml +0 -75
  190. package/lib/ocaml/belt_Result.mli +0 -205
  191. package/lib/ocaml/belt_Set.cmi +0 -0
  192. package/lib/ocaml/belt_Set.cmt +0 -0
  193. package/lib/ocaml/belt_Set.cmti +0 -0
  194. package/lib/ocaml/belt_Set.cppo.ml +0 -205
  195. package/lib/ocaml/belt_Set.cppo.mli +0 -153
  196. package/lib/ocaml/belt_Set.ml +0 -164
  197. package/lib/ocaml/belt_Set.mli +0 -523
  198. package/lib/ocaml/belt_SetDict.cmi +0 -0
  199. package/lib/ocaml/belt_SetDict.cmt +0 -0
  200. package/lib/ocaml/belt_SetDict.cmti +0 -0
  201. package/lib/ocaml/belt_SetDict.ml +0 -237
  202. package/lib/ocaml/belt_SetDict.mli +0 -567
  203. package/lib/ocaml/belt_SetInt.cmi +0 -0
  204. package/lib/ocaml/belt_SetInt.cmt +0 -0
  205. package/lib/ocaml/belt_SetInt.cmti +0 -0
  206. package/lib/ocaml/belt_SetInt.ml +0 -201
  207. package/lib/ocaml/belt_SetInt.mli +0 -151
  208. package/lib/ocaml/belt_SetString.cmi +0 -0
  209. package/lib/ocaml/belt_SetString.cmt +0 -0
  210. package/lib/ocaml/belt_SetString.cmti +0 -0
  211. package/lib/ocaml/belt_SetString.ml +0 -201
  212. package/lib/ocaml/belt_SetString.mli +0 -151
  213. package/lib/ocaml/belt_SortArray.cmi +0 -0
  214. package/lib/ocaml/belt_SortArray.cmt +0 -0
  215. package/lib/ocaml/belt_SortArray.cmti +0 -0
  216. package/lib/ocaml/belt_SortArray.ml +0 -322
  217. package/lib/ocaml/belt_SortArray.mli +0 -146
  218. package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
  219. package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
  220. package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
  221. package/lib/ocaml/belt_SortArrayInt.ml +0 -263
  222. package/lib/ocaml/belt_SortArrayInt.mli +0 -93
  223. package/lib/ocaml/belt_SortArrayString.cmi +0 -0
  224. package/lib/ocaml/belt_SortArrayString.cmt +0 -0
  225. package/lib/ocaml/belt_SortArrayString.cmti +0 -0
  226. package/lib/ocaml/belt_SortArrayString.ml +0 -263
  227. package/lib/ocaml/belt_SortArrayString.mli +0 -93
  228. package/lib/ocaml/belt_internalAVLset.cmt +0 -0
  229. package/lib/ocaml/belt_internalAVLset.cmti +0 -0
  230. package/lib/ocaml/belt_internalAVLset.ml +0 -665
  231. package/lib/ocaml/belt_internalAVLset.mli +0 -124
  232. package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
  233. package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
  234. package/lib/ocaml/belt_internalAVLtree.ml +0 -762
  235. package/lib/ocaml/belt_internalAVLtree.mli +0 -215
  236. package/lib/ocaml/belt_internalBuckets.cmt +0 -0
  237. package/lib/ocaml/belt_internalBuckets.cmti +0 -0
  238. package/lib/ocaml/belt_internalBuckets.ml +0 -218
  239. package/lib/ocaml/belt_internalBuckets.mli +0 -57
  240. package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
  241. package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
  242. package/lib/ocaml/belt_internalBucketsType.ml +0 -59
  243. package/lib/ocaml/belt_internalBucketsType.mli +0 -46
  244. package/lib/ocaml/belt_internalMapInt.cmt +0 -0
  245. package/lib/ocaml/belt_internalMapInt.ml +0 -227
  246. package/lib/ocaml/belt_internalMapString.cmt +0 -0
  247. package/lib/ocaml/belt_internalMapString.ml +0 -227
  248. package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
  249. package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
  250. package/lib/ocaml/belt_internalSetBuckets.ml +0 -157
  251. package/lib/ocaml/belt_internalSetBuckets.mli +0 -47
  252. package/lib/ocaml/belt_internalSetInt.cmt +0 -0
  253. package/lib/ocaml/belt_internalSetInt.ml +0 -129
  254. package/lib/ocaml/belt_internalSetString.cmt +0 -0
  255. package/lib/ocaml/belt_internalSetString.ml +0 -129
  256. package/lib/ocaml/belt_internals.cmti +0 -0
  257. package/lib/ocaml/belt_internals.mli +0 -79
  258. package/lib/ocaml/buffer.cmi +0 -0
  259. package/lib/ocaml/buffer.cmt +0 -0
  260. package/lib/ocaml/buffer.cmti +0 -0
  261. package/lib/ocaml/buffer.ml +0 -250
  262. package/lib/ocaml/buffer.mli +0 -149
  263. package/lib/ocaml/bytes.cmi +0 -0
  264. package/lib/ocaml/bytes.cmt +0 -0
  265. package/lib/ocaml/bytes.cmti +0 -0
  266. package/lib/ocaml/bytes.ml +0 -431
  267. package/lib/ocaml/bytes.mli +0 -430
  268. package/lib/ocaml/bytesLabels.cmi +0 -0
  269. package/lib/ocaml/bytesLabels.cmt +0 -0
  270. package/lib/ocaml/bytesLabels.cmti +0 -0
  271. package/lib/ocaml/bytesLabels.ml +0 -428
  272. package/lib/ocaml/bytesLabels.mli +0 -276
  273. package/lib/ocaml/callback.cmi +0 -0
  274. package/lib/ocaml/callback.cmt +0 -0
  275. package/lib/ocaml/callback.cmti +0 -0
  276. package/lib/ocaml/callback.ml +0 -20
  277. package/lib/ocaml/callback.mli +0 -34
  278. package/lib/ocaml/camlinternalLazy.cmi +0 -0
  279. package/lib/ocaml/camlinternalLazy.cmt +0 -0
  280. package/lib/ocaml/camlinternalLazy.cmti +0 -0
  281. package/lib/ocaml/camlinternalLazy.ml +0 -89
  282. package/lib/ocaml/camlinternalLazy.mli +0 -27
  283. package/lib/ocaml/camlinternalMod.cmi +0 -0
  284. package/lib/ocaml/camlinternalMod.cmt +0 -0
  285. package/lib/ocaml/camlinternalMod.cmti +0 -0
  286. package/lib/ocaml/camlinternalMod.ml +0 -21
  287. package/lib/ocaml/camlinternalMod.mli +0 -25
  288. package/lib/ocaml/char.cmi +0 -0
  289. package/lib/ocaml/char.cmt +0 -0
  290. package/lib/ocaml/char.cmti +0 -0
  291. package/lib/ocaml/char.ml +0 -76
  292. package/lib/ocaml/char.mli +0 -72
  293. package/lib/ocaml/complex.cmi +0 -0
  294. package/lib/ocaml/complex.cmt +0 -0
  295. package/lib/ocaml/complex.cmti +0 -0
  296. package/lib/ocaml/complex.ml +0 -87
  297. package/lib/ocaml/complex.mli +0 -86
  298. package/lib/ocaml/digest.cmi +0 -0
  299. package/lib/ocaml/digest.cmt +0 -0
  300. package/lib/ocaml/digest.cmti +0 -0
  301. package/lib/ocaml/digest.ml +0 -66
  302. package/lib/ocaml/digest.mli +0 -68
  303. package/lib/ocaml/dom.cmi +0 -0
  304. package/lib/ocaml/dom.cmt +0 -0
  305. package/lib/ocaml/dom.ml +0 -296
  306. package/lib/ocaml/dom_storage.cmi +0 -0
  307. package/lib/ocaml/dom_storage.cmt +0 -0
  308. package/lib/ocaml/dom_storage.ml +0 -22
  309. package/lib/ocaml/dom_storage2.cmi +0 -0
  310. package/lib/ocaml/dom_storage2.cmt +0 -0
  311. package/lib/ocaml/dom_storage2.ml +0 -11
  312. package/lib/ocaml/filename.cmi +0 -0
  313. package/lib/ocaml/filename.cmt +0 -0
  314. package/lib/ocaml/filename.cmti +0 -0
  315. package/lib/ocaml/filename.ml +0 -233
  316. package/lib/ocaml/filename.mli +0 -134
  317. package/lib/ocaml/genlex.cmi +0 -0
  318. package/lib/ocaml/genlex.cmt +0 -0
  319. package/lib/ocaml/genlex.cmti +0 -0
  320. package/lib/ocaml/genlex.ml +0 -201
  321. package/lib/ocaml/genlex.mli +0 -73
  322. package/lib/ocaml/hashmap.cppo.ml +0 -214
  323. package/lib/ocaml/hashmap.cppo.mli +0 -54
  324. package/lib/ocaml/hashset.cppo.ml +0 -165
  325. package/lib/ocaml/hashset.cppo.mli +0 -77
  326. package/lib/ocaml/hashtbl.cmi +0 -0
  327. package/lib/ocaml/hashtbl.cmt +0 -0
  328. package/lib/ocaml/hashtbl.cmti +0 -0
  329. package/lib/ocaml/hashtbl.ml +0 -541
  330. package/lib/ocaml/hashtbl.mli +0 -411
  331. package/lib/ocaml/hashtblLabels.cmi +0 -0
  332. package/lib/ocaml/hashtblLabels.cmt +0 -0
  333. package/lib/ocaml/hashtblLabels.ml +0 -130
  334. package/lib/ocaml/int32.cmi +0 -0
  335. package/lib/ocaml/int32.cmt +0 -0
  336. package/lib/ocaml/int32.cmti +0 -0
  337. package/lib/ocaml/int32.ml +0 -64
  338. package/lib/ocaml/int32.mli +0 -186
  339. package/lib/ocaml/int64.cmi +0 -0
  340. package/lib/ocaml/int64.cmt +0 -0
  341. package/lib/ocaml/int64.cmti +0 -0
  342. package/lib/ocaml/int64.ml +0 -72
  343. package/lib/ocaml/int64.mli +0 -197
  344. package/lib/ocaml/internal_map.cppo.ml +0 -230
  345. package/lib/ocaml/internal_set.cppo.ml +0 -134
  346. package/lib/ocaml/js.cmi +0 -0
  347. package/lib/ocaml/js.cmt +0 -0
  348. package/lib/ocaml/js.ml +0 -313
  349. package/lib/ocaml/js_OO.cmi +0 -0
  350. package/lib/ocaml/js_OO.cmt +0 -0
  351. package/lib/ocaml/js_OO.ml +0 -180
  352. package/lib/ocaml/js_array.cmi +0 -0
  353. package/lib/ocaml/js_array.cmt +0 -0
  354. package/lib/ocaml/js_array.ml +0 -970
  355. package/lib/ocaml/js_array2.cmi +0 -0
  356. package/lib/ocaml/js_array2.cmt +0 -0
  357. package/lib/ocaml/js_array2.ml +0 -1065
  358. package/lib/ocaml/js_bigint.cmi +0 -0
  359. package/lib/ocaml/js_bigint.cmt +0 -0
  360. package/lib/ocaml/js_bigint.ml +0 -3
  361. package/lib/ocaml/js_cast.cmi +0 -0
  362. package/lib/ocaml/js_cast.cmt +0 -0
  363. package/lib/ocaml/js_cast.cmti +0 -0
  364. package/lib/ocaml/js_cast.ml +0 -29
  365. package/lib/ocaml/js_cast.mli +0 -45
  366. package/lib/ocaml/js_console.cmi +0 -0
  367. package/lib/ocaml/js_console.cmt +0 -0
  368. package/lib/ocaml/js_console.ml +0 -51
  369. package/lib/ocaml/js_date.cmi +0 -0
  370. package/lib/ocaml/js_date.cmt +0 -0
  371. package/lib/ocaml/js_date.ml +0 -1263
  372. package/lib/ocaml/js_dict.cmi +0 -0
  373. package/lib/ocaml/js_dict.cmt +0 -0
  374. package/lib/ocaml/js_dict.cmti +0 -0
  375. package/lib/ocaml/js_dict.ml +0 -114
  376. package/lib/ocaml/js_dict.mli +0 -152
  377. package/lib/ocaml/js_exn.cmi +0 -0
  378. package/lib/ocaml/js_exn.cmt +0 -0
  379. package/lib/ocaml/js_exn.cmti +0 -0
  380. package/lib/ocaml/js_exn.ml +0 -102
  381. package/lib/ocaml/js_exn.mli +0 -79
  382. package/lib/ocaml/js_float.cmi +0 -0
  383. package/lib/ocaml/js_float.cmt +0 -0
  384. package/lib/ocaml/js_float.ml +0 -294
  385. package/lib/ocaml/js_global.cmi +0 -0
  386. package/lib/ocaml/js_global.cmt +0 -0
  387. package/lib/ocaml/js_global.ml +0 -185
  388. package/lib/ocaml/js_int.cmi +0 -0
  389. package/lib/ocaml/js_int.cmt +0 -0
  390. package/lib/ocaml/js_int.ml +0 -158
  391. package/lib/ocaml/js_json.cmi +0 -0
  392. package/lib/ocaml/js_json.cmt +0 -0
  393. package/lib/ocaml/js_json.cmti +0 -0
  394. package/lib/ocaml/js_json.ml +0 -195
  395. package/lib/ocaml/js_json.mli +0 -244
  396. package/lib/ocaml/js_list.cmi +0 -0
  397. package/lib/ocaml/js_list.cmt +0 -0
  398. package/lib/ocaml/js_list.cmti +0 -0
  399. package/lib/ocaml/js_list.ml +0 -174
  400. package/lib/ocaml/js_list.mli +0 -72
  401. package/lib/ocaml/js_map.cmi +0 -0
  402. package/lib/ocaml/js_map.cmt +0 -0
  403. package/lib/ocaml/js_map.ml +0 -3
  404. package/lib/ocaml/js_mapperRt.cmi +0 -0
  405. package/lib/ocaml/js_mapperRt.cmt +0 -0
  406. package/lib/ocaml/js_mapperRt.cmti +0 -0
  407. package/lib/ocaml/js_mapperRt.ml +0 -50
  408. package/lib/ocaml/js_mapperRt.mli +0 -44
  409. package/lib/ocaml/js_math.cmi +0 -0
  410. package/lib/ocaml/js_math.cmt +0 -0
  411. package/lib/ocaml/js_math.ml +0 -626
  412. package/lib/ocaml/js_null.cmi +0 -0
  413. package/lib/ocaml/js_null.cmt +0 -0
  414. package/lib/ocaml/js_null.cmti +0 -0
  415. package/lib/ocaml/js_null.ml +0 -57
  416. package/lib/ocaml/js_null.mli +0 -87
  417. package/lib/ocaml/js_null_undefined.cmi +0 -0
  418. package/lib/ocaml/js_null_undefined.cmt +0 -0
  419. package/lib/ocaml/js_null_undefined.cmti +0 -0
  420. package/lib/ocaml/js_null_undefined.ml +0 -50
  421. package/lib/ocaml/js_null_undefined.mli +0 -85
  422. package/lib/ocaml/js_obj.cmi +0 -0
  423. package/lib/ocaml/js_obj.cmt +0 -0
  424. package/lib/ocaml/js_obj.ml +0 -100
  425. package/lib/ocaml/js_option.cmi +0 -0
  426. package/lib/ocaml/js_option.cmt +0 -0
  427. package/lib/ocaml/js_option.cmti +0 -0
  428. package/lib/ocaml/js_option.ml +0 -203
  429. package/lib/ocaml/js_option.mli +0 -52
  430. package/lib/ocaml/js_promise.cmi +0 -0
  431. package/lib/ocaml/js_promise.cmt +0 -0
  432. package/lib/ocaml/js_promise.ml +0 -100
  433. package/lib/ocaml/js_re.cmi +0 -0
  434. package/lib/ocaml/js_re.cmt +0 -0
  435. package/lib/ocaml/js_re.ml +0 -184
  436. package/lib/ocaml/js_result.cmi +0 -0
  437. package/lib/ocaml/js_result.cmt +0 -0
  438. package/lib/ocaml/js_result.cmti +0 -0
  439. package/lib/ocaml/js_result.ml +0 -28
  440. package/lib/ocaml/js_result.mli +0 -28
  441. package/lib/ocaml/js_set.cmi +0 -0
  442. package/lib/ocaml/js_set.cmt +0 -0
  443. package/lib/ocaml/js_set.ml +0 -3
  444. package/lib/ocaml/js_string.cmi +0 -0
  445. package/lib/ocaml/js_string.cmt +0 -0
  446. package/lib/ocaml/js_string.ml +0 -914
  447. package/lib/ocaml/js_string2.cmi +0 -0
  448. package/lib/ocaml/js_string2.cmt +0 -0
  449. package/lib/ocaml/js_string2.ml +0 -912
  450. package/lib/ocaml/js_typed_array.cmi +0 -0
  451. package/lib/ocaml/js_typed_array.cmt +0 -0
  452. package/lib/ocaml/js_typed_array.cppo.ml +0 -429
  453. package/lib/ocaml/js_typed_array.ml +0 -1405
  454. package/lib/ocaml/js_typed_array2.cmi +0 -0
  455. package/lib/ocaml/js_typed_array2.cmt +0 -0
  456. package/lib/ocaml/js_typed_array2.cppo.ml +0 -296
  457. package/lib/ocaml/js_typed_array2.ml +0 -1269
  458. package/lib/ocaml/js_types.cmi +0 -0
  459. package/lib/ocaml/js_types.cmt +0 -0
  460. package/lib/ocaml/js_types.cmti +0 -0
  461. package/lib/ocaml/js_types.ml +0 -118
  462. package/lib/ocaml/js_types.mli +0 -78
  463. package/lib/ocaml/js_undefined.cmi +0 -0
  464. package/lib/ocaml/js_undefined.cmt +0 -0
  465. package/lib/ocaml/js_undefined.cmti +0 -0
  466. package/lib/ocaml/js_undefined.ml +0 -59
  467. package/lib/ocaml/js_undefined.mli +0 -92
  468. package/lib/ocaml/js_vector.cmi +0 -0
  469. package/lib/ocaml/js_vector.cmt +0 -0
  470. package/lib/ocaml/js_vector.cmti +0 -0
  471. package/lib/ocaml/js_vector.ml +0 -143
  472. package/lib/ocaml/js_vector.mli +0 -92
  473. package/lib/ocaml/js_weakmap.cmi +0 -0
  474. package/lib/ocaml/js_weakmap.cmt +0 -0
  475. package/lib/ocaml/js_weakmap.ml +0 -3
  476. package/lib/ocaml/js_weakset.cmi +0 -0
  477. package/lib/ocaml/js_weakset.cmt +0 -0
  478. package/lib/ocaml/js_weakset.ml +0 -3
  479. package/lib/ocaml/jsx.cmi +0 -0
  480. package/lib/ocaml/jsx.cmt +0 -0
  481. package/lib/ocaml/jsx.ml +0 -39
  482. package/lib/ocaml/jsxDOM.cmi +0 -0
  483. package/lib/ocaml/jsxDOM.cmt +0 -0
  484. package/lib/ocaml/jsxDOM.ml +0 -2087
  485. package/lib/ocaml/jsxDOMStyle.cmi +0 -0
  486. package/lib/ocaml/jsxDOMStyle.cmt +0 -0
  487. package/lib/ocaml/jsxDOMStyle.ml +0 -777
  488. package/lib/ocaml/jsxEvent.cmi +0 -0
  489. package/lib/ocaml/jsxEvent.cmt +0 -0
  490. package/lib/ocaml/jsxEvent.ml +0 -358
  491. package/lib/ocaml/lazy.cmi +0 -0
  492. package/lib/ocaml/lazy.cmt +0 -0
  493. package/lib/ocaml/lazy.cmti +0 -0
  494. package/lib/ocaml/lazy.ml +0 -70
  495. package/lib/ocaml/lazy.mli +0 -95
  496. package/lib/ocaml/lexing.cmi +0 -0
  497. package/lib/ocaml/lexing.cmt +0 -0
  498. package/lib/ocaml/lexing.cmti +0 -0
  499. package/lib/ocaml/lexing.ml +0 -230
  500. package/lib/ocaml/lexing.mli +0 -172
  501. package/lib/ocaml/list.cmi +0 -0
  502. package/lib/ocaml/list.cmt +0 -0
  503. package/lib/ocaml/list.cmti +0 -0
  504. package/lib/ocaml/list.ml +0 -485
  505. package/lib/ocaml/list.mli +0 -347
  506. package/lib/ocaml/listLabels.cmi +0 -0
  507. package/lib/ocaml/listLabels.cmt +0 -0
  508. package/lib/ocaml/listLabels.cmti +0 -0
  509. package/lib/ocaml/listLabels.ml +0 -485
  510. package/lib/ocaml/listLabels.mli +0 -353
  511. package/lib/ocaml/map.cmi +0 -0
  512. package/lib/ocaml/map.cmt +0 -0
  513. package/lib/ocaml/map.cmti +0 -0
  514. package/lib/ocaml/map.cppo.ml +0 -174
  515. package/lib/ocaml/map.cppo.mli +0 -191
  516. package/lib/ocaml/map.ml +0 -480
  517. package/lib/ocaml/map.mli +0 -315
  518. package/lib/ocaml/mapLabels.cmi +0 -0
  519. package/lib/ocaml/mapLabels.cmt +0 -0
  520. package/lib/ocaml/mapLabels.ml +0 -480
  521. package/lib/ocaml/mapm.cppo.ml +0 -177
  522. package/lib/ocaml/mapm.cppo.mli +0 -138
  523. package/lib/ocaml/moreLabels.cmi +0 -0
  524. package/lib/ocaml/moreLabels.cmt +0 -0
  525. package/lib/ocaml/moreLabels.cmti +0 -0
  526. package/lib/ocaml/moreLabels.ml +0 -22
  527. package/lib/ocaml/moreLabels.mli +0 -198
  528. package/lib/ocaml/node.cmi +0 -0
  529. package/lib/ocaml/node.cmt +0 -0
  530. package/lib/ocaml/node.ml +0 -84
  531. package/lib/ocaml/node_buffer.cmi +0 -0
  532. package/lib/ocaml/node_buffer.cmt +0 -0
  533. package/lib/ocaml/node_buffer.ml +0 -47
  534. package/lib/ocaml/node_child_process.cmi +0 -0
  535. package/lib/ocaml/node_child_process.cmt +0 -0
  536. package/lib/ocaml/node_child_process.ml +0 -50
  537. package/lib/ocaml/node_fs.cmi +0 -0
  538. package/lib/ocaml/node_fs.cmt +0 -0
  539. package/lib/ocaml/node_fs.ml +0 -153
  540. package/lib/ocaml/node_module.cmi +0 -0
  541. package/lib/ocaml/node_module.cmt +0 -0
  542. package/lib/ocaml/node_module.ml +0 -29
  543. package/lib/ocaml/node_path.cmi +0 -0
  544. package/lib/ocaml/node_path.cmt +0 -0
  545. package/lib/ocaml/node_path.ml +0 -71
  546. package/lib/ocaml/node_process.cmi +0 -0
  547. package/lib/ocaml/node_process.cmt +0 -0
  548. package/lib/ocaml/node_process.cmti +0 -0
  549. package/lib/ocaml/node_process.ml +0 -59
  550. package/lib/ocaml/node_process.mli +0 -48
  551. package/lib/ocaml/obj.cmi +0 -0
  552. package/lib/ocaml/obj.cmt +0 -0
  553. package/lib/ocaml/obj.cmti +0 -0
  554. package/lib/ocaml/obj.ml +0 -29
  555. package/lib/ocaml/obj.mli +0 -62
  556. package/lib/ocaml/parsing.cmi +0 -0
  557. package/lib/ocaml/parsing.cmt +0 -0
  558. package/lib/ocaml/parsing.cmti +0 -0
  559. package/lib/ocaml/parsing.ml +0 -212
  560. package/lib/ocaml/parsing.mli +0 -105
  561. package/lib/ocaml/pervasives.cmi +0 -0
  562. package/lib/ocaml/pervasives.cmt +0 -0
  563. package/lib/ocaml/pervasives.cmti +0 -0
  564. package/lib/ocaml/pervasives.ml +0 -297
  565. package/lib/ocaml/pervasives.mli +0 -771
  566. package/lib/ocaml/printexc.cmi +0 -0
  567. package/lib/ocaml/printexc.cmt +0 -0
  568. package/lib/ocaml/printexc.cmti +0 -0
  569. package/lib/ocaml/printexc.ml +0 -79
  570. package/lib/ocaml/printexc.mli +0 -57
  571. package/lib/ocaml/queue.cmi +0 -0
  572. package/lib/ocaml/queue.cmt +0 -0
  573. package/lib/ocaml/queue.cmti +0 -0
  574. package/lib/ocaml/queue.ml +0 -132
  575. package/lib/ocaml/queue.mli +0 -82
  576. package/lib/ocaml/random.cmi +0 -0
  577. package/lib/ocaml/random.cmt +0 -0
  578. package/lib/ocaml/random.cmti +0 -0
  579. package/lib/ocaml/random.ml +0 -273
  580. package/lib/ocaml/random.mli +0 -102
  581. package/lib/ocaml/set.cmi +0 -0
  582. package/lib/ocaml/set.cmt +0 -0
  583. package/lib/ocaml/set.cmti +0 -0
  584. package/lib/ocaml/set.ml +0 -526
  585. package/lib/ocaml/set.mli +0 -266
  586. package/lib/ocaml/setLabels.cmi +0 -0
  587. package/lib/ocaml/setLabels.cmt +0 -0
  588. package/lib/ocaml/setLabels.ml +0 -526
  589. package/lib/ocaml/setm.cppo.ml +0 -346
  590. package/lib/ocaml/setm.cppo.mli +0 -126
  591. package/lib/ocaml/sort.cmi +0 -0
  592. package/lib/ocaml/sort.cmt +0 -0
  593. package/lib/ocaml/sort.cmti +0 -0
  594. package/lib/ocaml/sort.cppo.ml +0 -267
  595. package/lib/ocaml/sort.cppo.mli +0 -96
  596. package/lib/ocaml/sort.ml +0 -99
  597. package/lib/ocaml/sort.mli +0 -44
  598. package/lib/ocaml/stack.cmi +0 -0
  599. package/lib/ocaml/stack.cmt +0 -0
  600. package/lib/ocaml/stack.cmti +0 -0
  601. package/lib/ocaml/stack.ml +0 -44
  602. package/lib/ocaml/stack.mli +0 -63
  603. package/lib/ocaml/stdLabels.cmi +0 -0
  604. package/lib/ocaml/stdLabels.cmt +0 -0
  605. package/lib/ocaml/stdLabels.cmti +0 -0
  606. package/lib/ocaml/stdLabels.ml +0 -24
  607. package/lib/ocaml/stdLabels.mli +0 -29
  608. package/lib/ocaml/stream.cmi +0 -0
  609. package/lib/ocaml/stream.cmt +0 -0
  610. package/lib/ocaml/stream.cmti +0 -0
  611. package/lib/ocaml/stream.ml +0 -213
  612. package/lib/ocaml/stream.mli +0 -108
  613. package/lib/ocaml/string.cmi +0 -0
  614. package/lib/ocaml/string.cmt +0 -0
  615. package/lib/ocaml/string.cmti +0 -0
  616. package/lib/ocaml/string.ml +0 -190
  617. package/lib/ocaml/string.mli +0 -286
  618. package/lib/ocaml/stringLabels.cmi +0 -0
  619. package/lib/ocaml/stringLabels.cmt +0 -0
  620. package/lib/ocaml/stringLabels.cmti +0 -0
  621. package/lib/ocaml/stringLabels.ml +0 -190
  622. package/lib/ocaml/stringLabels.mli +0 -241
  623. package/lib/ocaml/sys.cmi +0 -0
  624. package/lib/ocaml/sys.cmt +0 -0
  625. package/lib/ocaml/sys.cmti +0 -0
  626. package/lib/ocaml/sys.ml +0 -135
  627. package/lib/ocaml/sys.mli +0 -333
  628. package/lib/ocaml/uchar.cmi +0 -0
  629. package/lib/ocaml/uchar.cmt +0 -0
  630. package/lib/ocaml/uchar.cmti +0 -0
  631. package/lib/ocaml/uchar.ml +0 -58
  632. package/lib/ocaml/uchar.mli +0 -98
  633. package/linux/bsb_helper.exe +0 -0
  634. package/linux/bsc.exe +0 -0
  635. package/linux/ninja.COPYING +0 -202
  636. package/linux/ninja.exe +0 -0
  637. package/linux/rescript.exe +0 -0
  638. package/openbsd/.keep +0 -0
  639. package/scripts/LICENSE.ml +0 -27
  640. package/scripts/buckle_lto.js +0 -55
  641. package/scripts/build_sorted.ml +0 -233
  642. package/scripts/caml_oo_curry_gen.ml +0 -71
  643. package/scripts/checkUnused.js +0 -63
  644. package/scripts/ciTest.js +0 -172
  645. package/scripts/cover.sh +0 -3
  646. package/scripts/curry_gen.ml +0 -167
  647. package/scripts/dbg +0 -13
  648. package/scripts/dedupe.js +0 -44
  649. package/scripts/doc_gen.js +0 -117
  650. package/scripts/js_internal_gen.js +0 -135
  651. package/scripts/jsconfig.json +0 -12
  652. package/scripts/littlecase.js +0 -21
  653. package/scripts/ninja.js +0 -1980
  654. package/scripts/pack.js +0 -107
  655. package/scripts/prebuilt.js +0 -99
  656. package/scripts/release.js +0 -41
  657. package/scripts/repl.js +0 -151
  658. package/scripts/shake.js +0 -138
  659. package/scripts/tasks.js +0 -149
  660. package/scripts/test.sh +0 -3
  661. package/scripts/tmp.js +0 -98
  662. package/scripts/validate.js +0 -41
  663. package/vendor/ninja.tar.gz +0 -0
  664. package/win32/bsb_helper.exe +0 -0
  665. package/win32/bsc.exe +0 -0
  666. package/win32/ninja.COPYING +0 -202
  667. package/win32/ninja.exe +0 -0
  668. package/win32/rescript.exe +0 -0
@@ -1,485 +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
- (* List operations *)
17
-
18
- let rec length_aux len = function
19
- [] -> len
20
- | _::l -> length_aux (len + 1) l
21
-
22
- let length l = length_aux 0 l
23
-
24
- let cons a l = a::l
25
-
26
- let hd = function
27
- [] -> failwith "hd"
28
- | a::_ -> a
29
-
30
- let tl = function
31
- [] -> failwith "tl"
32
- | _::l -> l
33
-
34
- let nth l n =
35
- if n < 0 then invalid_arg "List.nth" else
36
- let rec nth_aux l n =
37
- match l with
38
- | [] -> failwith "nth"
39
- | a::l -> if n = 0 then a else nth_aux l (n-1)
40
- in nth_aux l n
41
-
42
- let nth_opt l n =
43
- if n < 0 then invalid_arg "List.nth" else
44
- let rec nth_aux l n =
45
- match l with
46
- | [] -> None
47
- | a::l -> if n = 0 then Some a else nth_aux l (n-1)
48
- in nth_aux l n
49
-
50
- let append = (@)
51
-
52
- let rec rev_append l1 l2 =
53
- match l1 with
54
- [] -> l2
55
- | a :: l -> rev_append l (a :: l2)
56
-
57
- let rev l = rev_append l []
58
-
59
- let rec init_tailrec_aux acc i n f =
60
- if i >= n then acc
61
- else init_tailrec_aux (f i :: acc) (i+1) n f
62
-
63
- let rec init_aux i n f =
64
- if i >= n then []
65
- else
66
- let r = f i in
67
- r :: init_aux (i+1) n f
68
-
69
- let init ~len ~f =
70
- if len < 0 then invalid_arg "List.init" else
71
- if len > 10_000 then rev (init_tailrec_aux [] 0 len f)
72
- else init_aux 0 len f
73
-
74
- let rec flatten = function
75
- [] -> []
76
- | l::r -> l @ flatten r
77
-
78
- let concat = flatten
79
-
80
- let rec map ~f = function
81
- [] -> []
82
- | a::l -> let r = f a in r :: map ~f l
83
-
84
- let rec mapi i f = function
85
- [] -> []
86
- | a::l -> let r = f i a in r :: mapi (i + 1) f l
87
-
88
- let mapi ~f l = mapi 0 f l
89
-
90
- let rev_map ~f l =
91
- let rec rmap_f accu = function
92
- | [] -> accu
93
- | a::l -> rmap_f (f a :: accu) l
94
- in
95
- rmap_f [] l
96
-
97
-
98
- let rec iter ~f = function
99
- [] -> ()
100
- | a::l -> f a; iter ~f l
101
-
102
- let rec iteri i f = function
103
- [] -> ()
104
- | a::l -> f i a; iteri (i + 1) f l
105
-
106
- let iteri ~f l = iteri 0 f l
107
-
108
- let rec fold_left ~f ~init:accu l =
109
- match l with
110
- [] -> accu
111
- | a::l -> fold_left ~f ~init:(f accu a) l
112
-
113
- let rec fold_right ~f l ~init:accu =
114
- match l with
115
- [] -> accu
116
- | a::l -> f a (fold_right ~f l ~init:accu)
117
-
118
- let rec map2 ~f l1 l2 =
119
- match (l1, l2) with
120
- ([], []) -> []
121
- | (a1::l1, a2::l2) -> let r = f a1 a2 in r :: map2 ~f l1 l2
122
- | (_, _) -> invalid_arg "List.map2"
123
-
124
- let rev_map2 ~f l1 l2 =
125
- let rec rmap2_f accu l1 l2 =
126
- match (l1, l2) with
127
- | ([], []) -> accu
128
- | (a1::l1, a2::l2) -> rmap2_f (f a1 a2 :: accu) l1 l2
129
- | (_, _) -> invalid_arg "List.rev_map2"
130
- in
131
- rmap2_f [] l1 l2
132
-
133
-
134
- let rec iter2 ~f l1 l2 =
135
- match (l1, l2) with
136
- ([], []) -> ()
137
- | (a1::l1, a2::l2) -> f a1 a2; iter2 ~f l1 l2
138
- | (_, _) -> invalid_arg "List.iter2"
139
-
140
- let rec fold_left2 ~f ~init:accu l1 l2 =
141
- match (l1, l2) with
142
- ([], []) -> accu
143
- | (a1::l1, a2::l2) -> fold_left2 ~f ~init:(f accu a1 a2) l1 l2
144
- | (_, _) -> invalid_arg "List.fold_left2"
145
-
146
- let rec fold_right2 ~f l1 l2 ~init:accu =
147
- match (l1, l2) with
148
- ([], []) -> accu
149
- | (a1::l1, a2::l2) -> f a1 a2 (fold_right2 ~f l1 l2 ~init:accu)
150
- | (_, _) -> invalid_arg "List.fold_right2"
151
-
152
- let rec for_all ~f:p = function
153
- [] -> true
154
- | a::l -> p a && for_all ~f:p l
155
-
156
- let rec exists ~f:p = function
157
- [] -> false
158
- | a::l -> p a || exists ~f:p l
159
-
160
- let rec for_all2 ~f:p l1 l2 =
161
- match (l1, l2) with
162
- ([], []) -> true
163
- | (a1::l1, a2::l2) -> p a1 a2 && for_all2 ~f:p l1 l2
164
- | (_, _) -> invalid_arg "List.for_all2"
165
-
166
- let rec exists2 ~f:p l1 l2 =
167
- match (l1, l2) with
168
- ([], []) -> false
169
- | (a1::l1, a2::l2) -> p a1 a2 || exists2 ~f:p l1 l2
170
- | (_, _) -> invalid_arg "List.exists2"
171
-
172
- let rec mem x ~set = match set with
173
- [] -> false
174
- | a::l -> compare a x = 0 || mem x ~set:l
175
-
176
- let rec memq x ~set = match set with
177
- [] -> false
178
- | a::l -> a == x || memq x ~set:l
179
-
180
- let rec assoc x = function
181
- [] -> raise Not_found
182
- | (a,b)::l -> if compare a x = 0 then b else assoc x l
183
-
184
- let rec assoc_opt x = function
185
- [] -> None
186
- | (a,b)::l -> if compare a x = 0 then Some b else assoc_opt x l
187
-
188
- let rec assq x = function
189
- [] -> raise Not_found
190
- | (a,b)::l -> if a == x then b else assq x l
191
-
192
- let rec assq_opt x = function
193
- [] -> None
194
- | (a,b)::l -> if a == x then Some b else assq_opt x l
195
-
196
- let rec mem_assoc x ~map = match map with
197
- | [] -> false
198
- | (a, _) :: l -> compare a x = 0 || mem_assoc x ~map:l
199
-
200
- let rec mem_assq x ~map = match map with
201
- | [] -> false
202
- | (a, _) :: l -> a == x || mem_assq x ~map:l
203
-
204
- let rec remove_assoc x = function
205
- | [] -> []
206
- | (a, _ as pair) :: l ->
207
- if compare a x = 0 then l else pair :: remove_assoc x l
208
-
209
- let rec remove_assq x = function
210
- | [] -> []
211
- | (a, _ as pair) :: l -> if a == x then l else pair :: remove_assq x l
212
-
213
- let rec find ~f:p = function
214
- | [] -> raise Not_found
215
- | x :: l -> if p x then x else find ~f:p l
216
-
217
- let rec find_opt ~f:p = function
218
- | [] -> None
219
- | x :: l -> if p x then Some x else find_opt ~f:p l
220
-
221
- let find_all ~f:p =
222
- let rec find accu = function
223
- | [] -> rev accu
224
- | x :: l -> if p x then find (x :: accu) l else find accu l in
225
- find []
226
-
227
- let filter = find_all
228
-
229
- let partition ~f:p l =
230
- let rec part yes no = function
231
- | [] -> (rev yes, rev no)
232
- | x :: l -> if p x then part (x :: yes) no l else part yes (x :: no) l in
233
- part [] [] l
234
-
235
- let rec split = function
236
- [] -> ([], [])
237
- | (x,y)::l ->
238
- let (rx, ry) = split l in (x::rx, y::ry)
239
-
240
- let rec combine l1 l2 =
241
- match (l1, l2) with
242
- ([], []) -> []
243
- | (a1::l1, a2::l2) -> (a1, a2) :: combine l1 l2
244
- | (_, _) -> invalid_arg "List.combine"
245
-
246
- (** sorting *)
247
-
248
- let rec merge ~cmp l1 l2 =
249
- match l1, l2 with
250
- | [], l2 -> l2
251
- | l1, [] -> l1
252
- | h1 :: t1, h2 :: t2 ->
253
- if cmp h1 h2 <= 0
254
- then h1 :: merge ~cmp t1 l2
255
- else h2 :: merge ~cmp l1 t2
256
-
257
-
258
- let rec chop k l =
259
- if k = 0 then l else begin
260
- match l with
261
- | _::t -> chop (k-1) t
262
- | _ -> assert false
263
- end
264
-
265
-
266
- let stable_sort ~cmp l =
267
- let rec rev_merge l1 l2 accu =
268
- match l1, l2 with
269
- | [], l2 -> rev_append l2 accu
270
- | l1, [] -> rev_append l1 accu
271
- | h1::t1, h2::t2 ->
272
- if cmp h1 h2 <= 0
273
- then rev_merge t1 l2 (h1::accu)
274
- else rev_merge l1 t2 (h2::accu)
275
- in
276
- let rec rev_merge_rev l1 l2 accu =
277
- match l1, l2 with
278
- | [], l2 -> rev_append l2 accu
279
- | l1, [] -> rev_append l1 accu
280
- | h1::t1, h2::t2 ->
281
- if cmp h1 h2 > 0
282
- then rev_merge_rev t1 l2 (h1::accu)
283
- else rev_merge_rev l1 t2 (h2::accu)
284
- in
285
- let rec sort n l =
286
- match n, l with
287
- | 2, x1 :: x2 :: _ ->
288
- if cmp x1 x2 <= 0 then [x1; x2] else [x2; x1]
289
- | 3, x1 :: x2 :: x3 :: _ ->
290
- if cmp x1 x2 <= 0 then begin
291
- if cmp x2 x3 <= 0 then [x1; x2; x3]
292
- else if cmp x1 x3 <= 0 then [x1; x3; x2]
293
- else [x3; x1; x2]
294
- end else begin
295
- if cmp x1 x3 <= 0 then [x2; x1; x3]
296
- else if cmp x2 x3 <= 0 then [x2; x3; x1]
297
- else [x3; x2; x1]
298
- end
299
- | n, l ->
300
- let n1 = n asr 1 in
301
- let n2 = n - n1 in
302
- let l2 = chop n1 l in
303
- let s1 = rev_sort n1 l in
304
- let s2 = rev_sort n2 l2 in
305
- rev_merge_rev s1 s2 []
306
- and rev_sort n l =
307
- match n, l with
308
- | 2, x1 :: x2 :: _ ->
309
- if cmp x1 x2 > 0 then [x1; x2] else [x2; x1]
310
- | 3, x1 :: x2 :: x3 :: _ ->
311
- if cmp x1 x2 > 0 then begin
312
- if cmp x2 x3 > 0 then [x1; x2; x3]
313
- else if cmp x1 x3 > 0 then [x1; x3; x2]
314
- else [x3; x1; x2]
315
- end else begin
316
- if cmp x1 x3 > 0 then [x2; x1; x3]
317
- else if cmp x2 x3 > 0 then [x2; x3; x1]
318
- else [x3; x2; x1]
319
- end
320
- | n, l ->
321
- let n1 = n asr 1 in
322
- let n2 = n - n1 in
323
- let l2 = chop n1 l in
324
- let s1 = sort n1 l in
325
- let s2 = sort n2 l2 in
326
- rev_merge s1 s2 []
327
- in
328
- let len = length l in
329
- if len < 2 then l else sort len l
330
-
331
-
332
- let sort = stable_sort
333
- let fast_sort = stable_sort
334
-
335
- (* Note: on a list of length between about 100000 (depending on the minor
336
- heap size and the type of the list) and Sys.max_array_size, it is
337
- actually faster to use the following, but it might also use more memory
338
- because the argument list cannot be deallocated incrementally.
339
-
340
- Also, there seems to be a bug in this code or in the
341
- implementation of obj_truncate.
342
-
343
- external obj_truncate : 'a array -> int -> unit = "caml_obj_truncate"
344
-
345
- let array_to_list_in_place a =
346
- let l = Array.length a in
347
- let rec loop accu n p =
348
- if p <= 0 then accu else begin
349
- if p = n then begin
350
- obj_truncate a p;
351
- loop (a.(p-1) :: accu) (n-1000) (p-1)
352
- end else begin
353
- loop (a.(p-1) :: accu) n (p-1)
354
- end
355
- end
356
- in
357
- loop [] (l-1000) l
358
-
359
-
360
- let stable_sort cmp l =
361
- let a = Array.of_list l in
362
- Array.stable_sort cmp a;
363
- array_to_list_in_place a
364
-
365
- *)
366
-
367
-
368
- (** sorting + removing duplicates *)
369
-
370
- let sort_uniq ~cmp l =
371
- let rec rev_merge l1 l2 accu =
372
- match l1, l2 with
373
- | [], l2 -> rev_append l2 accu
374
- | l1, [] -> rev_append l1 accu
375
- | h1::t1, h2::t2 ->
376
- let c = cmp h1 h2 in
377
- if c = 0 then rev_merge t1 t2 (h1::accu)
378
- else if c < 0
379
- then rev_merge t1 l2 (h1::accu)
380
- else rev_merge l1 t2 (h2::accu)
381
- in
382
- let rec rev_merge_rev l1 l2 accu =
383
- match l1, l2 with
384
- | [], l2 -> rev_append l2 accu
385
- | l1, [] -> rev_append l1 accu
386
- | h1::t1, h2::t2 ->
387
- let c = cmp h1 h2 in
388
- if c = 0 then rev_merge_rev t1 t2 (h1::accu)
389
- else if c > 0
390
- then rev_merge_rev t1 l2 (h1::accu)
391
- else rev_merge_rev l1 t2 (h2::accu)
392
- in
393
- let rec sort n l =
394
- match n, l with
395
- | 2, x1 :: x2 :: _ ->
396
- let c = cmp x1 x2 in
397
- if c = 0 then [x1]
398
- else if c < 0 then [x1; x2] else [x2; x1]
399
- | 3, x1 :: x2 :: x3 :: _ ->
400
- let c = cmp x1 x2 in
401
- if c = 0 then begin
402
- let c = cmp x2 x3 in
403
- if c = 0 then [x2]
404
- else if c < 0 then [x2; x3] else [x3; x2]
405
- end else if c < 0 then begin
406
- let c = cmp x2 x3 in
407
- if c = 0 then [x1; x2]
408
- else if c < 0 then [x1; x2; x3]
409
- else let c = cmp x1 x3 in
410
- if c = 0 then [x1; x2]
411
- else if c < 0 then [x1; x3; x2]
412
- else [x3; x1; x2]
413
- end else begin
414
- let c = cmp x1 x3 in
415
- if c = 0 then [x2; x1]
416
- else if c < 0 then [x2; x1; x3]
417
- else let c = cmp x2 x3 in
418
- if c = 0 then [x2; x1]
419
- else if c < 0 then [x2; x3; x1]
420
- else [x3; x2; x1]
421
- end
422
- | n, l ->
423
- let n1 = n asr 1 in
424
- let n2 = n - n1 in
425
- let l2 = chop n1 l in
426
- let s1 = rev_sort n1 l in
427
- let s2 = rev_sort n2 l2 in
428
- rev_merge_rev s1 s2 []
429
- and rev_sort n l =
430
- match n, l with
431
- | 2, x1 :: x2 :: _ ->
432
- let c = cmp x1 x2 in
433
- if c = 0 then [x1]
434
- else if c > 0 then [x1; x2] else [x2; x1]
435
- | 3, x1 :: x2 :: x3 :: _ ->
436
- let c = cmp x1 x2 in
437
- if c = 0 then begin
438
- let c = cmp x2 x3 in
439
- if c = 0 then [x2]
440
- else if c > 0 then [x2; x3] else [x3; x2]
441
- end else if c > 0 then begin
442
- let c = cmp x2 x3 in
443
- if c = 0 then [x1; x2]
444
- else if c > 0 then [x1; x2; x3]
445
- else let c = cmp x1 x3 in
446
- if c = 0 then [x1; x2]
447
- else if c > 0 then [x1; x3; x2]
448
- else [x3; x1; x2]
449
- end else begin
450
- let c = cmp x1 x3 in
451
- if c = 0 then [x2; x1]
452
- else if c > 0 then [x2; x1; x3]
453
- else let c = cmp x2 x3 in
454
- if c = 0 then [x2; x1]
455
- else if c > 0 then [x2; x3; x1]
456
- else [x3; x2; x1]
457
- end
458
- | n, l ->
459
- let n1 = n asr 1 in
460
- let n2 = n - n1 in
461
- let l2 = chop n1 l in
462
- let s1 = sort n1 l in
463
- let s2 = sort n2 l2 in
464
- rev_merge s1 s2 []
465
- in
466
- let len = length l in
467
- if len < 2 then l else sort len l
468
-
469
- let rec compare_lengths l1 l2 =
470
- match l1, l2 with
471
- | [], [] -> 0
472
- | [], _ -> -1
473
- | _, [] -> 1
474
- | _ :: l1, _ :: l2 -> compare_lengths l1 l2
475
- ;;
476
-
477
- let rec compare_length_with l ~len:n =
478
- match l with
479
- | [] ->
480
- if n = 0 then 0 else
481
- if n > 0 then -1 else 1
482
- | _ :: l ->
483
- if n <= 0 then 1 else
484
- compare_length_with l ~len:(n-1)
485
- ;;