functionalscript 0.3.4 → 0.3.6

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 (457) hide show
  1. package/com/cpp/module.f.d.ts +10 -0
  2. package/com/cpp/module.f.js +107 -0
  3. package/com/cpp/test.f.d.ts +2 -0
  4. package/com/cpp/{test.f.ts → test.f.js} +9 -11
  5. package/com/cpp/testlib.f.d.ts +2 -0
  6. package/com/cpp/testlib.f.js +5 -0
  7. package/com/cs/module.f.d.ts +12 -0
  8. package/com/cs/module.f.js +80 -0
  9. package/com/cs/test.f.d.ts +2 -0
  10. package/com/cs/{test.f.ts → test.f.js} +9 -11
  11. package/com/cs/testlib.f.d.ts +2 -0
  12. package/com/cs/testlib.f.js +5 -0
  13. package/com/rust/module.f.d.ts +15 -0
  14. package/com/rust/module.f.js +169 -0
  15. package/com/rust/test.f.d.ts +2 -0
  16. package/com/rust/{test.f.ts → test.f.js} +7 -7
  17. package/com/rust/testlib.f.d.ts +2 -0
  18. package/com/rust/testlib.f.js +5 -0
  19. package/com/test/build.f.d.ts +20 -0
  20. package/com/test/build.f.js +58 -0
  21. package/com/types/module.f.d.ts +28 -0
  22. package/com/types/module.f.js +8 -0
  23. package/com/types/testlib.f.d.ts +44 -0
  24. package/com/types/{testlib.f.ts → testlib.f.js} +2 -3
  25. package/commonjs/build/module.f.d.ts +6 -0
  26. package/commonjs/build/module.f.js +69 -0
  27. package/commonjs/build/test.f.d.ts +2 -0
  28. package/commonjs/build/test.f.js +96 -0
  29. package/commonjs/module/function/{module.f.ts → module.f.d.ts} +5 -10
  30. package/commonjs/module/function/module.f.js +4 -0
  31. package/commonjs/module/module.f.d.ts +18 -0
  32. package/commonjs/module/module.f.js +12 -0
  33. package/commonjs/module.f.d.ts +6 -0
  34. package/commonjs/module.f.js +1 -0
  35. package/commonjs/package/dependencies/module.f.d.ts +7 -0
  36. package/commonjs/package/dependencies/module.f.js +13 -0
  37. package/commonjs/package/dependencies/test.f.d.ts +2 -0
  38. package/commonjs/package/dependencies/test.f.js +15 -0
  39. package/commonjs/package/module.f.d.ts +17 -0
  40. package/commonjs/package/module.f.js +18 -0
  41. package/commonjs/package/test.f.d.ts +2 -0
  42. package/commonjs/package/test.f.js +27 -0
  43. package/commonjs/path/module.f.d.ts +24 -0
  44. package/commonjs/path/module.f.js +114 -0
  45. package/commonjs/path/test.f.d.ts +25 -0
  46. package/commonjs/path/{test.f.ts → test.f.js} +123 -89
  47. package/crypto/prime_field/module.f.d.ts +43 -0
  48. package/crypto/prime_field/module.f.js +78 -0
  49. package/crypto/prime_field/test.f.d.ts +13 -0
  50. package/crypto/prime_field/test.f.js +149 -0
  51. package/crypto/secp/module.f.d.ts +68 -0
  52. package/crypto/secp/module.f.js +127 -0
  53. package/crypto/secp/test.f.d.ts +5 -0
  54. package/crypto/secp/test.f.js +72 -0
  55. package/crypto/sha2/module.f.d.ts +13 -0
  56. package/crypto/sha2/module.f.js +145 -0
  57. package/crypto/sha2/test.f.d.ts +9 -0
  58. package/crypto/sha2/test.f.js +82 -0
  59. package/dev/module.f.d.ts +1 -0
  60. package/dev/module.f.js +1 -0
  61. package/dev/test/module.f.d.ts +20 -0
  62. package/dev/test/module.f.js +75 -0
  63. package/dev/test.f.d.ts +9 -0
  64. package/dev/{test.f.ts → test.f.js} +22 -24
  65. package/djs/module.f.d.ts +17 -0
  66. package/djs/module.f.js +63 -0
  67. package/djs/parser/module.f.d.ts +12 -0
  68. package/djs/parser/module.f.js +333 -0
  69. package/djs/parser/test.f.d.ts +12 -0
  70. package/djs/parser/test.f.js +717 -0
  71. package/djs/serializer/module.f.d.ts +9 -0
  72. package/djs/serializer/module.f.js +81 -0
  73. package/djs/test/input.f.d.ts +2 -0
  74. package/djs/test/input.f.js +4 -0
  75. package/djs/test/m.f.d.ts +2 -0
  76. package/djs/test/m.f.js +1 -0
  77. package/djs/test.f.d.ts +12 -0
  78. package/djs/test.f.js +84 -0
  79. package/djs/tokenizer/module.f.d.ts +8 -0
  80. package/djs/tokenizer/module.f.js +60 -0
  81. package/djs/tokenizer/test.f.d.ts +7 -0
  82. package/djs/tokenizer/test.f.js +529 -0
  83. package/fsc/module.f.d.ts +5 -0
  84. package/fsc/module.f.js +75 -0
  85. package/fsc/test.f.d.ts +4 -0
  86. package/fsc/test.f.js +19 -0
  87. package/fsm/module.f.d.ts +13 -0
  88. package/fsm/module.f.js +59 -0
  89. package/fsm/test.f.d.ts +5 -0
  90. package/fsm/test.f.js +137 -0
  91. package/html/module.f.d.ts +13 -0
  92. package/html/module.f.js +58 -0
  93. package/html/test.f.d.ts +9 -0
  94. package/html/test.f.js +42 -0
  95. package/issues/test.f.d.ts +16 -0
  96. package/issues/test.f.js +70 -0
  97. package/js/tokenizer/module.f.d.ts +86 -0
  98. package/js/tokenizer/module.f.js +503 -0
  99. package/js/tokenizer/test.f.d.ts +9 -0
  100. package/js/tokenizer/test.f.js +905 -0
  101. package/json/module.f.d.ts +20 -0
  102. package/json/module.f.js +68 -0
  103. package/json/parser/module.f.d.ts +5 -0
  104. package/json/parser/module.f.js +155 -0
  105. package/json/parser/test.f.d.ts +5 -0
  106. package/json/parser/test.f.js +328 -0
  107. package/json/serializer/module.f.d.ts +7 -0
  108. package/json/serializer/module.f.js +21 -0
  109. package/json/serializer/test.f.d.ts +8 -0
  110. package/json/serializer/test.f.js +87 -0
  111. package/json/test.f.d.ts +8 -0
  112. package/json/test.f.js +61 -0
  113. package/json/tokenizer/module.f.d.ts +8 -0
  114. package/json/tokenizer/module.f.js +52 -0
  115. package/json/tokenizer/test.f.d.ts +6 -0
  116. package/json/tokenizer/test.f.js +419 -0
  117. package/nanvm-lib/tests/test.f.d.ts +27 -0
  118. package/nanvm-lib/tests/test.f.js +84 -0
  119. package/nodejs/version/module.f.d.ts +11 -0
  120. package/nodejs/version/module.f.js +16 -0
  121. package/nodejs/version/test.f.d.ts +2 -0
  122. package/nodejs/version/{test.f.ts → test.f.js} +13 -22
  123. package/package.json +9 -5
  124. package/text/ascii/module.f.d.ts +129 -0
  125. package/text/ascii/module.f.js +148 -0
  126. package/text/ascii/test.f.d.ts +4 -0
  127. package/text/ascii/test.f.js +14 -0
  128. package/text/module.f.d.ts +8 -0
  129. package/text/module.f.js +10 -0
  130. package/text/sgr/module.f.d.ts +8 -0
  131. package/text/sgr/module.f.js +8 -0
  132. package/text/test.f.d.ts +2 -0
  133. package/text/test.f.js +18 -0
  134. package/text/utf16/module.f.d.ts +9 -0
  135. package/text/utf16/module.f.js +66 -0
  136. package/text/utf16/test.f.d.ts +6 -0
  137. package/text/utf16/test.f.js +144 -0
  138. package/text/utf8/module.f.d.ts +6 -0
  139. package/text/utf8/module.f.js +112 -0
  140. package/text/utf8/test.f.d.ts +6 -0
  141. package/text/utf8/test.f.js +175 -0
  142. package/types/array/module.f.d.ts +21 -0
  143. package/types/array/module.f.js +23 -0
  144. package/types/array/test.f.d.ts +10 -0
  145. package/types/array/test.f.js +116 -0
  146. package/types/bigfloat/module.f.d.ts +3 -0
  147. package/types/bigfloat/module.f.js +66 -0
  148. package/types/bigfloat/test.f.d.ts +6 -0
  149. package/types/bigfloat/test.f.js +349 -0
  150. package/types/bigint/module.f.d.ts +54 -0
  151. package/types/bigint/{module.f.ts → module.f.js} +42 -65
  152. package/types/bigint/test.f.d.ts +16 -0
  153. package/types/bigint/test.f.js +199 -0
  154. package/types/bit_vec/module.f.d.ts +134 -0
  155. package/types/bit_vec/{module.f.ts → module.f.js} +47 -65
  156. package/types/bit_vec/test.f.d.ts +22 -0
  157. package/types/bit_vec/test.f.js +210 -0
  158. package/types/btree/find/module.f.d.ts +20 -0
  159. package/types/btree/find/module.f.js +84 -0
  160. package/types/btree/find/test.f.d.ts +2 -0
  161. package/types/btree/find/test.f.js +152 -0
  162. package/types/btree/module.f.d.ts +4 -0
  163. package/types/btree/module.f.js +31 -0
  164. package/types/btree/remove/module.f.d.ts +4 -0
  165. package/types/btree/remove/module.f.js +174 -0
  166. package/types/btree/remove/test.f.d.ts +5 -0
  167. package/types/btree/remove/test.f.js +634 -0
  168. package/types/btree/set/module.f.d.ts +3 -0
  169. package/types/btree/set/module.f.js +103 -0
  170. package/types/btree/set/test.f.d.ts +2 -0
  171. package/types/btree/set/test.f.js +360 -0
  172. package/types/btree/test.f.d.ts +8 -0
  173. package/types/btree/test.f.js +75 -0
  174. package/types/btree/types/module.f.d.ts +11 -0
  175. package/types/btree/types/module.f.js +1 -0
  176. package/types/byte_set/module.f.d.ts +16 -0
  177. package/types/byte_set/module.f.js +28 -0
  178. package/types/byte_set/test.f.d.ts +12 -0
  179. package/types/byte_set/test.f.js +122 -0
  180. package/types/function/compare/module.f.d.ts +10 -0
  181. package/types/function/compare/module.f.js +7 -0
  182. package/types/function/compare/test.f.d.ts +2 -0
  183. package/types/function/compare/test.f.js +8 -0
  184. package/types/function/module.f.d.ts +28 -0
  185. package/types/function/module.f.js +19 -0
  186. package/types/function/operator/module.f.d.ts +20 -0
  187. package/types/function/operator/module.f.js +18 -0
  188. package/types/function/test.f.d.ts +2 -0
  189. package/types/function/test.f.js +12 -0
  190. package/types/list/module.f.d.ts +50 -0
  191. package/types/list/module.f.js +171 -0
  192. package/types/list/test.f.d.ts +22 -0
  193. package/types/list/test.f.js +395 -0
  194. package/types/map/module.f.d.ts +14 -0
  195. package/types/map/module.f.js +31 -0
  196. package/types/map/test.f.d.ts +5 -0
  197. package/types/map/test.f.js +114 -0
  198. package/types/nibble_set/module.f.d.ts +10 -0
  199. package/types/nibble_set/module.f.js +9 -0
  200. package/types/nibble_set/test.f.d.ts +12 -0
  201. package/types/nibble_set/test.f.js +90 -0
  202. package/types/nullable/module.f.d.ts +3 -0
  203. package/types/nullable/module.f.js +2 -0
  204. package/types/nullable/test.f.d.ts +2 -0
  205. package/types/nullable/test.f.js +12 -0
  206. package/types/number/module.f.d.ts +6 -0
  207. package/types/number/module.f.js +8 -0
  208. package/types/number/test.f.d.ts +11 -0
  209. package/types/number/test.f.js +124 -0
  210. package/types/object/module.f.d.ts +10 -0
  211. package/types/object/module.f.js +12 -0
  212. package/types/object/test.f.d.ts +5 -0
  213. package/types/object/test.f.js +17 -0
  214. package/types/range/module.f.d.ts +3 -0
  215. package/types/range/module.f.js +2 -0
  216. package/types/range/test.f.d.ts +2 -0
  217. package/types/range/test.f.js +18 -0
  218. package/types/range_map/module.f.d.ts +14 -0
  219. package/types/range_map/module.f.js +51 -0
  220. package/types/range_map/test.f.d.ts +6 -0
  221. package/types/range_map/test.f.js +176 -0
  222. package/types/result/module.f.d.ts +7 -0
  223. package/types/result/module.f.js +8 -0
  224. package/types/sorted_list/module.f.d.ts +16 -0
  225. package/types/sorted_list/module.f.js +56 -0
  226. package/types/sorted_list/test.f.d.ts +5 -0
  227. package/types/sorted_list/test.f.js +64 -0
  228. package/types/sorted_set/module.f.d.ts +7 -0
  229. package/types/sorted_set/module.f.js +14 -0
  230. package/types/sorted_set/test.f.d.ts +6 -0
  231. package/types/sorted_set/test.f.js +78 -0
  232. package/types/string/module.f.d.ts +6 -0
  233. package/types/string/module.f.js +11 -0
  234. package/types/string/test.f.d.ts +15 -0
  235. package/types/string/test.f.js +58 -0
  236. package/types/string_set/module.f.d.ts +9 -0
  237. package/types/string_set/module.f.js +22 -0
  238. package/types/string_set/test.f.d.ts +5 -0
  239. package/types/string_set/test.f.js +65 -0
  240. package/.github/FUNDING.yml +0 -12
  241. package/.github/dependabot.yml +0 -11
  242. package/.github/workflows/ci.yml +0 -88
  243. package/.github/workflows/npm-publish.yml +0 -53
  244. package/CHANGELOG.md +0 -29
  245. package/Cargo.lock +0 -18
  246. package/Cargo.toml +0 -7
  247. package/com/README.md +0 -3
  248. package/com/cpp/README.md +0 -80
  249. package/com/cpp/module.f.ts +0 -180
  250. package/com/cpp/nanocom.hpp +0 -195
  251. package/com/cpp/testlib.f.ts +0 -8
  252. package/com/cs/module.f.ts +0 -145
  253. package/com/cs/testlib.f.ts +0 -8
  254. package/com/proposals.md +0 -28
  255. package/com/rust/module.f.ts +0 -287
  256. package/com/rust/nanocom/Cargo.lock +0 -7
  257. package/com/rust/nanocom/Cargo.toml +0 -15
  258. package/com/rust/nanocom/README.md +0 -56
  259. package/com/rust/nanocom/src/class.rs +0 -6
  260. package/com/rust/nanocom/src/cobject.rs +0 -90
  261. package/com/rust/nanocom/src/guid.rs +0 -15
  262. package/com/rust/nanocom/src/hresult.rs +0 -7
  263. package/com/rust/nanocom/src/interface.rs +0 -9
  264. package/com/rust/nanocom/src/iunknown.rs +0 -13
  265. package/com/rust/nanocom/src/lib.rs +0 -20
  266. package/com/rust/nanocom/src/object.rs +0 -34
  267. package/com/rust/nanocom/src/ref.rs +0 -57
  268. package/com/rust/nanocom/src/vmt.rs +0 -7
  269. package/com/rust/nanocom/tests/it.rs +0 -186
  270. package/com/rust/nanocom/tests/itmod.rs +0 -195
  271. package/com/rust/testlib.f.ts +0 -8
  272. package/com/test/build.f.ts +0 -111
  273. package/com/test/build.ts +0 -45
  274. package/com/test/cpp/main.cpp +0 -74
  275. package/com/test/cs/Program.cs +0 -31
  276. package/com/test/cs/cs.csproj +0 -16
  277. package/com/test/rust/Cargo.toml +0 -12
  278. package/com/test/rust/src/lib.rs +0 -56
  279. package/com/types/module.f.ts +0 -62
  280. package/commonjs/README.md +0 -94
  281. package/commonjs/build/module.f.ts +0 -100
  282. package/commonjs/build/test.f.ts +0 -107
  283. package/commonjs/module/module.f.ts +0 -41
  284. package/commonjs/module.f.ts +0 -7
  285. package/commonjs/module.ts +0 -31
  286. package/commonjs/package/dependencies/module.f.ts +0 -22
  287. package/commonjs/package/dependencies/test.f.ts +0 -8
  288. package/commonjs/package/module.f.ts +0 -31
  289. package/commonjs/package/test.f.ts +0 -12
  290. package/commonjs/path/README.md +0 -17
  291. package/commonjs/path/module.f.ts +0 -171
  292. package/commonjs/test.ts +0 -64
  293. package/crypto/README.md +0 -3
  294. package/crypto/prime_field/module.f.ts +0 -114
  295. package/crypto/prime_field/test.f.ts +0 -95
  296. package/crypto/secp/module.f.ts +0 -182
  297. package/crypto/secp/test.f.ts +0 -68
  298. package/crypto/sha2/module.f.ts +0 -215
  299. package/crypto/sha2/test.f.ts +0 -83
  300. package/deno.json +0 -71
  301. package/dev/README.md +0 -8
  302. package/dev/index.ts +0 -3
  303. package/dev/module.f.ts +0 -1
  304. package/dev/module.ts +0 -195
  305. package/dev/test/module.f.ts +0 -135
  306. package/dev/test.ts +0 -53
  307. package/djs/README.md +0 -54
  308. package/djs/module.f.ts +0 -76
  309. package/djs/parser/module.f.ts +0 -509
  310. package/djs/parser/test.f.ts +0 -461
  311. package/djs/serializer/module.f.ts +0 -90
  312. package/djs/test.f.ts +0 -67
  313. package/djs/tokenizer/module.f.ts +0 -99
  314. package/djs/tokenizer/test.f.ts +0 -364
  315. package/doc/LANGUAGE.md +0 -255
  316. package/doc/README.md +0 -61
  317. package/doc/byte-code.md +0 -59
  318. package/doc/fa.md +0 -174
  319. package/doc/predefined.md +0 -143
  320. package/doc/proposals.md +0 -21
  321. package/doc/vm/README.md +0 -24
  322. package/doc/vm-rearchitecture.md +0 -129
  323. package/doc/vm.md +0 -150
  324. package/fsc/README.md +0 -111
  325. package/fsc/module.f.ts +0 -122
  326. package/fsc/test.f.ts +0 -21
  327. package/fsm/README.md +0 -113
  328. package/fsm/module.f.ts +0 -107
  329. package/fsm/test.f.ts +0 -139
  330. package/funding.json +0 -61
  331. package/html/README.md +0 -32
  332. package/html/module.f.ts +0 -109
  333. package/html/test.f.ts +0 -37
  334. package/issues/01-test-debug.md +0 -3
  335. package/issues/02-esm.md +0 -8
  336. package/issues/03-djs.md +0 -57
  337. package/issues/05-publish.md +0 -40
  338. package/issues/11-fs-load.md +0 -13
  339. package/issues/17-djs-extension.md +0 -6
  340. package/issues/README.md +0 -42
  341. package/issues/lang/1000-json.md +0 -50
  342. package/issues/lang/2110-default-export.md +0 -11
  343. package/issues/lang/2120-const.md +0 -14
  344. package/issues/lang/2130-default-import.md +0 -10
  345. package/issues/lang/2210-block-comment.md +0 -12
  346. package/issues/lang/2220-namespace-import.md +0 -25
  347. package/issues/lang/2310-undefined.md +0 -7
  348. package/issues/lang/2320-bigint.md +0 -7
  349. package/issues/lang/2330-property-accessor.md +0 -225
  350. package/issues/lang/2340-operators.md +0 -41
  351. package/issues/lang/2350-grouping.md +0 -11
  352. package/issues/lang/2360-built-in.md +0 -81
  353. package/issues/lang/2410-identifier-property.md +0 -9
  354. package/issues/lang/2420-line-comment.md +0 -10
  355. package/issues/lang/2430-trailing-comma.md +0 -13
  356. package/issues/lang/2440-shorthand.md +0 -8
  357. package/issues/lang/2450-destructuring.md +0 -12
  358. package/issues/lang/3110-function.md +0 -35
  359. package/issues/lang/3120-parameters.md +0 -9
  360. package/issues/lang/3130-body-const.md +0 -12
  361. package/issues/lang/3220-let.md +0 -11
  362. package/issues/lang/3240-export.md +0 -44
  363. package/issues/lang/3370-type-inference.md +0 -69
  364. package/issues/lang/3380-promise.md +0 -22
  365. package/issues/lang/3390-class.md +0 -3
  366. package/issues/lang/3410-expression.md +0 -12
  367. package/issues/lang/3420-one-parameter.md +0 -10
  368. package/issues/lang/3430-assignments.md +0 -23
  369. package/issues/lang/README.md +0 -193
  370. package/issues/test.f.ts +0 -58
  371. package/js/tokenizer/module.f.ts +0 -882
  372. package/js/tokenizer/test.f.ts +0 -617
  373. package/json/html/README.md +0 -49
  374. package/json/module.f.ts +0 -94
  375. package/json/parser/module.f.ts +0 -221
  376. package/json/parser/test.f.ts +0 -255
  377. package/json/serializer/module.f.ts +0 -74
  378. package/json/serializer/test.f.ts +0 -64
  379. package/json/test.f.ts +0 -48
  380. package/json/tokenizer/module.f.ts +0 -85
  381. package/json/tokenizer/test.f.ts +0 -290
  382. package/nanvm-lib/Cargo.toml +0 -6
  383. package/nanvm-lib/src/extension.rs +0 -130
  384. package/nanvm-lib/src/interface.rs +0 -133
  385. package/nanvm-lib/src/lib.rs +0 -7
  386. package/nanvm-lib/src/naive.rs +0 -236
  387. package/nanvm-lib/src/nanenum.rs +0 -236
  388. package/nanvm-lib/src/nullish.rs +0 -7
  389. package/nanvm-lib/src/sign.rs +0 -5
  390. package/nanvm-lib/src/simple.rs +0 -32
  391. package/nanvm-lib/tests/test.f.ts +0 -80
  392. package/nanvm-lib/tests/test.rs +0 -108
  393. package/nodejs/version/main.ts +0 -4
  394. package/nodejs/version/module.f.ts +0 -42
  395. package/text/README.md +0 -110
  396. package/text/ascii/module.f.ts +0 -219
  397. package/text/ascii/test.f.ts +0 -14
  398. package/text/module.f.ts +0 -30
  399. package/text/sgr/README.md +0 -3
  400. package/text/sgr/module.f.ts +0 -11
  401. package/text/test.f.ts +0 -19
  402. package/text/utf16/module.f.ts +0 -120
  403. package/text/utf16/test.f.ts +0 -107
  404. package/text/utf8/module.f.ts +0 -116
  405. package/text/utf8/test.f.ts +0 -125
  406. package/tsconfig.json +0 -104
  407. package/types/array/module.f.ts +0 -89
  408. package/types/array/test.f.ts +0 -88
  409. package/types/bigfloat/module.f.ts +0 -93
  410. package/types/bigfloat/test.f.ts +0 -218
  411. package/types/bigint/README.md +0 -35
  412. package/types/bigint/test.f.ts +0 -144
  413. package/types/bit_vec/README.md +0 -18
  414. package/types/bit_vec/test.f.ts +0 -129
  415. package/types/btree/README.md +0 -160
  416. package/types/btree/find/module.f.ts +0 -92
  417. package/types/btree/find/test.f.ts +0 -122
  418. package/types/btree/module.f.ts +0 -35
  419. package/types/btree/remove/module.f.ts +0 -151
  420. package/types/btree/remove/test.f.ts +0 -498
  421. package/types/btree/set/module.f.ts +0 -89
  422. package/types/btree/set/test.f.ts +0 -415
  423. package/types/btree/test.f.ts +0 -92
  424. package/types/btree/types/module.f.ts +0 -27
  425. package/types/byte_set/module.f.ts +0 -73
  426. package/types/byte_set/test.f.ts +0 -84
  427. package/types/function/compare/module.f.ts +0 -26
  428. package/types/function/compare/test.f.ts +0 -7
  429. package/types/function/module.f.ts +0 -43
  430. package/types/function/operator/module.f.ts +0 -65
  431. package/types/function/test.f.ts +0 -20
  432. package/types/list/module.f.ts +0 -350
  433. package/types/list/test.f.ts +0 -327
  434. package/types/map/module.f.ts +0 -65
  435. package/types/map/test.f.ts +0 -76
  436. package/types/nibble_set/module.f.ts +0 -34
  437. package/types/nibble_set/test.f.ts +0 -57
  438. package/types/nullable/module.f.ts +0 -9
  439. package/types/nullable/test.f.ts +0 -9
  440. package/types/number/module.f.ts +0 -20
  441. package/types/number/test.f.ts +0 -194
  442. package/types/object/module.f.ts +0 -30
  443. package/types/object/test.f.ts +0 -14
  444. package/types/range/module.f.ts +0 -10
  445. package/types/range/test.f.ts +0 -9
  446. package/types/range_map/module.f.ts +0 -70
  447. package/types/range_map/test.f.ts +0 -189
  448. package/types/result/module.f.ts +0 -20
  449. package/types/result/module.ts +0 -18
  450. package/types/sorted_list/module.f.ts +0 -83
  451. package/types/sorted_list/test.f.ts +0 -57
  452. package/types/sorted_set/module.f.ts +0 -36
  453. package/types/sorted_set/test.f.ts +0 -67
  454. package/types/string/module.f.ts +0 -26
  455. package/types/string/test.f.ts +0 -43
  456. package/types/string_set/module.f.ts +0 -37
  457. package/types/string_set/test.f.ts +0 -34
