functionalscript 0.1.609 → 0.2.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 (175) hide show
  1. package/com/cpp/module.f.d.mts +4 -8
  2. package/com/cpp/module.f.mjs +20 -25
  3. package/com/cpp/testlib.f.mjs +3 -4
  4. package/com/cs/module.f.d.mts +4 -8
  5. package/com/cs/module.f.mjs +18 -23
  6. package/com/cs/testlib.f.mjs +3 -5
  7. package/com/rust/module.f.d.mts +3 -7
  8. package/com/rust/module.f.mjs +25 -30
  9. package/com/rust/testlib.f.mjs +3 -5
  10. package/com/test/build.f.d.mts +2 -2
  11. package/com/test/build.f.mjs +2 -2
  12. package/com/test/build.mjs +4 -4
  13. package/com/types/module.f.d.mts +5 -10
  14. package/com/types/module.f.mjs +5 -12
  15. package/commonjs/build/module.f.d.mts +13 -17
  16. package/commonjs/build/module.f.mjs +23 -28
  17. package/commonjs/build/test.f.mjs +4 -4
  18. package/commonjs/module/function/module.f.d.mts +0 -2
  19. package/commonjs/module/function/module.f.mjs +0 -2
  20. package/commonjs/module/module.f.d.mts +16 -21
  21. package/commonjs/module/module.f.mjs +2 -9
  22. package/commonjs/module.d.mts +1 -5
  23. package/commonjs/module.f.d.mts +0 -2
  24. package/commonjs/module.f.mjs +0 -2
  25. package/commonjs/module.mjs +2 -7
  26. package/commonjs/package/dependencies/module.f.d.mts +3 -7
  27. package/commonjs/package/dependencies/module.f.mjs +5 -10
  28. package/commonjs/package/dependencies/test.f.mjs +1 -1
  29. package/commonjs/package/module.f.d.mts +12 -18
  30. package/commonjs/package/module.f.mjs +6 -13
  31. package/commonjs/package/test.f.mjs +1 -1
  32. package/commonjs/path/module.f.d.mts +25 -32
  33. package/commonjs/path/module.f.mjs +12 -23
  34. package/commonjs/path/test.f.mjs +11 -11
  35. package/commonjs/test.mjs +1 -1
  36. package/dev/module.f.d.mts +1 -4
  37. package/dev/module.f.mjs +1 -4
  38. package/dev/test/module.f.d.mts +2 -3
  39. package/dev/test/module.f.mjs +4 -6
  40. package/djs/module.f.d.mts +13 -18
  41. package/djs/module.f.mjs +12 -19
  42. package/djs/parser/module.f.d.mts +11 -15
  43. package/djs/parser/module.f.mjs +18 -24
  44. package/djs/parser/test.f.mjs +9 -9
  45. package/djs/test.f.mjs +4 -4
  46. package/djs/tokenizer/module.f.d.mts +6 -10
  47. package/djs/tokenizer/module.f.mjs +18 -23
  48. package/djs/tokenizer/test.f.mjs +6 -6
  49. package/fsc/module.f.d.mts +4 -9
  50. package/fsc/module.f.mjs +17 -24
  51. package/fsc/test.f.mjs +3 -3
  52. package/fsm/module.f.d.mts +13 -20
  53. package/fsm/module.f.mjs +27 -38
  54. package/fsm/test.f.mjs +8 -8
  55. package/html/module.f.d.mts +7 -12
  56. package/html/module.f.mjs +14 -23
  57. package/html/test.f.mjs +4 -4
  58. package/js/tokenizer/module.f.d.mts +10 -15
  59. package/js/tokenizer/module.f.mjs +55 -62
  60. package/js/tokenizer/test.f.mjs +6 -6
  61. package/json/module.f.d.mts +18 -26
  62. package/json/module.f.mjs +18 -31
  63. package/json/parser/module.f.d.mts +9 -13
  64. package/json/parser/module.f.mjs +9 -14
  65. package/json/parser/test.f.mjs +7 -7
  66. package/json/serializer/module.f.d.mts +11 -20
  67. package/json/serializer/module.f.mjs +14 -29
  68. package/json/serializer/test.f.mjs +2 -2
  69. package/json/test.f.mjs +3 -3
  70. package/json/tokenizer/module.f.d.mts +6 -10
  71. package/json/tokenizer/module.f.mjs +14 -19
  72. package/json/tokenizer/test.f.mjs +6 -6
  73. package/jsr.json +1 -1
  74. package/nodejs/version/main.mjs +1 -1
  75. package/nodejs/version/module.f.d.mts +4 -9
  76. package/nodejs/version/module.f.mjs +2 -7
  77. package/nodejs/version/test.f.mjs +3 -3
  78. package/package.json +1 -1
  79. package/prime_field/module.f.d.mts +20 -23
  80. package/prime_field/module.f.mjs +9 -12
  81. package/prime_field/test.f.mjs +1 -1
  82. package/secp/module.f.d.mts +27 -28
  83. package/secp/module.f.mjs +38 -39
  84. package/secp/test.f.mjs +4 -4
  85. package/sha2/module.f.d.mts +8 -16
  86. package/sha2/module.f.mjs +7 -20
  87. package/sha2/test.f.mjs +4 -4
  88. package/text/ascii/module.f.d.mts +69 -72
  89. package/text/ascii/module.f.mjs +5 -10
  90. package/text/ascii/test.f.mjs +3 -3
  91. package/text/module.f.d.mts +9 -14
  92. package/text/module.f.mjs +7 -14
  93. package/text/sgr/module.f.d.mts +7 -9
  94. package/text/sgr/module.f.mjs +2 -4
  95. package/text/test.f.mjs +3 -3
  96. package/text/utf16/module.f.d.mts +8 -15
  97. package/text/utf16/module.f.mjs +17 -28
  98. package/text/utf16/test.f.mjs +5 -5
  99. package/text/utf8/module.f.d.mts +4 -9
  100. package/text/utf8/module.f.mjs +9 -16
  101. package/text/utf8/test.f.mjs +4 -4
  102. package/types/array/module.f.d.mts +14 -24
  103. package/types/array/module.f.mjs +8 -25
  104. package/types/array/test.f.mjs +3 -3
  105. package/types/bigfloat/module.f.d.mts +4 -9
  106. package/types/bigfloat/module.f.mjs +3 -10
  107. package/types/bigfloat/test.f.mjs +1 -1
  108. package/types/bigint/module.f.d.mts +16 -64
  109. package/types/bigint/module.f.mjs +11 -30
  110. package/types/bigint/test.f.mjs +1 -1
  111. package/types/btree/find/module.f.d.mts +20 -26
  112. package/types/btree/find/module.f.mjs +8 -17
  113. package/types/btree/find/test.f.mjs +7 -7
  114. package/types/btree/module.f.d.mts +4 -8
  115. package/types/btree/module.f.mjs +6 -11
  116. package/types/btree/remove/module.f.d.mts +7 -12
  117. package/types/btree/remove/module.f.mjs +10 -17
  118. package/types/btree/remove/test.f.mjs +5 -5
  119. package/types/btree/set/module.f.d.mts +3 -7
  120. package/types/btree/set/module.f.mjs +4 -9
  121. package/types/btree/set/test.f.mjs +4 -4
  122. package/types/btree/test.f.mjs +9 -9
  123. package/types/btree/types/module.f.d.mts +0 -2
  124. package/types/btree/types/module.f.mjs +0 -2
  125. package/types/byte_set/module.f.d.mts +16 -29
  126. package/types/byte_set/module.f.mjs +14 -39
  127. package/types/byte_set/test.f.mjs +5 -5
  128. package/types/function/compare/module.f.d.mts +9 -15
  129. package/types/function/compare/module.f.mjs +3 -12
  130. package/types/function/compare/test.f.mjs +1 -1
  131. package/types/function/module.f.d.mts +20 -27
  132. package/types/function/module.f.mjs +4 -15
  133. package/types/function/operator/module.f.d.mts +28 -43
  134. package/types/function/operator/module.f.mjs +14 -41
  135. package/types/function/test.f.mjs +1 -1
  136. package/types/list/module.f.d.mts +56 -91
  137. package/types/list/module.f.mjs +45 -114
  138. package/types/list/test.f.mjs +10 -10
  139. package/types/map/module.f.d.mts +15 -24
  140. package/types/map/module.f.mjs +15 -30
  141. package/types/map/test.f.mjs +2 -2
  142. package/types/nibble_set/module.f.d.mts +10 -20
  143. package/types/nibble_set/module.f.mjs +7 -24
  144. package/types/nibble_set/test.f.mjs +2 -2
  145. package/types/nullable/module.f.d.mts +3 -8
  146. package/types/nullable/module.f.mjs +2 -9
  147. package/types/nullable/test.f.mjs +1 -1
  148. package/types/number/module.f.d.mts +7 -13
  149. package/types/number/module.f.mjs +8 -19
  150. package/types/number/test.f.mjs +1 -1
  151. package/types/object/module.f.d.mts +11 -18
  152. package/types/object/module.f.mjs +9 -20
  153. package/types/object/test.f.mjs +1 -1
  154. package/types/range/module.f.d.mts +3 -8
  155. package/types/range/module.f.mjs +2 -9
  156. package/types/range/test.f.mjs +1 -1
  157. package/types/range_map/module.f.d.mts +9 -15
  158. package/types/range_map/module.f.mjs +9 -18
  159. package/types/range_map/test.f.mjs +32 -32
  160. package/types/result/module.d.mts +3 -3
  161. package/types/result/module.f.d.mts +6 -12
  162. package/types/result/module.f.mjs +3 -12
  163. package/types/result/module.mjs +2 -2
  164. package/types/sorted_list/module.f.d.mts +22 -28
  165. package/types/sorted_list/module.f.mjs +10 -19
  166. package/types/sorted_list/test.f.mjs +7 -7
  167. package/types/sorted_set/module.f.d.mts +6 -12
  168. package/types/sorted_set/module.f.mjs +7 -16
  169. package/types/sorted_set/test.f.mjs +7 -7
  170. package/types/string/module.f.d.mts +8 -14
  171. package/types/string/module.f.mjs +10 -21
  172. package/types/string/test.f.mjs +2 -2
  173. package/types/string_set/module.f.d.mts +8 -16
  174. package/types/string_set/module.f.mjs +12 -27
  175. package/types/string_set/test.f.mjs +1 -1
