functionalscript 0.44.0 → 0.45.0

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 (453) hide show
  1. package/fjs/asn.1/proof.f.d.mts +5 -0
  2. package/fjs/asn.1/proof.f.mjs +15 -3
  3. package/fjs/asserts/module.f.d.mts +14 -0
  4. package/fjs/asserts/module.f.mjs +20 -0
  5. package/fjs/asserts/proof.f.d.mts +3 -0
  6. package/fjs/asserts/proof.f.mjs +15 -1
  7. package/fjs/basen/base128/proof.f.d.mts +3 -1
  8. package/fjs/basen/base128/proof.f.mjs +3 -1
  9. package/fjs/basen/base64/module.f.mjs +7 -3
  10. package/fjs/basen/base64/proof.f.d.mts +3 -1
  11. package/fjs/basen/base64/proof.f.mjs +7 -4
  12. package/fjs/basen/cbase32/proof.f.d.mts +3 -1
  13. package/fjs/basen/cbase32/proof.f.mjs +3 -1
  14. package/fjs/bnf/data/proof.f.mjs +0 -1
  15. package/fjs/bnf/descent/module.f.d.mts +17 -2
  16. package/fjs/bnf/descent/module.f.mjs +118 -41
  17. package/fjs/bnf/descent/proof.f.d.mts +1 -0
  18. package/fjs/bnf/descent/proof.f.mjs +77 -1
  19. package/fjs/bnf/descent/types.d.ts +12 -4
  20. package/fjs/bnf/ll1/module.f.d.mts +28 -2
  21. package/fjs/bnf/ll1/module.f.mjs +180 -38
  22. package/fjs/bnf/ll1/proof.f.d.mts +2 -0
  23. package/fjs/bnf/ll1/proof.f.mjs +62 -1
  24. package/fjs/bnf/ll1/types.d.ts +14 -8
  25. package/fjs/bnf/module.f.d.mts +15 -6
  26. package/fjs/bnf/module.f.mjs +52 -11
  27. package/fjs/bnf/proof.f.d.mts +2 -0
  28. package/fjs/bnf/proof.f.mjs +79 -3
  29. package/fjs/bnf/token_symbol/module.f.d.mts +4 -3
  30. package/fjs/bnf/token_symbol/module.f.mjs +7 -6
  31. package/fjs/bnf/token_symbol/proof.f.mjs +5 -2
  32. package/fjs/bnf/token_symbol/types.d.ts +2 -2
  33. package/fjs/bnf/types.d.ts +10 -3
  34. package/fjs/cas/cli/proof.f.d.mts +3 -1
  35. package/fjs/cas/cli/proof.f.mjs +3 -1
  36. package/fjs/cas/evo/module.f.d.mts +7 -13
  37. package/fjs/cas/evo/module.f.mjs +103 -96
  38. package/fjs/cas/evo/proof.f.mjs +6 -3
  39. package/fjs/cas/module.f.mjs +96 -109
  40. package/fjs/ci/common/module.f.d.mts +1 -1
  41. package/fjs/ci/common/module.f.mjs +1 -0
  42. package/fjs/ci/config/module.f.d.mts +2 -2
  43. package/fjs/ci/config/module.f.mjs +2 -2
  44. package/fjs/ci/nix/proof.f.d.mts +2 -0
  45. package/fjs/ci/nix/proof.f.mjs +2 -2
  46. package/fjs/ci/proof.f.d.mts +4 -2
  47. package/fjs/ci/proof.f.mjs +4 -3
  48. package/fjs/cli/proof.f.d.mts +4 -2
  49. package/fjs/cli/proof.f.mjs +4 -2
  50. package/fjs/common/monoid/module.f.d.mts +70 -12
  51. package/fjs/common/monoid/module.f.mjs +177 -14
  52. package/fjs/common/monoid/proof.f.d.mts +12 -1
  53. package/fjs/common/monoid/proof.f.mjs +88 -4
  54. package/fjs/common/monoid/types.d.ts +23 -0
  55. package/fjs/crypto/secp/proof.f.d.mts +3 -1
  56. package/fjs/crypto/secp/proof.f.mjs +3 -1
  57. package/fjs/crypto/sha2/proof.f.d.mts +3 -1
  58. package/fjs/crypto/sha2/proof.f.mjs +3 -1
  59. package/fjs/crypto/vdf/module.f.d.mts +23 -4
  60. package/fjs/crypto/vdf/module.f.mjs +6 -4
  61. package/fjs/dev/module.f.d.mts +5 -2
  62. package/fjs/dev/module.f.mjs +5 -4
  63. package/fjs/dev/package_json/module.f.d.mts +7 -0
  64. package/fjs/dev/package_json/module.f.mjs +10 -7
  65. package/fjs/dev/update/module.f.d.mts +3 -0
  66. package/fjs/dev/update/module.f.mjs +3 -2
  67. package/fjs/dev/update/proof.f.d.mts +3 -0
  68. package/fjs/dev/update/proof.f.mjs +1 -2
  69. package/fjs/djs/parser/module.f.d.mts +3 -0
  70. package/fjs/djs/parser/module.f.mjs +18 -0
  71. package/fjs/djs/parser/proof.f.d.mts +3 -0
  72. package/fjs/djs/parser/proof.f.mjs +13 -1
  73. package/fjs/djs/proof.f.d.mts +3 -0
  74. package/fjs/djs/proof.f.mjs +4 -1
  75. package/fjs/djs/serializer/module.f.mjs +5 -4
  76. package/fjs/djs/tokenizer/module.f.mjs +21 -13
  77. package/fjs/djs/tokenizer/proof.f.d.mts +3 -0
  78. package/fjs/djs/tokenizer/proof.f.mjs +14 -2
  79. package/fjs/djs/transpiler/module.f.d.mts +1 -12
  80. package/fjs/djs/transpiler/module.f.mjs +1 -20
  81. package/fjs/djs/transpiler/types.d.ts +25 -0
  82. package/fjs/effects/eff/module.f.d.mts +10 -0
  83. package/fjs/effects/eff/module.f.mjs +4 -2
  84. package/fjs/effects/eff/proof.f.d.mts +3 -0
  85. package/fjs/effects/eff/proof.f.mjs +4 -1
  86. package/fjs/effects/list/module.f.d.mts +10 -2
  87. package/fjs/effects/list/module.f.mjs +4 -2
  88. package/fjs/effects/memory/module.f.d.mts +4 -2
  89. package/fjs/effects/memory/module.f.mjs +4 -3
  90. package/fjs/effects/memory/proof.f.d.mts +4 -0
  91. package/fjs/effects/memory/proof.f.mjs +5 -2
  92. package/fjs/effects/mock/module.f.d.mts +10 -2
  93. package/fjs/effects/mock/module.f.mjs +4 -2
  94. package/fjs/effects/module.d.mts +8 -0
  95. package/fjs/effects/module.f.d.mts +6 -4
  96. package/fjs/effects/module.f.mjs +6 -5
  97. package/fjs/effects/module.mjs +9 -1
  98. package/fjs/effects/node/memory/module.d.mts +3 -0
  99. package/fjs/effects/node/memory/module.mjs +3 -2
  100. package/fjs/effects/node/memory/proof.d.mts +2 -0
  101. package/fjs/effects/node/memory/proof.mjs +2 -1
  102. package/fjs/effects/node/module.d.mts +5 -0
  103. package/fjs/effects/node/module.f.d.mts +17 -12
  104. package/fjs/effects/node/module.f.mjs +6 -12
  105. package/fjs/effects/node/module.mjs +5 -17
  106. package/fjs/effects/node/virtual/module.f.d.mts +6 -3
  107. package/fjs/effects/node/virtual/module.f.mjs +6 -5
  108. package/fjs/effects/node/virtual/proof.f.d.mts +4 -1
  109. package/fjs/effects/node/virtual/proof.f.mjs +13 -1
  110. package/fjs/effects/proof.f.d.mts +3 -0
  111. package/fjs/effects/proof.f.mjs +4 -1
  112. package/fjs/emergent_testing/all.test.d.mts +8 -0
  113. package/fjs/emergent_testing/all.test.mjs +14 -0
  114. package/fjs/emergent_testing/module.f.d.mts +6 -1
  115. package/fjs/emergent_testing/module.f.mjs +40 -66
  116. package/fjs/emergent_testing/proof.f.mjs +5 -5
  117. package/fjs/fsc/bnf.f.d.mts +3 -0
  118. package/fjs/fsc/bnf.f.mjs +4 -1
  119. package/fjs/fsc/json.f.d.mts +3 -0
  120. package/fjs/fsc/json.f.mjs +4 -1
  121. package/fjs/fsc/module.f.d.mts +9 -0
  122. package/fjs/fsc/module.f.mjs +5 -3
  123. package/fjs/fsm/proof.f.d.mts +3 -0
  124. package/fjs/fsm/proof.f.mjs +4 -1
  125. package/fjs/js/tokenizer/module.f.d.mts +7 -0
  126. package/fjs/js/tokenizer/module.f.mjs +19 -55
  127. package/fjs/mcp/module.f.d.mts +36 -1
  128. package/fjs/mcp/module.f.mjs +9 -7
  129. package/fjs/mcp/proof.f.d.mts +11 -1
  130. package/fjs/mcp/proof.f.mjs +11 -18
  131. package/fjs/media/html/module.f.d.mts +12 -0
  132. package/fjs/media/html/module.f.mjs +6 -4
  133. package/fjs/media/html/proof.f.d.mts +3 -0
  134. package/fjs/media/html/proof.f.mjs +4 -1
  135. package/fjs/media/json/parser/module.f.d.mts +1 -1
  136. package/fjs/media/json/parser/module.f.mjs +25 -8
  137. package/fjs/media/json/parser/types.d.ts +5 -0
  138. package/fjs/media/json/rtti/proof.f.d.mts +3 -0
  139. package/fjs/media/json/rtti/proof.f.mjs +3 -3
  140. package/fjs/media/json/schema/module.f.d.mts +61 -27
  141. package/fjs/media/json/schema/module.f.mjs +228 -63
  142. package/fjs/media/json/schema/proof.f.d.mts +41 -0
  143. package/fjs/media/json/schema/proof.f.mjs +219 -7
  144. package/fjs/media/json/serializer/module.f.d.mts +13 -0
  145. package/fjs/media/json/serializer/module.f.mjs +7 -7
  146. package/fjs/media/json/tokenizer/module.f.d.mts +8 -0
  147. package/fjs/media/json/tokenizer/module.f.mjs +24 -5
  148. package/fjs/media/nix/module.f.d.mts +13 -0
  149. package/fjs/media/nix/module.f.mjs +4 -2
  150. package/fjs/media/nix/proof.f.d.mts +3 -0
  151. package/fjs/media/nix/proof.f.mjs +4 -1
  152. package/fjs/media/revision/module.f.d.mts +5 -0
  153. package/fjs/media/revision/module.f.mjs +8 -11
  154. package/fjs/media/revision/proof.f.d.mts +4 -0
  155. package/fjs/media/revision/proof.f.mjs +5 -2
  156. package/fjs/media/type/module.f.d.mts +28 -11
  157. package/fjs/media/type/module.f.mjs +69 -85
  158. package/fjs/media/type/proof.f.d.mts +16 -0
  159. package/fjs/media/type/proof.f.mjs +44 -4
  160. package/fjs/module.d.mts +5 -0
  161. package/fjs/module.f.d.mts +8 -0
  162. package/fjs/module.f.mjs +4 -2
  163. package/fjs/module.mjs +6 -0
  164. package/fjs/path/module.f.d.mts +8 -0
  165. package/fjs/path/module.f.mjs +4 -2
  166. package/fjs/proof.f.d.mts +4 -0
  167. package/fjs/proof.f.mjs +5 -2
  168. package/fjs/protocol/json_rpc/module.f.d.mts +1 -1
  169. package/fjs/protocol/json_rpc/module.f.mjs +7 -4
  170. package/fjs/protocol/json_rpc/proof.f.d.mts +6 -0
  171. package/fjs/protocol/json_rpc/proof.f.mjs +22 -1
  172. package/fjs/protocol/mcp/proof.f.d.mts +4 -0
  173. package/fjs/protocol/mcp/proof.f.mjs +47 -24
  174. package/fjs/protocol/mcp/stdio/module.f.d.mts +2 -4
  175. package/fjs/protocol/mcp/stdio/module.f.mjs +1 -8
  176. package/fjs/protocol/mcp/stdio/proof.f.d.mts +1 -1
  177. package/fjs/protocol/mcp/stdio/proof.f.mjs +1 -1
  178. package/fjs/protocol/mcp/stdio/types.d.ts +14 -0
  179. package/fjs/sul/id/module.f.d.mts +5 -0
  180. package/fjs/sul/id/module.f.mjs +5 -4
  181. package/fjs/sul/level/hash/module.f.d.mts +4 -1
  182. package/fjs/sul/level/hash/module.f.mjs +4 -3
  183. package/fjs/sul/level/hash/proof.f.d.mts +4 -0
  184. package/fjs/sul/level/hash/proof.f.mjs +5 -2
  185. package/fjs/sul/level/literal/module.f.d.mts +4 -1
  186. package/fjs/sul/level/literal/module.f.mjs +4 -3
  187. package/fjs/sul/level/literal/proof.f.d.mts +3 -0
  188. package/fjs/sul/level/literal/proof.f.mjs +4 -1
  189. package/fjs/sul/module.f.d.mts +5 -3
  190. package/fjs/sul/module.f.mjs +5 -4
  191. package/fjs/sul/proof.f.d.mts +4 -0
  192. package/fjs/sul/proof.f.mjs +5 -2
  193. package/fjs/text/ascii/module.f.d.mts +26 -0
  194. package/fjs/text/ascii/module.f.mjs +49 -1
  195. package/fjs/text/ascii/proof.f.d.mts +10 -0
  196. package/fjs/text/ascii/proof.f.mjs +33 -1
  197. package/fjs/text/code_point/module.f.d.mts +21 -3
  198. package/fjs/text/code_point/module.f.mjs +24 -8
  199. package/fjs/text/code_point/proof.f.d.mts +1 -0
  200. package/fjs/text/code_point/proof.f.mjs +28 -0
  201. package/fjs/text/module.f.d.mts +4 -2
  202. package/fjs/text/module.f.mjs +4 -3
  203. package/fjs/text/proof.f.d.mts +3 -0
  204. package/fjs/text/proof.f.mjs +4 -1
  205. package/fjs/text/sgr/module.f.d.mts +4 -1
  206. package/fjs/text/sgr/module.f.mjs +4 -3
  207. package/fjs/text/sgr/proof.f.d.mts +3 -0
  208. package/fjs/text/sgr/proof.f.mjs +4 -1
  209. package/fjs/text/utf16/module.f.d.mts +5 -1
  210. package/fjs/text/utf16/module.f.mjs +31 -33
  211. package/fjs/text/utf16/proof.f.d.mts +3 -1
  212. package/fjs/text/utf16/proof.f.mjs +18 -1
  213. package/fjs/text/utf8/module.f.d.mts +9 -5
  214. package/fjs/text/utf8/module.f.mjs +16 -18
  215. package/fjs/types/array/module.f.d.mts +2 -1
  216. package/fjs/types/array/module.f.mjs +2 -2
  217. package/fjs/types/bigfloat/module.f.d.mts +21 -1
  218. package/fjs/types/bigfloat/module.f.mjs +33 -7
  219. package/fjs/types/bigfloat/proof.f.d.mts +1 -0
  220. package/fjs/types/bigfloat/proof.f.mjs +46 -0
  221. package/fjs/types/bigint/module.f.d.mts +4 -0
  222. package/fjs/types/bigint/module.f.mjs +4 -3
  223. package/fjs/types/bit_vec/module.f.d.mts +10 -14
  224. package/fjs/types/bit_vec/module.f.mjs +61 -71
  225. package/fjs/types/bit_vec/proof.f.d.mts +6 -0
  226. package/fjs/types/bit_vec/proof.f.mjs +29 -3
  227. package/fjs/types/btree/find/module.f.d.mts +5 -1
  228. package/fjs/types/btree/find/module.f.mjs +5 -5
  229. package/fjs/types/btree/find/proof.f.d.mts +5 -1
  230. package/fjs/types/btree/find/proof.f.mjs +5 -3
  231. package/fjs/types/btree/module.f.d.mts +3 -0
  232. package/fjs/types/btree/module.f.mjs +3 -2
  233. package/fjs/types/btree/proof.f.d.mts +5 -1
  234. package/fjs/types/btree/proof.f.mjs +5 -3
  235. package/fjs/types/btree/remove/module.f.d.mts +11 -0
  236. package/fjs/types/btree/remove/module.f.mjs +9 -9
  237. package/fjs/types/btree/remove/proof.f.d.mts +3 -0
  238. package/fjs/types/btree/remove/proof.f.mjs +4 -1
  239. package/fjs/types/btree/set/module.f.d.mts +9 -0
  240. package/fjs/types/btree/set/module.f.mjs +5 -6
  241. package/fjs/types/btree/set/proof.f.d.mts +3 -0
  242. package/fjs/types/btree/set/proof.f.mjs +4 -1
  243. package/fjs/types/btree/types/module.f.d.mts +2 -1
  244. package/fjs/types/btree/types/module.f.mjs +2 -1
  245. package/fjs/types/byte_set/module.f.d.mts +10 -1
  246. package/fjs/types/byte_set/module.f.mjs +5 -3
  247. package/fjs/types/byte_set/proof.f.d.mts +3 -1
  248. package/fjs/types/byte_set/proof.f.mjs +3 -1
  249. package/fjs/types/function/compare/module.f.d.mts +3 -2
  250. package/fjs/types/function/compare/module.f.mjs +3 -2
  251. package/fjs/types/function/module.f.d.mts +8 -1
  252. package/fjs/types/function/module.f.mjs +8 -1
  253. package/fjs/types/function/operator/module.f.d.mts +2 -1
  254. package/fjs/types/function/operator/module.f.mjs +2 -2
  255. package/fjs/types/list/module.f.d.mts +9 -2
  256. package/fjs/types/list/module.f.mjs +5 -3
  257. package/fjs/types/list/proof.f.d.mts +4 -1
  258. package/fjs/types/list/proof.f.mjs +4 -2
  259. package/fjs/types/nibble_set/module.f.d.mts +2 -1
  260. package/fjs/types/nibble_set/module.f.mjs +2 -2
  261. package/fjs/types/nominal/module.f.d.mts +2 -1
  262. package/fjs/types/nominal/module.f.mjs +2 -1
  263. package/fjs/types/nullable/module.f.d.mts +8 -2
  264. package/fjs/types/nullable/module.f.mjs +4 -2
  265. package/fjs/types/number/module.f.d.mts +4 -0
  266. package/fjs/types/number/module.f.mjs +4 -3
  267. package/fjs/types/object/module.f.d.mts +14 -2
  268. package/fjs/types/object/module.f.mjs +15 -6
  269. package/fjs/types/object/proof.f.d.mts +5 -2
  270. package/fjs/types/object/proof.f.mjs +6 -3
  271. package/fjs/types/object/structurally_same/module.f.d.mts +39 -0
  272. package/fjs/types/object/structurally_same/module.f.mjs +59 -0
  273. package/fjs/types/object/structurally_same/proof.f.d.mts +6 -0
  274. package/fjs/types/object/structurally_same/proof.f.mjs +73 -0
  275. package/fjs/types/ordered_map/module.f.d.mts +5 -0
  276. package/fjs/types/ordered_map/module.f.mjs +5 -4
  277. package/fjs/types/ordered_map/proof.f.d.mts +3 -0
  278. package/fjs/types/ordered_map/proof.f.mjs +4 -1
  279. package/fjs/types/patricia_trie/module.f.d.mts +2 -1
  280. package/fjs/types/patricia_trie/module.f.mjs +2 -2
  281. package/fjs/types/patricia_trie/proof.f.d.mts +3 -0
  282. package/fjs/types/patricia_trie/proof.f.mjs +4 -1
  283. package/fjs/types/prime_field/module.f.d.mts +3 -1
  284. package/fjs/types/prime_field/module.f.mjs +3 -2
  285. package/fjs/types/range/module.f.d.mts +2 -1
  286. package/fjs/types/range/module.f.mjs +2 -2
  287. package/fjs/types/range_map/module.f.d.mts +6 -0
  288. package/fjs/types/range_map/module.f.mjs +6 -9
  289. package/fjs/types/range_map/proof.f.d.mts +5 -1
  290. package/fjs/types/range_map/proof.f.mjs +5 -3
  291. package/fjs/types/range_set/module.f.d.mts +5 -0
  292. package/fjs/types/range_set/module.f.mjs +1 -0
  293. package/fjs/types/range_set/proof.f.d.mts +3 -0
  294. package/fjs/types/range_set/proof.f.mjs +4 -1
  295. package/fjs/types/result/module.d.mts +8 -0
  296. package/fjs/types/result/module.f.d.mts +37 -7
  297. package/fjs/types/result/module.f.mjs +38 -8
  298. package/fjs/types/result/module.mjs +9 -1
  299. package/fjs/types/result/proof.f.d.mts +5 -0
  300. package/fjs/types/result/proof.f.mjs +22 -2
  301. package/fjs/types/rtti/common/module.f.d.mts +35 -2
  302. package/fjs/types/rtti/common/module.f.mjs +9 -7
  303. package/fjs/types/rtti/common/proof.f.d.mts +4 -0
  304. package/fjs/types/rtti/common/proof.f.mjs +5 -2
  305. package/fjs/types/rtti/data/module.f.d.mts +120 -0
  306. package/fjs/types/rtti/data/module.f.mjs +1030 -0
  307. package/fjs/types/rtti/data/proof.f.d.mts +75 -0
  308. package/fjs/types/rtti/data/proof.f.mjs +566 -0
  309. package/fjs/types/rtti/data/types.d.ts +83 -0
  310. package/fjs/types/rtti/module.f.d.mts +12 -5
  311. package/fjs/types/rtti/module.f.mjs +7 -5
  312. package/fjs/types/rtti/parse/module.f.d.mts +38 -0
  313. package/fjs/types/rtti/parse/module.f.mjs +9 -7
  314. package/fjs/types/rtti/parse/proof.f.mjs +18 -38
  315. package/fjs/types/rtti/proof.f.d.mts +3 -1
  316. package/fjs/types/rtti/proof.f.mjs +3 -1
  317. package/fjs/types/rtti/ts/module.f.d.mts +68 -9
  318. package/fjs/types/rtti/ts/module.f.mjs +262 -30
  319. package/fjs/types/rtti/ts/proof.f.d.mts +44 -0
  320. package/fjs/types/rtti/ts/proof.f.mjs +152 -4
  321. package/fjs/types/rtti/ts/types.d.ts +11 -0
  322. package/fjs/types/rtti/types.d.ts +40 -0
  323. package/fjs/types/rtti/validate/module.f.d.mts +36 -1
  324. package/fjs/types/rtti/validate/module.f.mjs +6 -4
  325. package/fjs/types/sorted_list/module.f.d.mts +4 -1
  326. package/fjs/types/sorted_list/module.f.mjs +21 -12
  327. package/fjs/types/sorted_list/proof.f.d.mts +3 -1
  328. package/fjs/types/sorted_list/proof.f.mjs +3 -1
  329. package/fjs/types/sorted_set/module.f.d.mts +31 -1
  330. package/fjs/types/sorted_set/module.f.mjs +4 -2
  331. package/fjs/types/sorted_set/proof.f.d.mts +3 -1
  332. package/fjs/types/sorted_set/proof.f.mjs +3 -1
  333. package/fjs/types/string/module.f.d.mts +4 -0
  334. package/fjs/types/string/module.f.mjs +4 -3
  335. package/fjs/types/string_set/module.f.d.mts +3 -1
  336. package/fjs/types/string_set/module.f.mjs +3 -2
  337. package/fjs/types/ts/module.f.d.mts +2 -0
  338. package/fjs/types/ts/module.f.mjs +3 -3
  339. package/fjs/types/ts/proof.f.d.mts +1 -0
  340. package/fjs/types/ts/proof.f.mjs +5 -0
  341. package/fjs/types/ts/types.d.ts +6 -1
  342. package/fjs/types/uint8array/module.f.d.mts +13 -2
  343. package/fjs/types/uint8array/module.f.mjs +20 -15
  344. package/fjs/website/module.f.d.mts +3 -0
  345. package/fjs/website/module.f.mjs +3 -2
  346. package/package.json +3 -3
  347. package/fjs/asn.1/types.js +0 -6
  348. package/fjs/asserts/types.js +0 -6
  349. package/fjs/basen/types.js +0 -6
  350. package/fjs/bnf/data/types.js +0 -6
  351. package/fjs/bnf/descent/types.js +0 -6
  352. package/fjs/bnf/ll1/types.js +0 -6
  353. package/fjs/bnf/token_symbol/types.js +0 -6
  354. package/fjs/bnf/types.js +0 -6
  355. package/fjs/cas/evo/types.js +0 -7
  356. package/fjs/cas/types.js +0 -6
  357. package/fjs/ci/common/types.js +0 -1
  358. package/fjs/ci/nix/types.js +0 -6
  359. package/fjs/ci/types.js +0 -6
  360. package/fjs/cli/types.js +0 -6
  361. package/fjs/common/monoid/types.js +0 -6
  362. package/fjs/crypto/pow/types.js +0 -6
  363. package/fjs/crypto/secp/types.js +0 -6
  364. package/fjs/crypto/sha2/types.js +0 -6
  365. package/fjs/crypto/sign/types.js +0 -6
  366. package/fjs/crypto/vdf/types.js +0 -6
  367. package/fjs/dev/types.js +0 -6
  368. package/fjs/djs/ast/types.js +0 -8
  369. package/fjs/djs/parser/types.js +0 -7
  370. package/fjs/djs/tokenizer/types.js +0 -7
  371. package/fjs/djs/types.js +0 -7
  372. package/fjs/effects/eff/types.js +0 -6
  373. package/fjs/effects/list/types.js +0 -6
  374. package/fjs/effects/memory/types.js +0 -6
  375. package/fjs/effects/mock/types.js +0 -6
  376. package/fjs/effects/node/types.js +0 -6
  377. package/fjs/effects/node/virtual/types.js +0 -7
  378. package/fjs/effects/types.js +0 -6
  379. package/fjs/emergent_testing/all.test.d.ts +0 -1
  380. package/fjs/emergent_testing/all.test.js +0 -5
  381. package/fjs/emergent_testing/scenarios/all.d.ts +0 -1
  382. package/fjs/emergent_testing/scenarios/all.js +0 -1
  383. package/fjs/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -6
  384. package/fjs/emergent_testing/scenarios/async-subtests.fail.js +0 -9
  385. package/fjs/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -6
  386. package/fjs/emergent_testing/scenarios/async-subtests.pass.js +0 -9
  387. package/fjs/emergent_testing/scenarios/async.fail.d.ts +0 -3
  388. package/fjs/emergent_testing/scenarios/async.fail.js +0 -6
  389. package/fjs/emergent_testing/scenarios/async.pass.d.ts +0 -3
  390. package/fjs/emergent_testing/scenarios/async.pass.js +0 -5
  391. package/fjs/emergent_testing/scenarios/fail.fail.d.ts +0 -3
  392. package/fjs/emergent_testing/scenarios/fail.fail.js +0 -3
  393. package/fjs/emergent_testing/scenarios/return-value.pass.d.ts +0 -3
  394. package/fjs/emergent_testing/scenarios/return-value.pass.js +0 -4
  395. package/fjs/emergent_testing/scenarios/thenable.pass.d.ts +0 -5
  396. package/fjs/emergent_testing/scenarios/thenable.pass.js +0 -11
  397. package/fjs/emergent_testing/scenarios/thenable2.pass.d.ts +0 -5
  398. package/fjs/emergent_testing/scenarios/thenable2.pass.js +0 -3
  399. package/fjs/emergent_testing/scenarios/throw.pass.d.ts +0 -5
  400. package/fjs/emergent_testing/scenarios/throw.pass.js +0 -3
  401. package/fjs/emergent_testing/types.js +0 -6
  402. package/fjs/js/tokenizer/types.js +0 -6
  403. package/fjs/media/html/types.js +0 -6
  404. package/fjs/media/json/parser/types.js +0 -6
  405. package/fjs/media/json/tokenizer/types.js +0 -6
  406. package/fjs/media/json/types.js +0 -13
  407. package/fjs/media/nix/types.js +0 -6
  408. package/fjs/media/revision/types.js +0 -8
  409. package/fjs/media/type/types.js +0 -6
  410. package/fjs/media/types.js +0 -7
  411. package/fjs/nanvm/types.js +0 -11
  412. package/fjs/protocol/json_rpc/types.js +0 -8
  413. package/fjs/protocol/mcp/types.js +0 -8
  414. package/fjs/sul/id/types.js +0 -6
  415. package/fjs/sul/level/hash/types.js +0 -6
  416. package/fjs/sul/level/literal/types.js +0 -6
  417. package/fjs/sul/types.js +0 -6
  418. package/fjs/text/sgr/types.js +0 -6
  419. package/fjs/text/types.js +0 -6
  420. package/fjs/text/utf16/types.js +0 -6
  421. package/fjs/text/utf8/types.js +0 -6
  422. package/fjs/types/array/types.js +0 -6
  423. package/fjs/types/bigfloat/types.js +0 -6
  424. package/fjs/types/bigint/types.js +0 -6
  425. package/fjs/types/bit_vec/types.js +0 -6
  426. package/fjs/types/btree/find/types.js +0 -6
  427. package/fjs/types/btree/types/types.js +0 -6
  428. package/fjs/types/byte_set/types.js +0 -6
  429. package/fjs/types/function/compare/types.js +0 -6
  430. package/fjs/types/function/operator/types.js +0 -6
  431. package/fjs/types/function/types.js +0 -6
  432. package/fjs/types/list/types.js +0 -6
  433. package/fjs/types/nibble_set/types.js +0 -6
  434. package/fjs/types/nominal/types.js +0 -6
  435. package/fjs/types/nullable/types.js +0 -6
  436. package/fjs/types/object/types.js +0 -8
  437. package/fjs/types/option/types.js +0 -6
  438. package/fjs/types/ordered_map/types.js +0 -6
  439. package/fjs/types/patricia_trie/types.js +0 -6
  440. package/fjs/types/phantom/types.js +0 -11
  441. package/fjs/types/prime_field/types.js +0 -6
  442. package/fjs/types/range/types.js +0 -6
  443. package/fjs/types/range_map/types.js +0 -6
  444. package/fjs/types/result/types.js +0 -6
  445. package/fjs/types/rtti/common/types.js +0 -1
  446. package/fjs/types/rtti/parse/types.js +0 -1
  447. package/fjs/types/rtti/ts/types.js +0 -1
  448. package/fjs/types/rtti/types.js +0 -1
  449. package/fjs/types/rtti/validate/types.js +0 -1
  450. package/fjs/types/sorted_list/types.js +0 -6
  451. package/fjs/types/sorted_set/types.js +0 -6
  452. package/fjs/types/string_set/types.js +0 -6
  453. package/fjs/types/ts/types.js +0 -8