@@ -0,0 +1,395 @@
1
+ import * as _ from "./module.f.js";
2
+ import * as json from "../../json/module.f.js";
3
+ import * as o from "../object/module.f.js";
4
+ const { sort } = o;
5
+ import * as operator from "../function/operator/module.f.js";
6
+ const { addition, strictEqual, reduceToScan } = operator;
7
+ const stringify = sequence => json.stringify(sort)(_.toArray(sequence));
8
+ const stringifyTest = () => {
9
+ const s = stringify([1, 2, 3]);
10
+ if (s !== '[1,2,3]') {
11
+ throw s;
12
+ }
13
+ };
14
+ const cycle = () => {
15
+ const x = stringify(_.toArray(_.take(10)(_.cycle([1, 2, 3]))));
16
+ if (x !== '[1,2,3,1,2,3,1,2,3,1]') {
17
+ throw x;
18
+ }
19
+ };
20
+ const countdown = () => {
21
+ const result = stringify(_.countdown(10));
22
+ if (result !== '[9,8,7,6,5,4,3,2,1,0]') {
23
+ throw result;
24
+ }
25
+ };
26
+ const flat = () => {
27
+ const result = stringify(_.flat([[1, 2, 3], [4, 5], [6], [], [7, 8, 9]]));
28
+ if (result !== '[1,2,3,4,5,6,7,8,9]') {
29
+ throw result;
30
+ }
31
+ };
32
+ const concat = () => {
33
+ const result = _.concat([1])([2]);
34
+ const x = _.next(result);
35
+ if (x === null) {
36
+ throw x;
37
+ }
38
+ if (x.first !== 1) {
39
+ throw x;
40
+ }
41
+ };
42
+ const flatMap = () => {
43
+ const result = stringify(_.flatMap((x) => [x, x * 2, x * 3])([0, 1, 2, 3]));
44
+ if (result !== '[0,0,0,1,2,3,2,4,6,3,6,9]') {
45
+ throw result;
46
+ }
47
+ };
48
+ const take = [
49
+ () => {
50
+ const result = stringify(_.take(3)([1, 2, 3, 4, 5, 6, 7, 8, 9]));
51
+ if (result !== '[1,2,3]') {
52
+ throw result;
53
+ }
54
+ },
55
+ () => {
56
+ const result = stringify(_.take(20)([1, 2, 3, 4, 5, 6, 7, 8, 9]));
57
+ if (result !== '[1,2,3,4,5,6,7,8,9]') {
58
+ throw result;
59
+ }
60
+ },
61
+ () => {
62
+ const result = stringify(_.take(0)([1, 2, 3, 4, 5, 6, 7, 8, 9]));
63
+ if (result !== '[]') {
64
+ throw result;
65
+ }
66
+ }
67
+ ];
68
+ const find = [
69
+ () => {
70
+ const result = _.find(null)((x) => x % 2 === 0)([1, 3, 5, 7]);
71
+ if (result !== null) {
72
+ throw result;
73
+ }
74
+ },
75
+ () => {
76
+ const result = _.find(null)((x) => x % 2 === 0)([1, 2, 3, 4]);
77
+ if (result !== 2) {
78
+ throw result;
79
+ }
80
+ }
81
+ ];
82
+ const takeWhile = [
83
+ () => {
84
+ const result = stringify(_.takeWhile((x) => x < 10)([1, 2, 3, 4, 5, 10, 11]));
85
+ if (result !== '[1,2,3,4,5]') {
86
+ throw result;
87
+ }
88
+ },
89
+ () => {
90
+ const result = stringify(_.takeWhile((x) => x < 6)([1, 2, 3, 4, 5, 6, 7, 8, 9]));
91
+ if (result !== '[1,2,3,4,5]') {
92
+ throw result;
93
+ }
94
+ }
95
+ ];
96
+ const dropWhile = () => {
97
+ const result = stringify(_.dropWhile((x) => x < 10)([1, 2, 3, 4, 5, 10, 11]));
98
+ if (result !== '[10,11]') {
99
+ throw result;
100
+ }
101
+ };
102
+ const drop = [
103
+ () => {
104
+ const result = stringify(_.drop(3)([1, 2, 3, 4, 5, 10, 11]));
105
+ if (result !== '[4,5,10,11]') {
106
+ throw result;
107
+ }
108
+ },
109
+ () => {
110
+ const result = stringify(_.drop(0)([1, 2, 3, 4, 5, 10, 11]));
111
+ if (result !== '[1,2,3,4,5,10,11]') {
112
+ throw result;
113
+ }
114
+ },
115
+ () => {
116
+ const result = stringify(_.drop(10)([1, 2, 3, 4, 5, 10, 11]));
117
+ if (result !== '[]') {
118
+ throw result;
119
+ }
120
+ }
121
+ ];
122
+ const additionTests = [
123
+ () => {
124
+ const op = reduceToScan(addition);
125
+ const result = stringify(_.scan(op)([2, 3, 4, 5]));
126
+ if (result !== '[2,5,9,14]') {
127
+ throw result;
128
+ }
129
+ },
130
+ () => {
131
+ const result = _.reduce(addition)(null)([2, 3, 4, 5]);
132
+ if (result !== 14) {
133
+ throw result;
134
+ }
135
+ },
136
+ () => {
137
+ const result = _.reduce(addition)(null)([]);
138
+ if (result !== null) {
139
+ throw result;
140
+ }
141
+ }
142
+ ];
143
+ const entries = [
144
+ () => {
145
+ const result = stringify(_.entries([]));
146
+ if (result !== '[]') {
147
+ throw result;
148
+ }
149
+ },
150
+ () => {
151
+ const result = stringify(_.entries(['hello', 'world']));
152
+ if (result !== '[[0,"hello"],[1,"world"]]') {
153
+ throw result;
154
+ }
155
+ }
156
+ ];
157
+ const reverse = [
158
+ () => {
159
+ const result = stringify(_.reverse([]));
160
+ if (result !== '[]') {
161
+ throw result;
162
+ }
163
+ },
164
+ () => {
165
+ const result = stringify(_.reverse([1, 2, 3, 4, 5]));
166
+ if (result !== '[5,4,3,2,1]') {
167
+ throw result;
168
+ }
169
+ }
170
+ ];
171
+ const zip = [
172
+ () => {
173
+ const result = stringify(_.zip([0, 1, 2])(['a', 'b', 'c', 'd']));
174
+ if (result !== '[[0,"a"],[1,"b"],[2,"c"]]') {
175
+ throw result;
176
+ }
177
+ },
178
+ () => {
179
+ const result = stringify(_.zip([0, 1, 2])(['a', 'b']));
180
+ if (result !== '[[0,"a"],[1,"b"]]') {
181
+ throw result;
182
+ }
183
+ }
184
+ ];
185
+ const logic = () => {
186
+ const map5 = _.map((x) => x > 5);
187
+ return [
188
+ () => {
189
+ const result = _.some(map5([0, 1, 7]));
190
+ if (!result) {
191
+ throw result;
192
+ }
193
+ },
194
+ () => {
195
+ const result = _.some(map5([0, 1, 4]));
196
+ if (result) {
197
+ throw result;
198
+ }
199
+ },
200
+ () => {
201
+ const result = _.some(map5([]));
202
+ if (result) {
203
+ throw result;
204
+ }
205
+ },
206
+ () => {
207
+ const result = _.every(map5([0, 1, 7]));
208
+ if (result) {
209
+ throw result;
210
+ }
211
+ },
212
+ () => {
213
+ const result = _.every(map5([6, 11, 7]));
214
+ if (!result) {
215
+ throw result;
216
+ }
217
+ },
218
+ () => {
219
+ const result = _.every(map5([]));
220
+ if (!result) {
221
+ throw result;
222
+ }
223
+ }
224
+ ];
225
+ };
226
+ // stress tests
227
+ const stress = () => ({
228
+ toArray: () => {
229
+ // 200_000_000 is too much
230
+ const n = 100_000_000;
231
+ const result = _.toArray(_.countdown(n));
232
+ if (result.length !== n) {
233
+ throw result.length;
234
+ }
235
+ const len = _.length(_.filter((x) => x > n)(result));
236
+ if (len !== 0) {
237
+ throw len;
238
+ }
239
+ },
240
+ first: () => {
241
+ // 100_000_000 is too much
242
+ const n = 50_000_000;
243
+ const result = _.toArray(_.countdown(n));
244
+ if (result.length !== n) {
245
+ throw result.length;
246
+ }
247
+ const first = _.first(null)(result);
248
+ if (first !== n - 1) {
249
+ throw first;
250
+ }
251
+ },
252
+ concatBack: () => {
253
+ let sequence = [];
254
+ // 20_000_000 is too much
255
+ // 10_000_000 is too much for Deno 1
256
+ for (let i = 0; i < 5_000_000; ++i) {
257
+ sequence = _.concat(sequence)([i]);
258
+ }
259
+ const r = _.toArray(sequence);
260
+ },
261
+ flatToArray: () => {
262
+ let sequence = [];
263
+ // 4_000_000 is too much
264
+ for (let i = 0; i < 2_000_000; ++i) {
265
+ sequence = _.flat([sequence, [i]]);
266
+ }
267
+ const r = _.toArray(sequence);
268
+ },
269
+ flatNext: () => {
270
+ let sequence = [];
271
+ // 4_000_000 is too much
272
+ for (let i = 0; i < 2_000_000; ++i) {
273
+ sequence = _.flat([sequence, [i]]);
274
+ }
275
+ const a = _.next(sequence);
276
+ },
277
+ concatFront: () => {
278
+ let sequence = [];
279
+ // 20_000_000 is too much
280
+ for (let i = 0; i < 10_000_000; ++i) {
281
+ sequence = _.concat([i])(sequence);
282
+ }
283
+ const a = _.next(sequence);
284
+ },
285
+ flatFront: () => {
286
+ let sequence = [];
287
+ // 10_000_000 is too much
288
+ for (let i = 0; i < 5_000_000; ++i) {
289
+ sequence = _.flat([[i], sequence]);
290
+ }
291
+ const a = _.next(sequence);
292
+ },
293
+ filterMap: () => {
294
+ // 100_000_000 is too much
295
+ const n = 50_000_000;
296
+ const result = _.toArray(_.countdown(n));
297
+ if (result.length !== n) {
298
+ throw result.length;
299
+ }
300
+ const len = _.length(_.filterMap(() => null)(result));
301
+ if (len !== 0) {
302
+ throw len;
303
+ }
304
+ },
305
+ dropWhile: () => {
306
+ // 50_000_000 is too much
307
+ const n = 20_000_000;
308
+ const result = _.toArray(_.countdown(n));
309
+ if (result.length !== n) {
310
+ throw result.length;
311
+ }
312
+ const len = _.length(_.dropWhile(() => true)(result));
313
+ if (len !== 0) {
314
+ throw len;
315
+ }
316
+ },
317
+ reverse: () => {
318
+ // 10_000_000 is too much
319
+ const n = 5_000_000;
320
+ const result = _.toArray(_.reverse(_.countdown(n)));
321
+ if (result.length !== n) {
322
+ throw result.length;
323
+ }
324
+ }
325
+ });
326
+ export default {
327
+ stringifyTest,
328
+ cycle,
329
+ countdown,
330
+ flat,
331
+ concat,
332
+ flatMap,
333
+ take,
334
+ find,
335
+ takeWhile,
336
+ dropWhile,
337
+ drop,
338
+ additionTests,
339
+ entries,
340
+ reverse,
341
+ zip,
342
+ logic,
343
+ strictEqual: [
344
+ () => {
345
+ const result = _.equal(strictEqual)([1])([2, 3]);
346
+ if (result) {
347
+ throw result;
348
+ }
349
+ },
350
+ () => {
351
+ const result = _.equal(strictEqual)([1, 3])([1]);
352
+ if (result) {
353
+ throw result;
354
+ }
355
+ },
356
+ () => {
357
+ const result = _.equal(strictEqual)([15, 78])([15, 78]);
358
+ if (!result) {
359
+ throw result;
360
+ }
361
+ },
362
+ () => {
363
+ const result = _.equal(strictEqual)([])([]);
364
+ if (!result) {
365
+ throw result;
366
+ }
367
+ }
368
+ ],
369
+ isEmpty: [
370
+ () => {
371
+ const result = _.isEmpty(() => []);
372
+ if (result !== true) {
373
+ throw result;
374
+ }
375
+ },
376
+ () => {
377
+ const result = _.isEmpty(() => [2]);
378
+ if (result !== false) {
379
+ throw result;
380
+ }
381
+ }
382
+ ],
383
+ length: () => {
384
+ if (_.length([1, 2, 3]) !== 3) {
385
+ throw 3;
386
+ }
387
+ if (_.length(null) !== 0) {
388
+ throw 0;
389
+ }
390
+ if (_.length(_.flat([[1, 3], null, () => [3], _.concat([12])([4, 89])])) !== 6) {
391
+ throw 6;
392
+ }
393
+ },
394
+ // stress
395
+ };
@@ -0,0 +1,14 @@
1
+ import * as BtreeTypes from '../btree/types/module.f.ts';
2
+ import * as Compare from '../function/compare/module.f.ts';
3
+ import * as list from '../list/module.f.ts';
4
+ import * as Operator from '../function/operator/module.f.ts';
5
+ export type Sign = Compare.Sign;
6
+ export type Entry<T> = readonly [string, T];
7
+ export type Map<T> = BtreeTypes.Tree<Entry<T>>;
8
+ export declare const at: (name: string) => <T>(map: Map<T>) => T | null;
9
+ export declare const setReduce: <T>(reduce: Operator.Reduce<T>) => (name: string) => (value: T) => (map: Map<T>) => Map<T>;
10
+ export declare const setReplace: (name: string) => <T>(value: T) => (map: Map<T>) => Map<T>;
11
+ export declare const entries: <T>(map: Map<T>) => list.List<Entry<T>>;
12
+ export declare const fromEntries: <T>(entries: list.List<Entry<T>>) => Map<T>;
13
+ export declare const remove: (name: string) => <T>(map: Map<T>) => Map<T>;
14
+ export declare const empty: null;
@@ -0,0 +1,31 @@
1
+ import * as BtreeTypes from "../btree/types/module.f.js";
2
+ import * as btf from "../btree/find/module.f.js";
3
+ const { value, find } = btf;
4
+ import * as bts from "../btree/set/module.f.js";
5
+ const { set } = bts;
6
+ import * as btr from "../btree/remove/module.f.js";
7
+ const { remove: btreeRemove } = btr;
8
+ import * as bt from "../btree/module.f.js";
9
+ const { values } = bt;
10
+ import * as Compare from "../function/compare/module.f.js";
11
+ import * as s from "../string/module.f.js";
12
+ const { cmp } = s;
13
+ import * as list from "../list/module.f.js";
14
+ const { fold } = list;
15
+ import * as Operator from "../function/operator/module.f.js";
16
+ const keyCmp = a => ([b]) => cmp(a)(b);
17
+ export const at = (name) => (map) => {
18
+ if (map === null) {
19
+ return null;
20
+ }
21
+ const result = value(find(keyCmp(name))(map).first);
22
+ return result === null ? null : result[1];
23
+ };
24
+ const setReduceEntry = reduce => entry => set(keyCmp(entry[0]))(old => old === null ? entry : [old[0], reduce(old[1])(entry[1])]);
25
+ export const setReduce = reduce => name => value => setReduceEntry(reduce)([name, value]);
26
+ const replace = () => b => b;
27
+ export const setReplace = name => value => setReduceEntry(replace)([name, value]);
28
+ export const entries = values;
29
+ export const fromEntries = fold(setReduceEntry(replace))(null);
30
+ export const remove = name => btreeRemove(keyCmp(name));
31
+ export const empty = null;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ main: (() => void)[];
3
+ stress: () => void;
4
+ };
5
+ export default _default;
@@ -0,0 +1,114 @@
1
+ import * as _ from "./module.f.js";
2
+ const { at, setReplace, setReduce, empty, entries, remove } = _;
3
+ import * as seq from "../list/module.f.js";
4
+ export default {
5
+ main: [
6
+ () => {
7
+ let m = setReplace('a')(1)(null);
8
+ if (at('a')(m) !== 1) {
9
+ throw 'error';
10
+ }
11
+ if (at('b')(m) !== null) {
12
+ throw 'error';
13
+ }
14
+ m = setReplace('b')(2)(m);
15
+ if (at('a')(m) !== 1) {
16
+ throw 'error';
17
+ }
18
+ if (at('b')(m) !== 2) {
19
+ throw 'error';
20
+ }
21
+ if (at('c')(m) !== null) {
22
+ throw 'error';
23
+ }
24
+ m = setReplace('z')(3)(m);
25
+ if (at('a')(m) !== 1) {
26
+ throw 'error';
27
+ }
28
+ if (at('b')(m) !== 2) {
29
+ throw 'error';
30
+ }
31
+ if (at('z')(m) !== 3) {
32
+ throw 'error';
33
+ }
34
+ if (at('')(m) !== null) {
35
+ throw 'error';
36
+ }
37
+ m = setReplace('')(4)(m);
38
+ if (at('a')(m) !== 1) {
39
+ throw 'error';
40
+ }
41
+ if (at('b')(m) !== 2) {
42
+ throw 'error';
43
+ }
44
+ if (at('z')(m) !== 3) {
45
+ throw 'error';
46
+ }
47
+ if (at('')(m) !== 4) {
48
+ throw 'error';
49
+ }
50
+ if (at('Hello world!')(m) !== null) {
51
+ throw 'error';
52
+ }
53
+ m = setReplace('Hello world!')(42)(m);
54
+ if (at('a')(m) !== 1) {
55
+ throw 'error';
56
+ }
57
+ if (at('b')(m) !== 2) {
58
+ throw 'error';
59
+ }
60
+ if (at('z')(m) !== 3) {
61
+ throw 'error';
62
+ }
63
+ if (at('')(m) !== 4) {
64
+ throw 'error';
65
+ }
66
+ if (at('Hello world!')(m) !== 42) {
67
+ throw 'error';
68
+ }
69
+ if (at('x')(m) !== null) {
70
+ throw 'error';
71
+ }
72
+ // console.log(Array.from(m.entries()))
73
+ m = remove('Hello world!')(m);
74
+ if (at('Hello world!')(m) !== null) {
75
+ throw m;
76
+ }
77
+ m = setReduce((a) => (b) => a + b)('a')(43)(m);
78
+ if (at('a')(m) !== 44) {
79
+ throw 'error';
80
+ }
81
+ },
82
+ () => {
83
+ let m = setReplace('x')(12)(null);
84
+ m = setReplace('y')(44)(m);
85
+ if (at('x')(m) !== 12) {
86
+ throw 'error';
87
+ }
88
+ if (at('y')(m) !== 44) {
89
+ throw 'error';
90
+ }
91
+ if (at('a')(m) !== null) {
92
+ throw 'error';
93
+ }
94
+ const e = seq.toArray(entries(m));
95
+ if (e.length !== 2) {
96
+ throw 'error';
97
+ }
98
+ },
99
+ ],
100
+ stress: () => {
101
+ let m = empty;
102
+ for (let i = 0; i < 100_000; ++i) {
103
+ m = setReplace((i * i).toString())(i)(m);
104
+ /*
105
+ console.log()
106
+ console.log(`# ${i}`)
107
+ console.log()
108
+ for (const e of m.struct()) {
109
+ console.log(e)
110
+ }
111
+ */
112
+ }
113
+ }
114
+ };
@@ -0,0 +1,10 @@
1
+ type NibbleSet = number;
2
+ type Nibble = number;
3
+ export declare const empty = 0;
4
+ export declare const universe = 65535;
5
+ export declare const has: (n: Nibble) => (s: NibbleSet) => boolean;
6
+ export declare const set: (n: Nibble) => (s: NibbleSet) => NibbleSet;
7
+ export declare const complement: (n: NibbleSet) => NibbleSet;
8
+ export declare const unset: (n: Nibble) => (s: NibbleSet) => NibbleSet;
9
+ export declare const setRange: (r: readonly [number, number]) => (s: NibbleSet) => NibbleSet;
10
+ export {};
@@ -0,0 +1,9 @@
1
+ export const empty = 0;
2
+ export const universe = 0xFFFF;
3
+ const one = n => 1 << n;
4
+ export const has = n => s => ((s >> n) & 1) === 1;
5
+ export const set = n => s => s | one(n);
6
+ export const complement = s => universe ^ s;
7
+ export const unset = n => s => s & complement(one(n));
8
+ const range = ([a, b]) => one(b - a + 1) - 1 << a;
9
+ export const setRange = r => s => s | range(r);
@@ -0,0 +1,12 @@
1
+ declare const _default: {
2
+ has: () => void;
3
+ set: (() => void)[];
4
+ unset: () => (() => void)[];
5
+ setRange: () => void;
6
+ universe: () => void;
7
+ compliment: {
8
+ empty: () => void;
9
+ universe: () => void;
10
+ };
11
+ };
12
+ export default _default;
@@ -0,0 +1,90 @@
1
+ import * as list from "../list/module.f.js";
2
+ const { every, map, countdown } = list;
3
+ import * as _ from "./module.f.js";
4
+ export default {
5
+ has: () => {
6
+ if (_.has(0)(_.empty)) {
7
+ throw _.empty;
8
+ }
9
+ if (_.has(1)(_.empty)) {
10
+ throw _.empty;
11
+ }
12
+ if (_.has(15)(_.empty)) {
13
+ throw _.empty;
14
+ }
15
+ },
16
+ set: [
17
+ () => {
18
+ const s = _.set(0)(_.empty);
19
+ if (s !== 1) {
20
+ throw s;
21
+ }
22
+ if (!_.has(0)(s)) {
23
+ throw s;
24
+ }
25
+ if (_.has(1)(s)) {
26
+ throw s;
27
+ }
28
+ if (_.has(15)(s)) {
29
+ throw s;
30
+ }
31
+ },
32
+ () => {
33
+ const s = _.set(15)(_.empty);
34
+ if (s !== 0x8000) {
35
+ throw s;
36
+ }
37
+ if (_.has(0)(s)) {
38
+ throw s;
39
+ }
40
+ if (_.has(1)(s)) {
41
+ throw s;
42
+ }
43
+ if (!_.has(15)(s)) {
44
+ throw s;
45
+ }
46
+ }
47
+ ],
48
+ unset: () => [
49
+ () => {
50
+ const a = _.set(0)(_.empty);
51
+ const result = _.unset(0)(a);
52
+ if (result !== 0) {
53
+ throw result;
54
+ }
55
+ },
56
+ () => {
57
+ const a = _.set(15)(_.empty);
58
+ const result = _.unset(15)(a);
59
+ if (result !== 0) {
60
+ throw result;
61
+ }
62
+ }
63
+ ],
64
+ setRange: () => {
65
+ const result = _.setRange([2, 5])(_.empty);
66
+ if (result !== 60) {
67
+ throw result;
68
+ }
69
+ },
70
+ universe: () => {
71
+ const x = every(map((v) => _.has(v)(_.universe))(countdown(16)));
72
+ if (!x) {
73
+ throw x;
74
+ }
75
+ },
76
+ compliment: {
77
+ empty: () => {
78
+ const r = _.complement(_.empty);
79
+ if (r !== _.universe) {
80
+ throw r;
81
+ }
82
+ },
83
+ universe: () => {
84
+ const r = _.complement(_.universe);
85
+ if (r !== _.empty) {
86
+ throw r;
87
+ }
88
+ },
89
+ }
90
+ };
@@ -0,0 +1,3 @@
1
+ export type Nullable<T> = T | null;
2
+ export declare const map: <T, R>(f: (value: T) => R) => (value: Nullable<T>) => Nullable<R>;
3
+ export declare const match: <T, R>(f: (_: T) => R) => (none: () => R) => (_: Nullable<T>) => Nullable<R>;
@@ -0,0 +1,2 @@
1
+ export const map = f => value => value === null ? null : f(value);
2
+ export const match = f => none => value => value === null ? none() : f(value);
@@ -0,0 +1,2 @@
1
+ declare const _default: () => void;
2
+ export default _default;