@@ -1,13 +1,7 @@
1
- declare namespace _default {
2
- export { sum };
3
- export { min };
4
- export { max };
5
- export { cmp };
6
- }
7
- export default _default;
8
- declare const sum: (input: import("../list/module.f.mjs").List<number>) => number;
9
- declare const min: (input: import("../list/module.f.mjs").List<number>) => number | null;
10
- declare const max: (input: import("../list/module.f.mjs").List<number>) => number | null;
11
- /** @type {(a: number) => (b: number) => Compare.Sign} */
12
- declare const cmp: (a: number) => (b: number) => Compare.Sign;
13
- import * as Compare from '../function/compare/module.f.mjs';
1
+ export const sum: (input: list.List<number>) => number;
2
+ export const min: (input: list.List<number>) => number | null;
3
+ export const max: (input: list.List<number>) => number | null;
4
+ /** @type {(a: number) => (b: number) => compare.Sign} */
5
+ export const cmp: (a: number) => (b: number) => compare.Sign;
6
+ import * as list from '../list/module.f.mjs';
7
+ import * as compare from '../function/compare/module.f.mjs';
@@ -1,27 +1,16 @@
1
1
  // @ts-self-types="./module.f.d.mts"
2
- import list from '../list/module.f.mjs'
2
+ import * as list from '../list/module.f.mjs'
3
3
  const { reduce } = list