@@ -20,34 +20,23 @@
20
20
  * ```
21
21
  *
22
22
  * @module
23
+ *
24
+ * @import { Reduce as BigintReduce } from '../bigint/types.ts'
25
+ * @import { Fold } from '../function/operator/types.ts'
26
+ * @import { List, Thunk } from '../list/types.ts'
27
+ * @import { Absorbing } from '../../common/monoid/types.ts'
28
+ * @import { Sign } from '../function/compare/types.ts'
29
+ * @import { Nullable } from '../nullable/types.ts'
30
+ * @import { BitOrder, PopFront, Reduce, Unpacked, Vec, _NormOp, _UnpackConcat, } from './types.ts'
23
31
  */
24
32
 
25
33
  import { bitLength, divUp, mask, maxLength, xor } from '../bigint/module.f.mjs'
26
- /** @import { Reduce as BigintReduce } from '../bigint/types.ts' */
27
-
28
- import { flip, identity } from '../function/module.f.mjs'
29
-
30
- /** @import { Fold } from '../function/operator/types.ts' */
31
-
32
- import { map, tryFold } from '../list/module.f.mjs'
33
- /** @import { Accumulator, List, Thunk } from '../list/types.ts' */
34
-
34
+ import { compose, flip, identity } from '../function/module.f.mjs'
35
+ import { map } from '../list/module.f.mjs'
35
36
  import { asBase, asNominal } from '../nominal/module.f.mjs'
36
-
37
- import { repeat as mRepeat } from '../../common/monoid/module.f.mjs'
38
-
37
+ import { foldAbsorbing, repeat as mRepeat } from '../../common/monoid/module.f.mjs'
39
38
  import { cmp, max, min } from '../function/compare/module.f.mjs'
40
- /** @import { Sign } from '../function/compare/types.ts' */
41
-
42
- import { mapUnwrap } from '../nullable/module.f.mjs'
43
- /** @import { Nullable } from '../nullable/types.ts' */
44
-
45
- /**
46
- * @import {
47
- * BitOrder, PopFront, Reduce, Unpacked, Vec,
48
- * _NormOp, _UnpackConcat,
49
- * } from './types.ts'
50
- */
39
+ import { map as nullableMap, mapUnwrap } from '../nullable/module.f.mjs'
51
40
 
52
41
  /**
53
42
  * Maximum length of a bit vector in bits (1_048_576 = 0x10_0000).
@@ -195,55 +184,53 @@ const op = norm => op => ap => bp => {
195
184
  const unpackEmpty = /** @type {const} */{ length: 0n, uint: 0n }
196
185
 
197
186
  /**
198
- * @typedef {{
199
- * readonly len: bigint
200
- * readonly stack: readonly Unpacked[]
201
- * }} _ListToVecState
187
+ * Concatenation as a monoid over `Nullable<Unpacked>`, where `null` means "the
188
+ * concatenation is longer than `maxLength`" and is an **absorbing** element:
189
+ * combining it with anything is `null` again. The identity is the empty vector.
190
+ *
191
+ * This is a lawful monoid, so `monoid.fold` may re-associate it freely. Length
192
+ * is additive and non-negative, so any partial combine is at most the total: a
193
+ * partial can only overflow when the total does, and the top-level combine
194
+ * always sees the full total. The result is therefore `null` **iff** the total
195
+ * length exceeds `maxLength`, whatever the grouping.
196
+ *
197
+ * The cap is checked on the operands' lengths rather than on the concatenated
198
+ * result because the result is what must not be built: `maxLength` is the
199
+ * smallest `bigint` size supported across FunctionalScript's runtimes. The two
200
+ * lengths are exact and additive — this is the length, not an estimate of it
201
+ * (AGENTS.md §5.6).
202
+ *
203
+ * Being absorbing is also what keeps the fold's walk bounded: `foldAbsorbing`
204
+ * stops at the first merge that overflows instead of reading the rest of a list
205
+ * whose answer is already `null`. `List<T>` includes `Thunk<T>`, so that is the
206
+ * difference between answering and never returning on an unbounded lazy list —
207
+ * and at `maxLength` = 128 KiB, overflow is an ordinary outcome for a stream,
208
+ * not an exotic one. Since a single vector is never `null`, only a merge can
209
+ * reach the absorbing element, so the stop lags the element that crossed the cap
210
+ * by at most one doubling of the run size (measured: 65 536 elements read for a
211
+ * cap crossed at 32 769, and 4 for a cap crossed at 3).
212
+ *
213
+ * @type {(unpackConcat: _UnpackConcat) => Absorbing<Nullable<Unpacked>>}
202
214
  */
203
-
204
- /** @typedef {Accumulator<Unpacked, _ListToVecState, Vec>} _ListToVecOp */
205
-
206
- /** @type {(unpackConcat: _UnpackConcat) => _ListToVecOp} */
207
- const listToVecOp = unpackConcat => ({
208
- init: { len: 0n, stack: [] },
209
- update: (v, {len, stack}) => {
210
- len += v.length
211
- if (len > maxLength) { return null }
212
- let i = 0
213
- while (true) {
214
- if (stack.length <= i) {
215
- stack = [...stack, v]
216
- break
217
- }
218
- const old = stack[i]
219
- if (old.length === 0n) {
220
- stack = stack.toSpliced(i, 1, v)
221
- break
222
- }
223
- stack = stack.toSpliced(i, 1, unpackEmpty)
224
- v = unpackConcat(old)(v)
225
- i++
226
- }
227
- return { len, stack }
215
+ const tryUnpackConcat = unpackConcat => ({
216
+ monoid: {
217
+ identity: unpackEmpty,
218
+ operation: a => b =>
219
+ a === null || b === null || a.length + b.length > maxLength
220
+ ? null
221
+ : unpackConcat(a)(b)
228
222
  },
229
- end: ({stack}) => pack(stack.reduce((p, c) => unpackConcat(c)(p), unpackEmpty))
223
+ absorbing: null,
230
224
  })
231
225
 
232
226
  /**
233
- * Concatenates a list of unpacked vectors using a binary-counter accumulator,
234
- * giving O(n log n) total `bigint` shifting work instead of the O(n²) of a
235
- * naive left fold.
227
+ * Concatenates a list of unpacked vectors, or `null` if the result would be
228
+ * longer than `maxLength`.
236
229
  *
237
- * Slot `i` of `result` holds an already-combined run of the most recent
238
- * `2 ** i` elements. Each arriving element "carries" upward, merging only with
239
- * runs of comparable size exactly like incrementing a binary number so
240
- * every merge joins two runs of similar length. Left-to-right element order is
241
- * preserved: `unpackConcat(old)(cur)` keeps the earlier run on the left, and
242
- * the final reduce prepends higher (earlier) slots in front of accumulated
243
- * later runs. An empty list yields `unpackEmpty`.
244
- *
245
- * Returns `null` as soon as the accumulated length exceeds `maxLength`, which
246
- * `tryFold` propagates by abandoning the rest of the list.
230
+ * `monoid.foldAbsorbing` reduces as a balanced binary tree, so each merge joins
231
+ * two runs of comparable size O(n log n) total `bigint` shifting work instead
232
+ * of the O(n²) a left fold would spend growing one accumulator against small
233
+ * operands and stops reading at the first overflow.
247
234
  *
248
235
  * This is the bit-vector analogue of a builder that accumulates appended pieces
249
236
  * and materializes the combined result on demand, such as `StringBuilder`
@@ -251,7 +238,8 @@ const listToVecOp = unpackConcat => ({
251
238
  *
252
239
  * @param {_UnpackConcat} unpackConcat
253
240
  */
254
- const unpackListToVec = unpackConcat => tryFold(listToVecOp(unpackConcat))
241
+ const unpackListToVec = unpackConcat =>
242
+ compose(foldAbsorbing(tryUnpackConcat(unpackConcat)))(nullableMap(pack))
255
243
 
256
244
  /** @type {(base: _Base) => BitOrder} */
257
245
  const bo = ({ front, removeFront, norm, uintCmp, unpackSplit, unpackConcatUint }) => {
@@ -284,9 +272,9 @@ const bo = ({ front, removeFront, norm, uintCmp, unpackSplit, unpackConcatUint }
284
272
  const bu = unpack(b)
285
273
  return pack(unpackConcat(au)(bu))
286
274
  }
275
+ const unpackedListToVec = unpackListToVec(unpackConcat)
287
276
  /** @param {List<Vec>} list */
288
- const tryListToVec = list =>
289
- unpackListToVec(unpackConcat)(map(unpack)(list))
277
+ const tryListToVec = list => unpackedListToVec(map(unpack)(list))
290
278
  return {
291
279
  front,
292
280
  removeFront,
@@ -378,9 +366,11 @@ export const msb = bo({
378
366
  *
379
367
  * @type {(_: BitOrder) => (list: List<number>) => Nullable<Vec>}
380
368
  */
381
- export const tryU8ListToVec = ({ unpackConcat }) => list =>
382
- unpackListToVec(unpackConcat)(
369
+ export const tryU8ListToVec = ({ unpackConcat }) => {
370
+ const unpackedListToVec = unpackListToVec(unpackConcat)
371
+ return list => unpackedListToVec(
383
372
  map(/** @type {(_: number) => Unpacked} */b => ({ length: 8n, uint: BigInt(b) }))(list))
373
+ }
384
374
 
385
375
  /**
386
376
  * Converts a list of unsigned 8-bit integers to a bit vector using the provided bit order.
@@ -1,3 +1,8 @@
1
+ /**
2
+ * @import { Sign } from '../function/compare/types.ts'
3
+ * @import { Vec, BitOrder } from './types.ts'
4
+ * @import { List } from '../list/types.ts'
5
+ */
1
6
  export declare const proof: {
2
7
  fromSentinel: () => void;
3
8
  examples: {
@@ -47,6 +52,7 @@ export declare const proof: {
47
52
  };
48
53
  u8ListToVec: () => () => void;
49
54
  tryListToVecOverflow: () => void;
55
+ tryListToVecUnbounded: () => void;
50
56
  listToVecOverflow: {
51
57
  throw: () => void;
52
58
  };
@@ -1,10 +1,13 @@
1
+ /**
2
+ * @import { Sign } from '../function/compare/types.ts'
3
+ * @import { Vec, BitOrder } from './types.ts'
4
+ * @import { List } from '../list/types.ts'
5
+ */
6
+
1
7
  import { assert, assertEq } from '../../asserts/module.f.mjs'
2
8
  import { mask } from '../bigint/module.f.mjs'
3
- /** @import { Sign } from '../function/compare/types.ts' */
4
9
  import { asBase, asNominal } from '../nominal/module.f.mjs'
5
- /** @import { Vec, BitOrder } from './types.ts' */
6
10
  import { length, empty, uint, vec, lsb, msb, repeat, vec8, maxLength, u8ListToVec, tryU8ListToVec, u8List, chunkList, fromSentinel } from './module.f.mjs'
7
- /** @import { List } from '../list/types.ts' */
8
11
  import { repeat as listRepeat, toArray } from '../list/module.f.mjs'
9
12
 
10
13
  /** @type {(a: bigint) => Vec} */
@@ -421,6 +424,29 @@ export const proof = {
421
424
  const list = [vec(maxLength)(1n), vec(1n)(1n)]
422
425
  assertEq(lsb.tryListToVec(list), null)
423
426
  assertEq(msb.tryListToVec(list), null)
427
+ // Overflow is an absorbing element, so it survives every later
428
+ // combination: here the failed pair ends up on the left of the last
429
+ // one, and on the right in the two-element case above.
430
+ /** @type {List<Vec>} */
431
+ const longer = [vec(maxLength)(1n), vec(1n)(1n), vec(1n)(1n)]
432
+ assertEq(lsb.tryListToVec(longer), null)
433
+ assertEq(msb.tryListToVec(longer), null)
434
+ },
435
+ tryListToVecUnbounded: () => {
436
+ // `List` includes `Thunk`, so an unbounded lazy list is a legal input —
437
+ // and at 128 KiB, `maxLength` is an ordinary amount for a stream to
438
+ // exceed. Overflow being absorbing is what lets the fold answer instead
439
+ // of reading forever: each element here is half of `maxLength`, so the
440
+ // total crosses the cap at the third and the merge that sees it happens
441
+ // at the fourth. The rest of the list asserts it is never read.
442
+ const half = vec(maxLength / 2n)(1n)
443
+ /** @type {(n: number) => List<Vec>} */
444
+ const from = n => () => {
445
+ assert(n <= 8)
446
+ return { first: half, tail: from(n + 1) }
447
+ }
448
+ assertEq(lsb.tryListToVec(from(1)), null)
449
+ assertEq(msb.tryListToVec(from(1)), null)
424
450
  },
425
451
  listToVecOverflow: {
426
452
  // Same oversized input, but through the throwing `listToVec` wrapper.
@@ -2,8 +2,12 @@
2
2
  * Lookup operations for persistent B-tree structures.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { TNode } from '../types/types.ts'
7
+ * @import { Compare } from '../../function/compare/types.ts'
8
+ * @import { KeyOf } from '../../array/types.ts'
9
+ * @import { First, Path, PathItem, Result } from './types.ts'
5
10
  */
6
- /** @import { TNode } from '../types/types.ts' */
7
11
  import type { TNode } from '../types/types.ts';
8
12
  import type { Compare } from '../../function/compare/types.ts';
9
13
  import type { First, Result } from './types.ts';
@@ -2,14 +2,14 @@
2
2
  * Lookup operations for persistent B-tree structures.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { TNode } from '../types/types.ts'
7
+ * @import { Compare } from '../../function/compare/types.ts'
8
+ * @import { KeyOf } from '../../array/types.ts'
9
+ * @import { First, Path, PathItem, Result } from './types.ts'
5
10
  */
6
- /** @import { TNode } from '../types/types.ts' */
7
11
 
8
12
  import { index3, index5 } from '../../function/compare/module.f.mjs'
9
- /** @import { Compare } from '../../function/compare/types.ts' */
10
-
11
- /** @import { KeyOf } from '../../array/types.ts' */
12
- /** @import { First, Path, PathItem, Result } from './types.ts' */
13
13
 
14
14
  /** @type {<T>(item: PathItem<T>) => TNode<T>} */
15
15
  const child = item => {
@@ -1,4 +1,8 @@
1
- /** @import { Unknown } from '../../../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../../../media/json/types.ts'
3
+ * @import { Result } from './types.ts'
4
+ * @import { TNode } from '../types/types.ts'
5
+ */
2
6
  declare const test: () => void;
3
7
  export declare const proof: typeof test;
4
8
  export {};
@@ -1,11 +1,13 @@
1
- /** @import { Unknown } from '../../../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../../../media/json/types.ts'
3
+ * @import { Result } from './types.ts'
4
+ * @import { TNode } from '../types/types.ts'
5
+ */
2
6
 
3
- /** @import { Result } from './types.ts' */
4
7
  import { find as btreeFind } from './module.f.mjs'
5
8
  import { map, toArray } from '../../list/module.f.mjs'
6
9
  import { stringify } from '../../../media/json/module.f.mjs'
7
10
  import { sort } from '../../object/module.f.mjs'
8
- /** @import { TNode } from '../types/types.ts' */
9
11
  import { cmp } from '../../string/module.f.mjs'
10
12
  import { set as setSet } from '../set/module.f.mjs'
11
13
  import { assertEq } from '../../../asserts/module.f.mjs'
@@ -2,6 +2,9 @@
2
2
  * Core persistent B-tree construction and traversal helpers.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { List, Thunk } from '../list/types.ts'
7
+ * @import { TNode, Tree } from './types/types.ts'
5
8
  */
6
9
  import type { List } from '../list/types.ts';
7
10
  import type { Tree } from './types/types.ts';
@@ -2,12 +2,13 @@
2
2
  * Core persistent B-tree construction and traversal helpers.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { List, Thunk } from '../list/types.ts'
7
+ * @import { TNode, Tree } from './types/types.ts'
5
8
  */
6
9
 
7
10
  import { flat } from '../list/module.f.mjs'
8
- /** @import { List, Thunk } from '../list/types.ts' */
9
11
  import { map } from '../nullable/module.f.mjs'
10
- /** @import { TNode, Tree } from './types/types.ts' */
11
12
 
12
13
  /** @type {<T>(node: TNode<T>) => Thunk<T>} */
13
14
  const nodeValues
@@ -1,4 +1,8 @@
1
- /** @import { Unknown } from '../../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../../media/json/types.ts'
3
+ * @import { TNode } from './types/types.ts'
4
+ * @import { List, Result } from '../list/types.ts'
5
+ */
2
6
  declare const valueTest1: () => void;
3
7
  declare const valuesTest2: () => void;
4
8
  declare const findTrue: () => void;
@@ -1,11 +1,13 @@
1
- /** @import { Unknown } from '../../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../../media/json/types.ts'
3
+ * @import { TNode } from './types/types.ts'
4
+ * @import { List, Result } from '../list/types.ts'
5
+ */
2
6
 
3
- /** @import { TNode } from './types/types.ts' */
4
7
  import { values } from './module.f.mjs'
5
8
  import { stringify as jsonStringify } from '../../media/json/module.f.mjs'
6
9
  import { sort } from '../object/module.f.mjs'
7
10
  import { cmp } from '../string/module.f.mjs'
8
- /** @import { List, Result } from '../list/types.ts' */
9
11
  import { next, toArray } from '../list/module.f.mjs'
10
12
  import { set as setSet } from './set/module.f.mjs'
11
13
  import { value, find as findFind } from './find/module.f.mjs'
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Removal operations for persistent B-tree structures.
3
+ *
4
+ * @module
5
+ *
6
+ * @import { Leaf1, TNode, Branch1, Branch3, Branch5, Tree } from '../types/types.ts'
7
+ * @import { Compare } from '../../function/compare/types.ts'
8
+ * @import { Path, PathItem } from '../find/types.ts'
9
+ * @import { Tuple } from '../../array/types.ts'
10
+ */
1
11
  import type { Leaf1, TNode, Branch1, Branch3, Branch5, Tree } from '../types/types.ts';
2
12
  import type { Compare } from '../../function/compare/types.ts';
3
13
  import type { Path } from '../find/types.ts';
@@ -16,6 +26,7 @@ export declare const proof: {
16
26
  throw: {
17
27
  reduceValue0DefaultBranch: () => void;
18
28
  reduceValue2DefaultBranch: () => void;
29
+ initValue0DefaultBranch: () => void;
19
30
  initValue1DefaultBranch: () => void;
20
31
  };
21
32
  };
@@ -2,19 +2,16 @@
2
2
  * Removal operations for persistent B-tree structures.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { Leaf1, TNode, Branch1, Branch3, Branch5, Tree } from '../types/types.ts'
7
+ * @import { Compare } from '../../function/compare/types.ts'
8
+ * @import { Path, PathItem } from '../find/types.ts'
9
+ * @import { Tuple } from '../../array/types.ts'
5
10
  */
6
- import { collapseRoot } from '../types/module.f.mjs'
7
- /** @import { Leaf1, TNode, Branch1, Branch3, Branch5, Tree } from '../types/types.ts' */
8
-
9
- /** @import { Compare } from '../../function/compare/types.ts' */
10
11
 
12
+ import { collapseRoot } from '../types/module.f.mjs'
11
13
  import { find } from '../find/module.f.mjs'
12
- /** @import { Path, PathItem } from '../find/types.ts' */
13
-
14
14
  import { fold, concat, next } from '../../list/module.f.mjs'
15
-
16
- /** @import { Tuple } from '../../array/types.ts' */
17
-
18
15
  import { map } from '../../nullable/module.f.mjs'
19
16
 
20
17
  /**
@@ -180,6 +177,9 @@ export const proof = {
180
177
  reduceValue2DefaultBranch: () => {
181
178
  reduceValue2([['leaf']])([['x'], 's', ['y']])
182
179
  },
180
+ initValue0DefaultBranch: () => {
181
+ initValue0(null)([['x'], 's', [['a'], 'b', ['c']]])
182
+ },
183
183
  initValue1DefaultBranch: () => {
184
184
  initValue1(null)([[['a'], 'b', ['c']], 'd', ['e']])
185
185
  },
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @import { TNode } from '../types/types.ts'
3
+ */
1
4
  declare const test: () => void;
2
5
  declare const test2: () => void;
3
6
  declare const test3: () => void;
@@ -1,5 +1,8 @@
1
+ /**
2
+ * @import { TNode } from '../types/types.ts'
3
+ */
4
+
1
5
  import { nodeRemove } from './module.f.mjs'
2
- /** @import { TNode } from '../types/types.ts' */
3
6
  import { set as setSet } from '../set/module.f.mjs'
4
7
  import { cmp } from '../../string/module.f.mjs'
5
8
  import { stringify } from '../../../media/json/module.f.mjs'
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Insertion and update operations for persistent B-tree structures.
3
+ *
4
+ * @module
5
+ *
6
+ * @import { Branch1, Branch3, Branch5, Branch7, TNode, Tree } from '../types/types.ts'
7
+ * @import { First, PathItem, Result } from '../find/types.ts'
8
+ * @import { Compare } from '../../function/compare/types.ts'
9
+ */
1
10
  import type { Branch1, Branch3, TNode, Tree } from '../types/types.ts';
2
11
  import type { Compare } from '../../function/compare/types.ts';
3
12
  export type _Branch1To3<T> = Branch1<T> | Branch3<T>;
@@ -2,15 +2,14 @@
2
2
  * Insertion and update operations for persistent B-tree structures.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { Branch1, Branch3, Branch5, Branch7, TNode, Tree } from '../types/types.ts'
7
+ * @import { First, PathItem, Result } from '../find/types.ts'
8
+ * @import { Compare } from '../../function/compare/types.ts'
5
9
  */
6
- import { collapseRoot } from '../types/module.f.mjs'
7
- /** @import { Branch1, Branch3, Branch5, Branch7, TNode, Tree } from '../types/types.ts' */
8
10
 
11
+ import { collapseRoot } from '../types/module.f.mjs'
9
12
  import { find } from '../find/module.f.mjs'
10
- /** @import { First, PathItem, Result } from '../find/types.ts' */
11
-
12
- /** @import { Compare } from '../../function/compare/types.ts' */
13
-
14
13
  import { fold } from '../../list/module.f.mjs'
15
14
 
16
15
  /**
@@ -1 +1,4 @@
1
+ /**
2
+ * @import { TNode } from '../types/types.ts'
3
+ */
1
4
  export declare const proof: (() => void)[];
@@ -1,5 +1,8 @@
1
+ /**
2
+ * @import { TNode } from '../types/types.ts'
3
+ */
4
+
1
5
  import { set as setSet } from './module.f.mjs'
2
- /** @import { TNode } from '../types/types.ts' */
3
6
  import { cmp } from '../../string/module.f.mjs'
4
7
  import { stringify } from '../../../media/json/module.f.mjs'
5
8
  import { sort } from '../../object/module.f.mjs'
@@ -3,8 +3,9 @@
3
3
  * themselves live in `./types.ts`.
4
4
  *
5
5
  * @module
6
+ *
7
+ * @import { Branch1, Branch3, Branch5, TNode } from './types.ts'
6
8
  */
7
- /** @import { Branch1, Branch3, Branch5, TNode } from './types.ts' */
8
9
  import type { Branch1, Branch3, Branch5, TNode } from './types.ts';
9
10
  /**
10
11
  * Demotes a single-child branch root to its only child.
@@ -3,8 +3,9 @@
3
3
  * themselves live in `./types.ts`.
4
4
  *
5
5
  * @module
6
+ *
7
+ * @import { Branch1, Branch3, Branch5, TNode } from './types.ts'
6
8
  */
7
- /** @import { Branch1, Branch3, Branch5, TNode } from './types.ts' */
8
9
 
9
10
  /**
10
11
  * Demotes a single-child branch root to its only child.
@@ -1,8 +1,17 @@
1
+ /**
2
+ * Compact byte-set operations and predicates. See `./types.ts` for the
3
+ * `ByteSet` type.
4
+ *
5
+ * @module
6
+ *
7
+ * @import { RangeMap } from '../range_map/types.ts'
8
+ * @import { SortedSet } from '../sorted_set/types.ts'
9
+ * @import { ByteSet } from './types.ts'
10
+ */
1
11
  import type { RangeMap } from '../range_map/types.ts';
2
12
  import type { SortedSet } from '../sorted_set/types.ts';
3
13
  import type { ByteSet } from './types.ts';
4
14
  export type _Byte = number;
5
- /** @import { ByteSet } from './types.ts' */
6
15
  /** @typedef {number} _Byte */
7
16
  /** @type {(n: _Byte) => (s: ByteSet) => boolean} */
8
17
  export declare const has: (n: _Byte) => (s: ByteSet) => boolean;
@@ -3,12 +3,14 @@
3
3
  * `ByteSet` type.
4
4
  *
5
5
  * @module
6
+ *
7
+ * @import { RangeMap } from '../range_map/types.ts'
8
+ * @import { SortedSet } from '../sorted_set/types.ts'
9
+ * @import { ByteSet } from './types.ts'
6
10
  */
11
+
7
12
  import { compose } from '../function/module.f.mjs'
8
- /** @import { RangeMap } from '../range_map/types.ts' */
9
- /** @import { SortedSet } from '../sorted_set/types.ts' */
10
13
  import { reverse, countdown, flat, map } from '../list/module.f.mjs'
11
- /** @import { ByteSet } from './types.ts' */
12
14
 
13
15
  /** @typedef {number} _Byte */
14
16
 
@@ -1,4 +1,6 @@
1
- /** @import { Unknown } from '../../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../../media/json/types.ts'
3
+ */
2
4
  export declare const proof: {
3
5
  has: (() => void)[];
4
6
  setRange: () => void;
@@ -1,4 +1,6 @@
1
- /** @import { Unknown } from '../../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../../media/json/types.ts'
3
+ */
2
4
 
3
5
  import { has, empty, set, setRange, unset, universe, complement, toRangeMap } from './module.f.mjs'
4
6
  import { every, countdown, map, toArray } from '../list/module.f.mjs'
@@ -2,9 +2,10 @@
2
2
  * Comparison function types and helpers.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { Index, Tuple } from '../../array/types.ts'
7
+ * @import { Cmp1, Cmp2, Compare, Sign } from './types.ts'
5
8
  */
6
- /** @import { Index, Tuple } from '../../array/types.ts' */
7
- /** @import { Cmp1, Cmp2, Compare, Sign } from './types.ts' */
8
9
  import type { Index, Tuple } from '../../array/types.ts';
9
10
  import type { Cmp1, Cmp2, Compare, Sign } from './types.ts';
10
11
  /** @type {<T>(cmp: Compare<T>) => (value: T) => Index<3>} */
@@ -2,9 +2,10 @@
2
2
  * Comparison function types and helpers.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { Index, Tuple } from '../../array/types.ts'
7
+ * @import { Cmp1, Cmp2, Compare, Sign } from './types.ts'
5
8
  */
6
- /** @import { Index, Tuple } from '../../array/types.ts' */
7
- /** @import { Cmp1, Cmp2, Compare, Sign } from './types.ts' */
8
9
 
9
10
  /** @type {<T>(cmp: Compare<T>) => (value: T) => Index<3>} */
10
11
  export const index3
@@ -1,4 +1,11 @@
1
- /** @import { Func, Fn } from './types.ts' */
1
+ /**
2
+ * Function combinators: composition, identity, argument flipping, and the
3
+ * chainable `Fn` wrapper.
4
+ *
5
+ * @module
6
+ *
7
+ * @import { Func, Fn } from './types.ts'
8
+ */
2
9
  import type { Func, Fn } from './types.ts';
3
10
  /**
4
11
  * A postfix compose function.
@@ -1,4 +1,11 @@
1
- /** @import { Func, Fn } from './types.ts' */
1
+ /**
2
+ * Function combinators: composition, identity, argument flipping, and the
3
+ * chainable `Fn` wrapper.
4
+ *
5
+ * @module
6
+ *
7
+ * @import { Func, Fn } from './types.ts'
8
+ */
2
9
 
3
10
  /**
4
11
  * A postfix compose function.
@@ -2,9 +2,10 @@
2
2
  * Common higher-order operator type aliases.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { Fold, Reduce, Scan, StateScan, Unary } from './types.ts'
5
7
  */
6
8
  import type { Fold, Reduce, Scan, StateScan, Unary } from './types.ts';
7
- /** @import { Fold, Reduce, Scan, StateScan, Unary } from './types.ts' */
8
9
  /** @type {(separator: string) => Reduce<string>} */
9
10
  export declare const join: (separator: string) => Reduce<string>;
10
11
  /** @type {Reduce<string>} */