4
- import operator from '../function/operator/module.f.mjs'
4
+ import * as operator from '../function/operator/module.f.mjs'
5
5
  const { addition, min: minOp, max: maxOp } = operator
6
- import compare, * as Compare from '../function/compare/module.f.mjs'
6
+ import * as compare from '../function/compare/module.f.mjs'
7
7
  const { unsafeCmp } = compare
8
8
 
9
- const sum = reduce(addition)(0)
9
+ export const sum = reduce(addition)(0)
10
10
 
11
- const min = reduce(minOp)(null)
11
+ export const min = reduce(minOp)(null)
12
12
 
13
- const max = reduce(maxOp)(null)
13
+ export const max = reduce(maxOp)(null)
14
14
 
15
- /** @type {(a: number) => (b: number) => Compare.Sign} */
16
- const cmp = unsafeCmp
17
-
18
- export default {
19
- /** @readonly */
20
- sum,
21
- /** @readonly */
22
- min,
23
- /** @readonly */
24
- max,
25
- /** @readonly */
26
- cmp,
27
- }
15
+ /** @type {(a: number) => (b: number) => compare.Sign} */
16
+ export const cmp = unsafeCmp
@@ -1,4 +1,4 @@
1
- import _ from './module.f.mjs'
1
+ import * as _ from './module.f.mjs'
2
2
  const { sum, min, max, cmp } = _
3
3
 
4
4
  export default {
@@ -1,12 +1,3 @@
1
- declare namespace _default {
2
- export { at };
3
- export { sort };
4
- export { fromEntries };
5
- export { fromMap };
6
- }
7
- export default _default;
8
- export type Map<T> = { readonly [k in string]: T; };
9
- export type Entry<T> = readonly [string, T];
10
1
  /**
11
2
  * @template T
12
3
  * @typedef {{
@@ -18,12 +9,14 @@ export type Entry<T> = readonly [string, T];
18
9
  * @typedef {readonly[string, T]} Entry
19
10
  */
20
11
  /** @type {(name: string) => <T>(object: Map<T>) => T|null} */
21
- declare const at: (name: string) => <T>(object: Map<T>) => T | null;
22
- /** @type {<T>(e: List.List<Entry<T>>) => List.List<Entry<T>>} */
23
- declare const sort: <T>(e: List.List<Entry<T>>) => List.List<Entry<T>>;
24
- /** @type {<T>(e: List.List<Entry<T>>) => Map<T>} */
25
- declare const fromEntries: <T>(e: List.List<Entry<T>>) => Map<T>;
26
- /** @type {<T>(m: BTMap.Map<T>) => Map<T>} */
27
- declare const fromMap: <T>(m: BTMap.Map<T>) => Map<T>;
28
- import * as List from '../list/module.f.mjs';
29
- import * as BTMap from '../map/module.f.mjs';
12
+ export const at: (name: string) => <T>(object: Map<T>) => T | null;
13
+ /** @type {<T>(e: list.List<Entry<T>>) => list.List<Entry<T>>} */
14
+ export const sort: <T>(e: list.List<Entry<T>>) => list.List<Entry<T>>;
15
+ /** @type {<T>(e: list.List<Entry<T>>) => Map<T>} */
16
+ export const fromEntries: <T>(e: list.List<Entry<T>>) => Map<T>;
17
+ /** @type {<T>(m: btMap.Map<T>) => Map<T>} */
18
+ export const fromMap: <T>(m: btMap.Map<T>) => Map<T>;
19
+ export type Map<T> = { readonly [k in string]: T; };
20
+ export type Entry<T> = readonly [string, T];
21
+ import * as list from '../list/module.f.mjs';
22
+ import * as btMap from '../map/module.f.mjs';
@@ -1,7 +1,7 @@
1
1
  // @ts-self-types="./module.f.d.mts"
2
- import list, * as List from '../list/module.f.mjs'
2
+ import * as list from '../list/module.f.mjs'
3
3
  const { iterable } = list
4
- import btMap, * as BTMap from '../map/module.f.mjs'
4
+ import * as btMap from '../map/module.f.mjs'
5
5
  const { entries: mapEntries, fromEntries: mapFromEntries } = btMap
6
6
  const { getOwnPropertyDescriptor, fromEntries: objectFromEntries } = Object
7
7
 
@@ -18,27 +18,16 @@ const { getOwnPropertyDescriptor, fromEntries: objectFromEntries } = Object
18
18
  */
19
19
 
20
20
  /** @type {(name: string) => <T>(object: Map<T>) => T|null} */
21
- const at = name => object => {
21
+ export const at = name => object => {
22
22
  const r = getOwnPropertyDescriptor(object, name)
23
23
  return r === void 0 ? null : r.value
24
24
  }
25
25
 
26
- /** @type {<T>(e: List.List<Entry<T>>) => List.List<Entry<T>>} */
27
- const sort = e => mapEntries(mapFromEntries(e))
26
+ /** @type {<T>(e: list.List<Entry<T>>) => list.List<Entry<T>>} */
27
+ export const sort = e => mapEntries(mapFromEntries(e))
28
28
 
29
- /** @type {<T>(e: List.List<Entry<T>>) => Map<T>} */
30
- const fromEntries = e => objectFromEntries(iterable(e))
29
+ /** @type {<T>(e: list.List<Entry<T>>) => Map<T>} */
30
+ export const fromEntries = e => objectFromEntries(iterable(e))
31
31
 
32
- /** @type {<T>(m: BTMap.Map<T>) => Map<T>} */
33
- const fromMap = m => fromEntries(mapEntries(m))
34
-
35
- export default {
36
- /** @readonly */
37
- at,
38
- /** @readonly */
39
- sort,
40
- /** @readonly */
41
- fromEntries,
42
- /** @readonly */
43
- fromMap,
44
- }
32
+ /** @type {<T>(m: btMap.Map<T>) => Map<T>} */
33
+ export const fromMap = m => fromEntries(mapEntries(m))
@@ -1,4 +1,4 @@
1
- import _ from './module.f.mjs'
1
+ import * as _ from './module.f.mjs'
2
2
 
3
3
  export default {
4
4
  ctor: () => {
@@ -1,11 +1,6 @@
1
- declare namespace _default {
2
- export { contains };
3
- export { one };
4
- }
5
- export default _default;
6
- export type Range = readonly [number, number];
7
1
  /** @typedef {readonly[number,number]} Range */
8
2
  /** @type {(range: Range) => (i: number) => boolean} */
9
- declare const contains: (range: Range) => (i: number) => boolean;
3
+ export const contains: (range: Range) => (i: number) => boolean;
10
4
  /** @type {(i: number) => Range} */
11
- declare const one: (i: number) => Range;
5
+ export const one: (i: number) => Range;
6
+ export type Range = readonly [number, number];
@@ -2,14 +2,7 @@
2
2
  /** @typedef {readonly[number,number]} Range */
3
3
 
4
4
  /** @type {(range: Range) => (i: number) => boolean} */
5
- const contains = ([b, e]) => i => b <= i && i <= e
5
+ export const contains = ([b, e]) => i => b <= i && i <= e
6
6
 
7
7
  /** @type {(i: number) => Range} */
8
- const one = a => [a, a]
9
-
10
- export default {
11
- /** @readonly */
12
- contains,
13
- /** @readonly */
14
- one,
15
- }
8
+ export const one = a => [a, a]
@@ -1,4 +1,4 @@
1
- import _ from './module.f.mjs'
1
+ import * as _ from './module.f.mjs'
2
2
 
3
3
  export default () => {
4
4
  if (!_.contains([0, 5])(1)) { throw 1 }
@@ -1,11 +1,11 @@
1
- declare namespace _default {
2
- export { merge };
3
- export { get };
4
- export { fromRange };
5
- }
6
- export default _default;
1
+ /** @type {<T>(op: Operators<T>) => RangeMerge<T>} */
2
+ export const merge: <T>(op: Operators<T>) => RangeMerge<T>;
3
+ /** @type {<T>(def: T) => (value: number) => (rm: RangeMapArray<T>) => T} */
4
+ export const get: <T>(def: T) => (value: number) => (rm: RangeMapArray<T>) => T;
5
+ /** @type {<T>(def: T) => (r: Range.Range) => (value: T) => RangeMapArray<T>} */
6
+ export const fromRange: <T>(def: T) => (r: Range.Range) => (value: T) => RangeMapArray<T>;
7
7
  export type Entry<T> = [T, number];
8
- export type RangeMap<T> = SortedList.SortedList<Entry<T>>;
8
+ export type RangeMap<T> = sortedList.SortedList<Entry<T>>;
9
9
  export type RangeMapArray<T> = readonly Entry<T>[];
10
10
  export type Operators<T> = {
11
11
  readonly union: O.Reduce<T>;
@@ -13,13 +13,7 @@ export type Operators<T> = {
13
13
  };
14
14
  export type RangeState<T> = Option.Nullable<Entry<T>>;
15
15
  export type RangeMerge<T> = O.Reduce<RangeMap<T>>;
16
- /** @type {<T>(op: Operators<T>) => RangeMerge<T>} */
17
- declare const merge: <T>(op: Operators<T>) => RangeMerge<T>;
18
- /** @type {<T>(def: T) => (value: number) => (rm: RangeMapArray<T>) => T} */
19
- declare const get: <T>(def: T) => (value: number) => (rm: RangeMapArray<T>) => T;
20
- /** @type {<T>(def: T) => (r: Range.Range) => (value: T) => RangeMapArray<T>} */
21
- declare const fromRange: <T>(def: T) => (r: Range.Range) => (value: T) => RangeMapArray<T>;
22
- import * as SortedList from '../sorted_list/module.f.mjs';
16
+ import * as Range from '../range/module.f.mjs';
17
+ import * as sortedList from '../sorted_list/module.f.mjs';
23
18
  import * as O from '../function/operator/module.f.mjs';
24
19
  import * as Option from '../nullable/module.f.mjs';
25
- import * as Range from '../range/module.f.mjs';
@@ -1,10 +1,10 @@
1
1
  // @ts-self-types="./module.f.d.mts"
2
- import sortedList, * as SortedList from '../sorted_list/module.f.mjs'
2
+ import * as sortedList from '../sorted_list/module.f.mjs'
3
3
  const { genericMerge } = sortedList
4
- import list from '../list/module.f.mjs'
4
+ import * as list from '../list/module.f.mjs'
5
5
  const { next } = list
6
6
  import * as Option from '../nullable/module.f.mjs'
7
- import number from '../number/module.f.mjs'
7
+ import * as number from '../number/module.f.mjs'
8
8
  const { cmp } = number
9
9
  import * as O from '../function/operator/module.f.mjs'
10
10
  import * as Range from '../range/module.f.mjs'
@@ -16,7 +16,7 @@ import * as Range from '../range/module.f.mjs'
16
16
 
17
17
  /**
18
18
  * @template T
19
- * @typedef {SortedList.SortedList<Entry<T>>} RangeMap
19
+ * @typedef {sortedList.SortedList<Entry<T>>} RangeMap
20
20
  */
21
21
 
22
22
  /**
@@ -42,7 +42,7 @@ import * as Range from '../range/module.f.mjs'
42
42
  * @typedef {O.Reduce<RangeMap<T>>} RangeMerge
43
43
  */
44
44
 
45
- /** @type {<T>(union: O.Reduce<T>) => (equal: O.Equal<T>) => SortedList.ReduceOp<Entry<T>, RangeState<T>>} */
45
+ /** @type {<T>(union: O.Reduce<T>) => (equal: O.Equal<T>) => sortedList.ReduceOp<Entry<T>, RangeState<T>>} */
46
46
  const reduceOp = union => equal => state => ([aItem, aMax]) => ([bItem, bMax]) => {
47
47
  const sign = cmp(aMax)(bMax)
48
48
  const min = sign === 1 ? bMax : aMax
@@ -51,7 +51,7 @@ const reduceOp = union => equal => state => ([aItem, aMax]) => ([bItem, bMax]) =
51
51
  return [newState, sign, [u, min]]
52
52
  }
53
53
 
54
- /** @type {<T>(equal: O.Equal<T>) => SortedList.TailReduce<Entry<T>, RangeState<T>>} */
54
+ /** @type {<T>(equal: O.Equal<T>) => sortedList.TailReduce<Entry<T>, RangeState<T>>} */
55
55
  const tailReduce = equal => state => tail => {
56
56
  if (state === null) { return tail }
57
57
  const tailResult = next(tail)
@@ -61,10 +61,10 @@ const tailReduce = equal => state => tail => {
61
61
  }
62
62
 
63
63
  /** @type {<T>(op: Operators<T>) => RangeMerge<T>} */
64
- const merge = ({ union, equal }) => genericMerge({ reduceOp: reduceOp(union)(equal), tailReduce: tailReduce(equal) })(null)
64
+ export const merge = ({ union, equal }) => genericMerge({ reduceOp: reduceOp(union)(equal), tailReduce: tailReduce(equal) })(null)
65
65
 
66
66
  /** @type {<T>(def: T) => (value: number) => (rm: RangeMapArray<T>) => T} */
67
- const get = def => value => rm => {
67
+ export const get = def => value => rm => {
68
68
  const len = rm.length
69
69
  let b = 0
70
70
  let e = len - 1
@@ -81,13 +81,4 @@ const get = def => value => rm => {
81
81
  }
82
82
 
83
83
  /** @type {<T>(def: T) => (r: Range.Range) => (value: T) => RangeMapArray<T>} */
84
- const fromRange = def => ([a, b]) => v => [[def, a - 1], [v, b]]
85
-
86
- export default {
87
- /** @readonly */
88
- merge,
89
- /** @readonly */
90
- get,
91
- /** @readonly */
92
- fromRange,
93
- }
84
+ export const fromRange = def => ([a, b]) => v => [[def, a - 1], [v, b]]
@@ -1,79 +1,79 @@
1
- import _, * as T from './module.f.mjs'
2
- import compare from '../function/compare/module.f.mjs'
1
+ import * as _ from './module.f.mjs'
2
+ import * as compare from '../function/compare/module.f.mjs'
3
3
  const { unsafeCmp } = compare
4
- import json, * as Json from '../../json/module.f.mjs'
5
- import object from '../object/module.f.mjs'
4
+ import * as json from '../../json/module.f.mjs'
5
+ import * as object from '../object/module.f.mjs'
6
6
  const { sort } = object
7
- import sortedSet, * as SortedSet from '../sorted_set/module.f.mjs'
8
- import list from '../list/module.f.mjs'
9
- import operator from '../function/operator/module.f.mjs'
7
+ import * as sortedSet from '../sorted_set/module.f.mjs'
8
+ import * as list from '../list/module.f.mjs'
9
+ import * as operator from '../function/operator/module.f.mjs'
10
10
 
11
- /** @type {(a: readonly Json.Unknown[]) => string} */
11
+ /** @type {(a: readonly json.Unknown[]) => string} */
12
12
  const stringify = json.stringify(sort)
13
13
 
14
- /** @type {T.Operators<SortedSet.SortedSet<string>>} */
14
+ /** @type {_.Operators<sortedSet.SortedSet<string>>} */
15
15
  const op = { union: sortedSet.union(unsafeCmp), equal: list.equal(operator.strictEqual) }
16
16
 
17
17
  export default {
18
18
  merge: [
19
19
  () => {
20
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
20
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
21
21
  const a = [[['a'], 1], [['b'], 2]]
22
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
22
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
23
23
  const b = null
24
24
  const merged = _.merge(op)(a)(b)
25
25
  const result = stringify(list.toArray(merged))
26
26
  if (result !== '[[["a"],1],[["b"],2]]') { throw result }
27
27
  },
28
28
  () => {
29
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
29
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
30
30
  const a = null
31
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
31
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
32
32
  const b = [[['a'], 1], [['b'], 2]]
33
33
  const merged = _.merge(op)(a)(b)
34
34
  const result = stringify(list.toArray(merged))
35
35
  if (result !== '[[["a"],1],[["b"],2]]') { throw result }
36
36
  },
37
37
  () => {
38
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
38
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
39
39
  const a = [[['a'], 1], [['b'], 2]]
40
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
40
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
41
41
  const b = [[['a'], 1], [['b'], 2]]
42
42
  const merged = _.merge(op)(a)(b)
43
43
  const result = stringify(list.toArray(merged))
44
44
  if (result !== '[[["a"],1],[["b"],2]]') { throw result }
45
45
  },
46
46
  () => {
47
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
47
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
48
48
  const a = [[['a'], 1], [['c'], 3]]
49
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
49
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
50
50
  const b = [[['b'], 2], [['d'], 4]]
51
51
  const merged = _.merge(op)(a)(b)
52
52
  const result = stringify(list.toArray(merged))
53
53
  if (result !== '[[["a","b"],1],[["b","c"],2],[["c","d"],3],[["d"],4]]') { throw result }
54
54
  },
55
55
  () => {
56
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
56
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
57
57
  const a = [[['a'], 1], [['d'], 4]]
58
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
58
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
59
59
  const b = [[['b'], 2], [['c'], 3]]
60
60
  const merged = _.merge(op)(a)(b)
61
61
  const result = stringify(list.toArray(merged))
62
62
  if (result !== '[[["a","b"],1],[["b","d"],2],[["c","d"],3],[["d"],4]]') { throw result }
63
63
  },
64
64
  () => {
65
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
65
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
66
66
  const a = [[['a'], 1], [['b'], 2]]
67
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
67
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
68
68
  const b = [[['b'], 1], [['a'], 2]]
69
69
  const merged = _.merge(op)(a)(b)
70
70
  const result = stringify(list.toArray(merged))
71
71
  if (result !== '[[["a","b"],2]]') { throw result }
72
72
  },
73
73
  () => {
74
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
74
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
75
75
  const a = [[['a'], 1], [['b'], 2], [['a'], 3]]
76
- /** @type {T.RangeMap<SortedSet.SortedSet<string>>} */
76
+ /** @type {_.RangeMap<sortedSet.SortedSet<string>>} */
77
77
  const b = [[['a'], 5]]
78
78
  const merged = _.merge(op)(a)(b)
79
79
  const result = stringify(list.toArray(merged))
@@ -81,54 +81,54 @@ export default {
81
81
  }
82
82
  ],
83
83
  get: () => {
84
- /** @type {SortedSet.SortedSet<string>} */
84
+ /** @type {sortedSet.SortedSet<string>} */
85
85
  const sortedSetEmpty = []
86
86
  const get = _.get(sortedSetEmpty)
87
87
  return [
88
88
  () => {
89
- /** @type {T.RangeMapArray<SortedSet.SortedSet<string>>} */
89
+ /** @type {_.RangeMapArray<sortedSet.SortedSet<string>>} */
90
90
  const rm = [[['a'], 10], [['b'], 20], [['c'], 30]]
91
91
  const result = stringify(get(5)(rm))
92
92
  if (result !== '["a"]') { throw result }
93
93
  },
94
94
  () => {
95
- /** @type {T.RangeMapArray<SortedSet.SortedSet<string>>} */
95
+ /** @type {_.RangeMapArray<sortedSet.SortedSet<string>>} */
96
96
  const rm = [[['a'], 10], [['b'], 20], [['c'], 30]]
97
97
  const result = stringify(get(10)(rm))
98
98
  if (result !== '["a"]') { throw result }
99
99
  },
100
100
  () => {
101
- /** @type {T.RangeMapArray<SortedSet.SortedSet<string>>} */
101
+ /** @type {_.RangeMapArray<sortedSet.SortedSet<string>>} */
102
102
  const rm = [[['a'], 10], [['b'], 20], [['c'], 30]]
103
103
  const result = stringify(get(15)(rm))
104
104
  if (result !== '["b"]') { throw result }
105
105
  },
106
106
  () => {
107
- /** @type {T.RangeMapArray<SortedSet.SortedSet<string>>} */
107
+ /** @type {_.RangeMapArray<sortedSet.SortedSet<string>>} */
108
108
  const rm = [[['a'], 10], [['b'], 20], [['c'], 30]]
109
109
  const result = stringify(get(20)(rm))
110
110
  if (result !== '["b"]') { throw result }
111
111
  },
112
112
  () => {
113
- /** @type {T.RangeMapArray<SortedSet.SortedSet<string>>} */
113
+ /** @type {_.RangeMapArray<sortedSet.SortedSet<string>>} */
114
114
  const rm = [[['a'], 10], [['b'], 20], [['c'], 30]]
115
115
  const result = stringify(get(25)(rm))
116
116
  if (result !== '["c"]') { throw result }
117
117
  },
118
118
  () => {
119
- /** @type {T.RangeMapArray<SortedSet.SortedSet<string>>} */
119
+ /** @type {_.RangeMapArray<sortedSet.SortedSet<string>>} */
120
120
  const rm = [[['a'], 10], [['b'], 20], [['c'], 30]]
121
121
  const result = stringify(get(30)(rm))
122
122
  if (result !== '["c"]') { throw result }
123
123
  },
124
124
  () => {
125
- /** @type {T.RangeMapArray<SortedSet.SortedSet<string>>} */
125
+ /** @type {_.RangeMapArray<sortedSet.SortedSet<string>>} */
126
126
  const rm = [[['a'], 10], [['b'], 20], [['c'], 30]]
127
127
  const result = stringify(get(35)(rm))
128
128
  if (result !== '[]') { throw result }
129
129
  },
130
130
  () => {
131
- /** @type {T.RangeMapArray<SortedSet.SortedSet<string>>} */
131
+ /** @type {_.RangeMapArray<sortedSet.SortedSet<string>>} */
132
132
  const rm = []
133
133
  const result = stringify(get(10)(rm))
134
134
  if (result !== '[]') { throw result }
@@ -2,6 +2,6 @@ declare namespace _default {
2
2
  export { tryCatch };
3
3
  }
4
4
  export default _default;
5
- /** @type {<T>(f: () => T) => Result.Result<T, unknown>} */
6
- declare const tryCatch: <T>(f: () => T) => Result.Result<T, unknown>;
7
- import * as Result from './module.f.mjs';
5
+ /** @type {<T>(f: () => T) => result.Result<T, unknown>} */
6
+ declare const tryCatch: <T>(f: () => T) => result.Result<T, unknown>;
7
+ import * as result from './module.f.mjs';
@@ -1,12 +1,3 @@
1
- declare namespace _default {
2
- export { ok };
3
- export { error };
4
- export { unwrap };
5
- }
6
- export default _default;
7
- export type Ok<T> = readonly ["ok", T];
8
- export type Error<E> = readonly ["error", E];
9
- export type Result<T, E> = Ok<T> | Error<E>;
10
1
  /**
11
2
  * @template T
12
3
  * @typedef {readonly['ok', T]} Ok
@@ -21,8 +12,11 @@ export type Result<T, E> = Ok<T> | Error<E>;
21
12
  * @typedef {Ok<T>|Error<E>} Result
22
13
  */
23
14
  /** @type {<T>(value: T) => Ok<T>} */
24
- declare const ok: <T>(value: T) => Ok<T>;
15
+ export const ok: <T>(value: T) => Ok<T>;
25
16
  /** @type {<E>(e: E) => Error<E>} */
26
- declare const error: <E>(e: E) => Error<E>;
17
+ export const error: <E>(e: E) => Error<E>;
27
18
  /** @type {<T, E>(r: Result<T, E>) => T} */
28
- declare const unwrap: <T, E>(r: Result<T, E>) => T;
19
+ export const unwrap: <T, E>(r: Result<T, E>) => T;
20
+ export type Ok<T> = readonly ["ok", T];
21
+ export type Error<E> = readonly ["error", E];
22
+ export type Result<T, E> = Ok<T> | Error<E>;
@@ -16,22 +16,13 @@
16
16
  */
17
17
 
18
18
  /** @type {<T>(value: T) => Ok<T>} */
19
- const ok = value => ['ok', value]
19
+ export const ok = value => ['ok', value]
20
20
 
21
21
  /** @type {<E>(e: E) => Error<E>} */
22
- const error = e => ['error', e]
22
+ export const error = e => ['error', e]
23
23
 
24
24
  /** @type {<T, E>(r: Result<T, E>) => T} */
25
- const unwrap = ([kind, v]) => {
25
+ export const unwrap = ([kind, v]) => {
26
26
  if (kind === 'error') { throw v }
27
27
  return v
28
28
  }
29
-
30
- export default {
31
- /** @readonly */
32
- ok,
33
- /** @readonly */
34
- error,
35
- /** @readonly */
36
- unwrap,
37
- }
@@ -1,7 +1,7 @@
1
- import result, * as Result from './module.f.mjs'
1
+ import * as result from './module.f.mjs'
2
2
  const { ok, error } = result
3
3
 
4
- /** @type {<T>(f: () => T) => Result.Result<T, unknown>} */
4
+ /** @type {<T>(f: () => T) => result.Result<T, unknown>} */
5
5
  const tryCatch = f => {
6
6
  // Side effect: `try catch` is not allowed in FunctionalScript.
7
7
  try {
@@ -1,28 +1,6 @@
1
- declare namespace _default {
2
- export { merge };
3
- export { genericMerge };
4
- export { find };
5
- }
6
- export default _default;
7
- export type SortedList<T> = List.List<T>;
8
- export type SortedArray<T> = readonly T[];
9
- export type Cmp<T> = (a: T) => (b: T) => compare.Sign;
10
- export type ReduceOp<T, S> = (state: S) => (a: T) => (b: T) => readonly [option.Nullable<T>, compare.Sign, S];
11
- export type TailReduce<T, S> = (state: S) => (tail: List.List<T>) => List.List<T>;
12
- export type MergeReduce<T, S> = {
13
- readonly reduceOp: ReduceOp<T, S>;
14
- readonly tailReduce: TailReduce<T, S>;
15
- };
16
- export type CmpReduceOp<T> = ReduceOp<T, null>;
17
- /**
18
- * @template T
19
- * @typedef {ReduceOp<T, null>} CmpReduceOp
20
- */
21
- /** @type {<T>(cmp: Cmp<T>) => (a: SortedList<T>) => (b: SortedList<T>) => SortedList<T>} */
22
- declare const merge: <T>(cmp: Cmp<T>) => (a: SortedList<T>) => (b: SortedList<T>) => SortedList<T>;
23
1
  /**
24
2
  * @template T
25
- * @typedef {List.List<T>} SortedList
3
+ * @typedef {list.List<T>} SortedList
26
4
  */
27
5
  /**
28
6
  * @template T
@@ -40,7 +18,7 @@ declare const merge: <T>(cmp: Cmp<T>) => (a: SortedList<T>) => (b: SortedList<T>
40
18
  /**
41
19
  * @template T
42
20
  * @template S
43
- * @typedef {(state: S) => (tail: List.List<T>) => List.List<T>} TailReduce
21
+ * @typedef {(state: S) => (tail: list.List<T>) => list.List<T>} TailReduce
44
22
  */
45
23
  /**
46
24
  * @template T
@@ -50,10 +28,26 @@ declare const merge: <T>(cmp: Cmp<T>) => (a: SortedList<T>) => (b: SortedList<T>
50
28
  * readonly tailReduce: TailReduce<T,S>
51
29
  * }} MergeReduce
52
30
  */
53
- /** @type {<T,S>(reduce: MergeReduce<T,S>) => (state: S) => (a: List.List<T>) => (b: List.List<T>) => List.List<T>} */
54
- declare const genericMerge: <T, S>(reduce: MergeReduce<T, S>) => (state: S) => (a: List.List<T>) => (b: List.List<T>) => List.List<T>;
31
+ /** @type {<T,S>(reduce: MergeReduce<T,S>) => (state: S) => (a: list.List<T>) => (b: list.List<T>) => list.List<T>} */
32
+ export const genericMerge: <T, S>(reduce: MergeReduce<T, S>) => (state: S) => (a: list.List<T>) => (b: list.List<T>) => list.List<T>;
33
+ /**
34
+ * @template T
35
+ * @typedef {ReduceOp<T, null>} CmpReduceOp
36
+ */
37
+ /** @type {<T>(cmp: Cmp<T>) => (a: SortedList<T>) => (b: SortedList<T>) => SortedList<T>} */
38
+ export const merge: <T>(cmp: Cmp<T>) => (a: SortedList<T>) => (b: SortedList<T>) => SortedList<T>;
55
39
  /** @type {<T>(cmp: Cmp<T>) => (value: T) => (array: SortedArray<T>) => T|null} */
56
- declare const find: <T>(cmp: Cmp<T>) => (value: T) => (array: SortedArray<T>) => T | null;
57
- import * as List from '../list/module.f.mjs';
40
+ export const find: <T>(cmp: Cmp<T>) => (value: T) => (array: SortedArray<T>) => T | null;
41
+ export type SortedList<T> = list.List<T>;
42
+ export type SortedArray<T> = readonly T[];
43
+ export type Cmp<T> = (a: T) => (b: T) => compare.Sign;
44
+ export type ReduceOp<T, S> = (state: S) => (a: T) => (b: T) => readonly [option.Nullable<T>, compare.Sign, S];
45
+ export type TailReduce<T, S> = (state: S) => (tail: list.List<T>) => list.List<T>;
46
+ export type MergeReduce<T, S> = {
47
+ readonly reduceOp: ReduceOp<T, S>;
48
+ readonly tailReduce: TailReduce<T, S>;
49
+ };
50
+ export type CmpReduceOp<T> = ReduceOp<T, null>;
51
+ import * as list from '../list/module.f.mjs';
58
52
  import * as compare from '../function/compare/module.f.mjs';
59
53
  import * as option from '../nullable/module.f.mjs';