@fncts/base 0.0.41 → 0.0.43
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.
- package/_cjs/collection/Iterable/api.cjs +5 -5
- package/_cjs/collection/Iterable/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/api.cjs +14 -7
- package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/definition.cjs +80 -50
- package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/definition.cjs +13 -6
- package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/internal.cjs +18 -7
- package/_cjs/collection/immutable/HashMap/internal.cjs.map +1 -1
- package/_cjs/collection/immutable/HashSet/api.cjs +6 -7
- package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
- package/_cjs/collection/immutable/HashSet/definition.cjs +27 -10
- package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/List/definition.cjs +25 -26
- package/_cjs/collection/immutable/List/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/definition.cjs +2 -0
- package/_cjs/collection/immutable/Queue/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/RoseTree/definition.cjs +5 -4
- package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/SortedMap/definition.cjs +4 -3
- package/_cjs/collection/immutable/SortedMap/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/SortedMap/iterator.cjs +4 -1
- package/_cjs/collection/immutable/SortedMap/iterator.cjs.map +1 -1
- package/_cjs/collection/immutable/SortedMap/node.cjs +6 -0
- package/_cjs/collection/immutable/SortedMap/node.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/api.cjs +1 -0
- package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/definition.cjs +25 -8
- package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/internal.cjs +18 -4
- package/_cjs/collection/immutable/Vector/internal.cjs.map +1 -1
- package/_cjs/collection/mutable/ArrayDeque.cjs +3 -0
- package/_cjs/collection/mutable/ArrayDeque.cjs.map +1 -1
- package/_cjs/collection/mutable/HashMap.cjs +16 -3
- package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
- package/_cjs/collection/mutable/HashSet.cjs +15 -3
- package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
- package/_cjs/collection/mutable/ListBuffer.cjs +3 -5
- package/_cjs/collection/mutable/ListBuffer.cjs.map +1 -1
- package/_cjs/collection/weak/IterableWeakMap.cjs +3 -3
- package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
- package/_cjs/collection/weak/IterableWeakSet.cjs +3 -3
- package/_cjs/collection/weak/IterableWeakSet.cjs.map +1 -1
- package/_cjs/control/Eval/api.cjs +2 -0
- package/_cjs/control/Eval/api.cjs.map +1 -1
- package/_cjs/control/Eval/constructors.cjs +1 -0
- package/_cjs/control/Eval/constructors.cjs.map +1 -1
- package/_cjs/control/Eval/definition.cjs +4 -5
- package/_cjs/control/Eval/definition.cjs.map +1 -1
- package/_cjs/control/LazyValue.cjs +1 -0
- package/_cjs/control/LazyValue.cjs.map +1 -1
- package/_cjs/control/Pure/definition.cjs +10 -14
- package/_cjs/control/Pure/definition.cjs.map +1 -1
- package/_cjs/control/Pure/runtime.cjs +5 -2
- package/_cjs/control/Pure/runtime.cjs.map +1 -1
- package/_cjs/data/Branded/definition.cjs +7 -0
- package/_cjs/data/Branded/definition.cjs.map +1 -1
- package/_cjs/data/CaseClass.cjs +5 -14
- package/_cjs/data/CaseClass.cjs.map +1 -1
- package/_cjs/data/Cause/api/fold.cjs +4 -7
- package/_cjs/data/Cause/api/fold.cjs.map +1 -1
- package/_cjs/data/Cause/api.cjs +72 -66
- package/_cjs/data/Cause/api.cjs.map +1 -1
- package/_cjs/data/Cause/definition.cjs +36 -24
- package/_cjs/data/Cause/definition.cjs.map +1 -1
- package/_cjs/data/Const/definition.cjs +3 -0
- package/_cjs/data/Const/definition.cjs.map +1 -1
- package/_cjs/data/Data.cjs +6 -19
- package/_cjs/data/Data.cjs.map +1 -1
- package/_cjs/data/Datum/api.cjs.map +1 -1
- package/_cjs/data/Datum/definition.cjs +14 -17
- package/_cjs/data/Datum/definition.cjs.map +1 -1
- package/_cjs/data/Duration/definition.cjs +3 -3
- package/_cjs/data/Duration/definition.cjs.map +1 -1
- package/_cjs/data/Either/definition.cjs +10 -10
- package/_cjs/data/Either/definition.cjs.map +1 -1
- package/_cjs/data/EitherT/api.cjs +1 -1
- package/_cjs/data/EitherT/api.cjs.map +1 -1
- package/_cjs/data/Environment/ServiceNotFoundError.cjs +1 -0
- package/_cjs/data/Environment/ServiceNotFoundError.cjs.map +1 -1
- package/_cjs/data/Environment/definition.cjs +4 -3
- package/_cjs/data/Environment/definition.cjs.map +1 -1
- package/_cjs/data/EnvironmentPatch.cjs +13 -13
- package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
- package/_cjs/data/Equatable/api.cjs +27 -3
- package/_cjs/data/Equatable/api.cjs.map +1 -1
- package/_cjs/data/Exit/definition.cjs +14 -11
- package/_cjs/data/Exit/definition.cjs.map +1 -1
- package/_cjs/data/FiberId/definition.cjs +13 -12
- package/_cjs/data/FiberId/definition.cjs.map +1 -1
- package/_cjs/data/Guard/definition.cjs +3 -4
- package/_cjs/data/Guard/definition.cjs.map +1 -1
- package/_cjs/data/Interval.cjs +2 -0
- package/_cjs/data/Interval.cjs.map +1 -1
- package/_cjs/data/Intervals.cjs +1 -0
- package/_cjs/data/Intervals.cjs.map +1 -1
- package/_cjs/data/Maybe/api.cjs +4 -4
- package/_cjs/data/Maybe/api.cjs.map +1 -1
- package/_cjs/data/Maybe/constructors.cjs +1 -3
- package/_cjs/data/Maybe/constructors.cjs.map +1 -1
- package/_cjs/data/Maybe/definition.cjs +15 -17
- package/_cjs/data/Maybe/definition.cjs.map +1 -1
- package/_cjs/data/Showable/show.cjs +1 -1
- package/_cjs/data/Showable/show.cjs.map +1 -1
- package/_cjs/data/Tag/definition.cjs +7 -7
- package/_cjs/data/Tag/definition.cjs.map +1 -1
- package/_cjs/data/These/definition.cjs +12 -12
- package/_cjs/data/These/definition.cjs.map +1 -1
- package/_cjs/data/Trace/definition.cjs +2 -0
- package/_cjs/data/Trace/definition.cjs.map +1 -1
- package/_cjs/data/exceptions/ArrayIndexOutOfBoundsError.cjs +1 -1
- package/_cjs/data/exceptions/ArrayIndexOutOfBoundsError.cjs.map +1 -1
- package/_cjs/data/exceptions/IOError.cjs +2 -3
- package/_cjs/data/exceptions/IOError.cjs.map +1 -1
- package/_cjs/data/exceptions/IllegalArgumentError.cjs +2 -1
- package/_cjs/data/exceptions/IllegalArgumentError.cjs.map +1 -1
- package/_cjs/data/exceptions/IllegalStateError.cjs +1 -1
- package/_cjs/data/exceptions/IllegalStateError.cjs.map +1 -1
- package/_cjs/data/exceptions/IndexOutOfBoundsError.cjs +1 -1
- package/_cjs/data/exceptions/IndexOutOfBoundsError.cjs.map +1 -1
- package/_cjs/data/exceptions/InterruptedException.cjs +2 -3
- package/_cjs/data/exceptions/InterruptedException.cjs.map +1 -1
- package/_cjs/data/exceptions/InvalidCapacityError.cjs +1 -1
- package/_cjs/data/exceptions/InvalidCapacityError.cjs.map +1 -1
- package/_cjs/data/exceptions/NoSuchElementError.cjs +1 -1
- package/_cjs/data/exceptions/NoSuchElementError.cjs.map +1 -1
- package/_cjs/internal/AtomicReference.cjs +2 -0
- package/_cjs/internal/AtomicReference.cjs.map +1 -1
- package/_cjs/internal/Stack.cjs +1 -0
- package/_cjs/internal/Stack.cjs.map +1 -1
- package/_cjs/util/PCGRandom.cjs +2 -0
- package/_cjs/util/PCGRandom.cjs.map +1 -1
- package/_cjs/util/assert.cjs +1 -0
- package/_cjs/util/assert.cjs.map +1 -1
- package/_cjs/util/rand/Random.cjs +5 -4
- package/_cjs/util/rand/Random.cjs.map +1 -1
- package/_cjs/util/rand/generator/MersenneTwister.cjs +2 -0
- package/_cjs/util/rand/generator/MersenneTwister.cjs.map +1 -1
- package/_mjs/collection/Iterable/api.mjs +5 -5
- package/_mjs/collection/Iterable/api.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/api.mjs +14 -7
- package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/definition.mjs +80 -50
- package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/HashMap/definition.mjs +13 -6
- package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/HashMap/internal.mjs +18 -7
- package/_mjs/collection/immutable/HashMap/internal.mjs.map +1 -1
- package/_mjs/collection/immutable/HashSet/api.mjs +6 -7
- package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
- package/_mjs/collection/immutable/HashSet/definition.mjs +27 -10
- package/_mjs/collection/immutable/HashSet/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/List/definition.mjs +24 -24
- package/_mjs/collection/immutable/List/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/Queue/definition.mjs +2 -0
- package/_mjs/collection/immutable/Queue/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/RoseTree/definition.mjs +5 -4
- package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/SortedMap/definition.mjs +4 -3
- package/_mjs/collection/immutable/SortedMap/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/SortedMap/iterator.mjs +4 -1
- package/_mjs/collection/immutable/SortedMap/iterator.mjs.map +1 -1
- package/_mjs/collection/immutable/SortedMap/node.mjs +6 -0
- package/_mjs/collection/immutable/SortedMap/node.mjs.map +1 -1
- package/_mjs/collection/immutable/Vector/api.mjs +1 -0
- package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
- package/_mjs/collection/immutable/Vector/definition.mjs +25 -8
- package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/Vector/internal.mjs +18 -4
- package/_mjs/collection/immutable/Vector/internal.mjs.map +1 -1
- package/_mjs/collection/mutable/ArrayDeque.mjs +3 -0
- package/_mjs/collection/mutable/ArrayDeque.mjs.map +1 -1
- package/_mjs/collection/mutable/HashMap.mjs +16 -3
- package/_mjs/collection/mutable/HashMap.mjs.map +1 -1
- package/_mjs/collection/mutable/HashSet.mjs +15 -3
- package/_mjs/collection/mutable/HashSet.mjs.map +1 -1
- package/_mjs/collection/mutable/ListBuffer.mjs +3 -5
- package/_mjs/collection/mutable/ListBuffer.mjs.map +1 -1
- package/_mjs/collection/weak/IterableWeakMap.mjs +3 -3
- package/_mjs/collection/weak/IterableWeakMap.mjs.map +1 -1
- package/_mjs/collection/weak/IterableWeakSet.mjs +3 -3
- package/_mjs/collection/weak/IterableWeakSet.mjs.map +1 -1
- package/_mjs/control/Eval/api.mjs +2 -0
- package/_mjs/control/Eval/api.mjs.map +1 -1
- package/_mjs/control/Eval/constructors.mjs +1 -0
- package/_mjs/control/Eval/constructors.mjs.map +1 -1
- package/_mjs/control/Eval/definition.mjs +4 -5
- package/_mjs/control/Eval/definition.mjs.map +1 -1
- package/_mjs/control/LazyValue.mjs +1 -0
- package/_mjs/control/LazyValue.mjs.map +1 -1
- package/_mjs/control/Pure/definition.mjs +8 -12
- package/_mjs/control/Pure/definition.mjs.map +1 -1
- package/_mjs/control/Pure/runtime.mjs +5 -2
- package/_mjs/control/Pure/runtime.mjs.map +1 -1
- package/_mjs/data/Branded/definition.mjs +6 -0
- package/_mjs/data/Branded/definition.mjs.map +1 -1
- package/_mjs/data/CaseClass.mjs +5 -14
- package/_mjs/data/CaseClass.mjs.map +1 -1
- package/_mjs/data/Cause/api/fold.mjs +4 -7
- package/_mjs/data/Cause/api/fold.mjs.map +1 -1
- package/_mjs/data/Cause/api.mjs +72 -66
- package/_mjs/data/Cause/api.mjs.map +1 -1
- package/_mjs/data/Cause/definition.mjs +36 -24
- package/_mjs/data/Cause/definition.mjs.map +1 -1
- package/_mjs/data/Const/definition.mjs +3 -0
- package/_mjs/data/Const/definition.mjs.map +1 -1
- package/_mjs/data/Data.mjs +6 -19
- package/_mjs/data/Data.mjs.map +1 -1
- package/_mjs/data/Datum/api.mjs.map +1 -1
- package/_mjs/data/Datum/definition.mjs +14 -17
- package/_mjs/data/Datum/definition.mjs.map +1 -1
- package/_mjs/data/Duration/definition.mjs +3 -3
- package/_mjs/data/Duration/definition.mjs.map +1 -1
- package/_mjs/data/Either/definition.mjs +10 -10
- package/_mjs/data/Either/definition.mjs.map +1 -1
- package/_mjs/data/EitherT/api.mjs +1 -1
- package/_mjs/data/EitherT/api.mjs.map +1 -1
- package/_mjs/data/Environment/ServiceNotFoundError.mjs +1 -0
- package/_mjs/data/Environment/ServiceNotFoundError.mjs.map +1 -1
- package/_mjs/data/Environment/definition.mjs +4 -3
- package/_mjs/data/Environment/definition.mjs.map +1 -1
- package/_mjs/data/EnvironmentPatch.mjs +13 -13
- package/_mjs/data/EnvironmentPatch.mjs.map +1 -1
- package/_mjs/data/Equatable/api.mjs +26 -2
- package/_mjs/data/Equatable/api.mjs.map +1 -1
- package/_mjs/data/Exit/definition.mjs +14 -11
- package/_mjs/data/Exit/definition.mjs.map +1 -1
- package/_mjs/data/FiberId/definition.mjs +13 -12
- package/_mjs/data/FiberId/definition.mjs.map +1 -1
- package/_mjs/data/Guard/definition.mjs +2 -3
- package/_mjs/data/Guard/definition.mjs.map +1 -1
- package/_mjs/data/Interval.mjs +2 -0
- package/_mjs/data/Interval.mjs.map +1 -1
- package/_mjs/data/Intervals.mjs +1 -0
- package/_mjs/data/Intervals.mjs.map +1 -1
- package/_mjs/data/Maybe/api.mjs +4 -4
- package/_mjs/data/Maybe/api.mjs.map +1 -1
- package/_mjs/data/Maybe/constructors.mjs +1 -3
- package/_mjs/data/Maybe/constructors.mjs.map +1 -1
- package/_mjs/data/Maybe/definition.mjs +14 -16
- package/_mjs/data/Maybe/definition.mjs.map +1 -1
- package/_mjs/data/Showable/show.mjs +1 -1
- package/_mjs/data/Showable/show.mjs.map +1 -1
- package/_mjs/data/Tag/definition.mjs +7 -7
- package/_mjs/data/Tag/definition.mjs.map +1 -1
- package/_mjs/data/These/definition.mjs +10 -10
- package/_mjs/data/These/definition.mjs.map +1 -1
- package/_mjs/data/Trace/definition.mjs +2 -0
- package/_mjs/data/Trace/definition.mjs.map +1 -1
- package/_mjs/data/exceptions/ArrayIndexOutOfBoundsError.mjs +1 -1
- package/_mjs/data/exceptions/ArrayIndexOutOfBoundsError.mjs.map +1 -1
- package/_mjs/data/exceptions/IOError.mjs +2 -3
- package/_mjs/data/exceptions/IOError.mjs.map +1 -1
- package/_mjs/data/exceptions/IllegalArgumentError.mjs +2 -1
- package/_mjs/data/exceptions/IllegalArgumentError.mjs.map +1 -1
- package/_mjs/data/exceptions/IllegalStateError.mjs +1 -1
- package/_mjs/data/exceptions/IllegalStateError.mjs.map +1 -1
- package/_mjs/data/exceptions/IndexOutOfBoundsError.mjs +1 -1
- package/_mjs/data/exceptions/IndexOutOfBoundsError.mjs.map +1 -1
- package/_mjs/data/exceptions/InterruptedException.mjs +2 -3
- package/_mjs/data/exceptions/InterruptedException.mjs.map +1 -1
- package/_mjs/data/exceptions/InvalidCapacityError.mjs +1 -1
- package/_mjs/data/exceptions/InvalidCapacityError.mjs.map +1 -1
- package/_mjs/data/exceptions/NoSuchElementError.mjs +1 -1
- package/_mjs/data/exceptions/NoSuchElementError.mjs.map +1 -1
- package/_mjs/internal/AtomicReference.mjs +2 -0
- package/_mjs/internal/AtomicReference.mjs.map +1 -1
- package/_mjs/internal/Stack.mjs +1 -0
- package/_mjs/internal/Stack.mjs.map +1 -1
- package/_mjs/util/PCGRandom.mjs +2 -0
- package/_mjs/util/PCGRandom.mjs.map +1 -1
- package/_mjs/util/assert.mjs +1 -0
- package/_mjs/util/assert.mjs.map +1 -1
- package/_mjs/util/rand/Random.mjs +5 -4
- package/_mjs/util/rand/Random.mjs.map +1 -1
- package/_mjs/util/rand/generator/MersenneTwister.mjs +2 -0
- package/_mjs/util/rand/generator/MersenneTwister.mjs.map +1 -1
- package/_src/collection/Iterable/api.ts +0 -1
- package/_src/collection/immutable/Conc/definition.ts +12 -5
- package/_src/collection/immutable/HashMap/definition.ts +4 -1
- package/_src/collection/immutable/HashSet/api.ts +2 -3
- package/_src/collection/immutable/List/definition.ts +24 -2
- package/_src/collection/immutable/Vector/api.ts +4 -6
- package/_src/collection/immutable/Vector/definition.ts +14 -3
- package/_src/collection/immutable/Vector/internal.ts +14 -8
- package/_src/collection/weak/IterableWeakMap.ts +4 -4
- package/_src/collection/weak/IterableWeakSet.ts +4 -4
- package/_src/control/Eval/constructors.ts +1 -0
- package/_src/data/Branded/definition.ts +6 -1
- package/_src/data/CaseClass.ts +0 -1
- package/_src/data/Cause/api.ts +8 -16
- package/_src/data/Data.ts +0 -1
- package/_src/data/Datum/api.ts +0 -2
- package/_src/data/EitherT/api.ts +0 -1
- package/_src/data/Equatable/api.ts +29 -2
- package/_src/data/Maybe/api.ts +0 -1
- package/_src/data/Maybe/definition.ts +6 -4
- package/_src/data/Showable/show.ts +1 -1
- package/_src/util/PCGRandom.ts +1 -0
- package/collection/immutable/Conc/definition.d.ts +5 -5
- package/collection/immutable/List/definition.d.ts +12 -2
- package/collection/immutable/Vector/definition.d.ts +8 -3
- package/collection/weak/IterableWeakMap.d.ts +4 -4
- package/collection/weak/IterableWeakSet.d.ts +4 -4
- package/data/Branded/definition.d.ts +4 -1
- package/data/Equatable/api.d.ts +10 -0
- package/data/Equatable/fast-equals.d.ts +1 -1
- package/data/Maybe/definition.d.ts +4 -3
- package/package.json +3 -3
|
@@ -7,9 +7,29 @@ import {
|
|
|
7
7
|
sameValueZeroEqual,
|
|
8
8
|
} from "@fncts/base/data/Equatable/fast-equals";
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* @tsplus static fncts.EquatableOps anything
|
|
12
|
+
*/
|
|
13
|
+
export const anything: any = Symbol.for("fncts.Equatable.anything");
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @tsplus static fncts.EquatableOps nothing
|
|
17
|
+
*/
|
|
18
|
+
export const nothing: any = Symbol.for("fncts.Equatable.nothing");
|
|
19
|
+
|
|
10
20
|
const deepEqualsComparator = createComparator(
|
|
11
21
|
createCircularEqualCreator((eq) => (a, b, meta) => {
|
|
12
|
-
const equalsContext: EqualsContext = {
|
|
22
|
+
const equalsContext: EqualsContext = {
|
|
23
|
+
comparator: (a, b) => {
|
|
24
|
+
if (a === anything || b === anything) {
|
|
25
|
+
return true;
|
|
26
|
+
} else if (a === nothing || b === nothing) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
return deepEquals(a, b);
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
|
|
13
33
|
if (isEquatable(a)) {
|
|
14
34
|
return a[Symbol.equals](b, equalsContext);
|
|
15
35
|
} else if (isEquatable(b)) {
|
|
@@ -40,7 +60,14 @@ export function deepEquals<A>(a: A, b: unknown): boolean {
|
|
|
40
60
|
*/
|
|
41
61
|
export function strictEquals<A>(a: A, b: unknown): boolean {
|
|
42
62
|
const context: EqualsContext = {
|
|
43
|
-
comparator:
|
|
63
|
+
comparator: (a, b) => {
|
|
64
|
+
if (a === anything || b === anything) {
|
|
65
|
+
return true;
|
|
66
|
+
} else if (a === nothing || b === nothing) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return strictEquals(a, b);
|
|
70
|
+
},
|
|
44
71
|
};
|
|
45
72
|
if (isEquatable(a)) {
|
|
46
73
|
return a[Symbol.equals](b, context);
|
package/_src/data/Maybe/api.ts
CHANGED
|
@@ -154,7 +154,6 @@ export function orElse<B>(fb: Lazy<Maybe<B>>) {
|
|
|
154
154
|
*/
|
|
155
155
|
export function partition<A>(p: Predicate<A>): (self: Maybe<A>) => readonly [Maybe<A>, Maybe<A>];
|
|
156
156
|
export function partition<A, B extends A>(p: Refinement<A, B>): (self: Maybe<A>) => readonly [Maybe<A>, Maybe<B>];
|
|
157
|
-
|
|
158
157
|
export function partition<A>(p: Predicate<A>) {
|
|
159
158
|
return (self: Maybe<A>): readonly [Maybe<A>, Maybe<A>] => {
|
|
160
159
|
self.concrete();
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { EqualsContext } from "../Equatable.js";
|
|
2
|
+
|
|
1
3
|
import { isObject } from "../../util/predicates.js";
|
|
2
4
|
|
|
3
5
|
export const enum MaybeTag {
|
|
@@ -42,7 +44,7 @@ export abstract class Maybe<A> {
|
|
|
42
44
|
* @tsplus type fncts.Just
|
|
43
45
|
* @tsplus companion fncts.JustOps
|
|
44
46
|
*/
|
|
45
|
-
export class Just<A> extends Maybe<A> {
|
|
47
|
+
export class Just<A> extends Maybe<A> implements Equatable {
|
|
46
48
|
readonly _tag = MaybeTag.Just;
|
|
47
49
|
constructor(
|
|
48
50
|
readonly value: A,
|
|
@@ -50,8 +52,8 @@ export class Just<A> extends Maybe<A> {
|
|
|
50
52
|
) {
|
|
51
53
|
super();
|
|
52
54
|
}
|
|
53
|
-
[Symbol.equals](that: unknown): boolean {
|
|
54
|
-
return isMaybe(that) && that.isJust() &&
|
|
55
|
+
[Symbol.equals](that: unknown, context: EqualsContext): boolean {
|
|
56
|
+
return isMaybe(that) && that.isJust() && context.comparator(this.value, that.value);
|
|
55
57
|
}
|
|
56
58
|
get [Symbol.hash]() {
|
|
57
59
|
return Hashable.combine(_justHash, Hashable.unknown(this.value));
|
|
@@ -62,7 +64,7 @@ export class Just<A> extends Maybe<A> {
|
|
|
62
64
|
* @tsplus type fncts.Nothing
|
|
63
65
|
* @tsplus companion fncts.NothingOps
|
|
64
66
|
*/
|
|
65
|
-
export class Nothing extends Maybe<never> {
|
|
67
|
+
export class Nothing extends Maybe<never> implements Equatable {
|
|
66
68
|
readonly _tag = MaybeTag.Nothing;
|
|
67
69
|
constructor(readonly trace?: string) {
|
|
68
70
|
super();
|
|
@@ -721,7 +721,7 @@ export function showProperty(
|
|
|
721
721
|
Pure.update((_: ShowContext): ShowContext => _.copy({ indentationLevel: _.indentationLevel - diff })),
|
|
722
722
|
);
|
|
723
723
|
} else if (isDefined(descriptor.get)) {
|
|
724
|
-
return Pure.succeedNow(tuple(descriptor, " ", `[${descriptor.set ? "Getter/
|
|
724
|
+
return Pure.succeedNow(tuple(descriptor, " ", `[${descriptor.set ? "Getter/Setter" : "Getter"}]`));
|
|
725
725
|
} else if (isDefined(descriptor.set)) {
|
|
726
726
|
return Pure.succeedNow(tuple(descriptor, " ", "Setter"));
|
|
727
727
|
} else {
|
package/_src/util/PCGRandom.ts
CHANGED
|
@@ -132,6 +132,7 @@ export class PCGRandom {
|
|
|
132
132
|
return this._next() & (max - 1); // fast path for power of 2
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
+
// eslint-disable-next-line no-useless-assignment
|
|
135
136
|
let num = 0;
|
|
136
137
|
const skew = (-max >>> 0) % max >>> 0;
|
|
137
138
|
for (num = this._next(); num < skew; num = this._next()) {
|
|
@@ -90,9 +90,9 @@ export declare class Concat<A> extends ConcImplementation<A> {
|
|
|
90
90
|
readonly right: ConcImplementation<A>;
|
|
91
91
|
_A: () => A;
|
|
92
92
|
readonly _tag = ConcTag.Concat;
|
|
93
|
-
length: number;
|
|
94
|
-
depth: number;
|
|
95
|
-
binary: boolean;
|
|
93
|
+
readonly length: number;
|
|
94
|
+
readonly depth: number;
|
|
95
|
+
readonly binary: boolean;
|
|
96
96
|
constructor(left: ConcImplementation<A>, right: ConcImplementation<A>);
|
|
97
97
|
get(n: number): A;
|
|
98
98
|
forEach<B>(startIndex: number, f: (i: number, a: A) => B): void;
|
|
@@ -107,8 +107,8 @@ declare class AppendN<A> extends ConcImplementation<A> {
|
|
|
107
107
|
readonly bufferUsed: number;
|
|
108
108
|
readonly binary: boolean;
|
|
109
109
|
readonly _tag = ConcTag.AppendN;
|
|
110
|
-
length: number;
|
|
111
|
-
depth: number;
|
|
110
|
+
readonly length: number;
|
|
111
|
+
readonly depth: number;
|
|
112
112
|
left: Empty<never>;
|
|
113
113
|
right: Empty<never>;
|
|
114
114
|
constructor(start: ConcImplementation<A>, buffer: Array<unknown> | Uint8Array, bufferUsed: number, binary: boolean);
|
|
@@ -1,24 +1,34 @@
|
|
|
1
|
+
import { Equatable } from "@fncts/base/data/Equatable";
|
|
2
|
+
import type { EqualsContext } from "@fncts/base/data/Equatable";
|
|
1
3
|
export declare const ListTypeId: unique symbol;
|
|
2
4
|
export type ListTypeId = typeof ListTypeId;
|
|
3
5
|
/**
|
|
4
6
|
* @tsplus type fncts.List.Cons
|
|
5
7
|
* @tsplus companion fncts.ConsOps
|
|
6
8
|
*/
|
|
7
|
-
export declare class Cons<A> implements Iterable<A
|
|
9
|
+
export declare class Cons<A> implements Iterable<A>, Equatable {
|
|
8
10
|
readonly head: A;
|
|
9
11
|
tail: List<A>;
|
|
10
12
|
readonly _tag = "Cons";
|
|
11
13
|
readonly [ListTypeId]: ListTypeId;
|
|
12
14
|
constructor(head: A, tail?: List<A>);
|
|
15
|
+
[Symbol.equals](that: unknown, context: EqualsContext): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Iterates elements from this node through the tail.
|
|
18
|
+
*/
|
|
13
19
|
[Symbol.iterator](): Iterator<A>;
|
|
14
20
|
}
|
|
15
21
|
/**
|
|
16
22
|
* @tsplus type fncts.List.Nil
|
|
17
23
|
* @tsplus companion fncts.NilOps
|
|
18
24
|
*/
|
|
19
|
-
export declare class Nil<A> implements Iterable<A
|
|
25
|
+
export declare class Nil<A> implements Iterable<A>, Equatable {
|
|
20
26
|
readonly _tag = "Nil";
|
|
21
27
|
readonly [ListTypeId]: ListTypeId;
|
|
28
|
+
[Symbol.equals](that: unknown, context: EqualsContext): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Returns an iterator that is immediately done.
|
|
31
|
+
*/
|
|
22
32
|
[Symbol.iterator](): Iterator<A>;
|
|
23
33
|
}
|
|
24
34
|
/**
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { HKT } from "@fncts/typelevel/HKT";
|
|
2
|
-
import { Hashable } from "@fncts/base/data/Hashable";
|
|
3
2
|
import { Equatable } from "@fncts/base/data/Equatable";
|
|
3
|
+
import { Hashable } from "@fncts/base/data/Hashable";
|
|
4
|
+
import { Pure } from "@fncts/base/control/Pure/definition";
|
|
4
5
|
import type { Node } from "@fncts/base/collection/immutable/Vector/internal";
|
|
6
|
+
import type { EqualsContext } from "@fncts/base/data/Equatable";
|
|
7
|
+
import type { ShowComputationExternal } from "@fncts/base/data/Showable";
|
|
5
8
|
export declare const VectorVariance: unique symbol;
|
|
6
9
|
export type VectorVariance = typeof VectorVariance;
|
|
7
10
|
export declare const VectorTypeId: unique symbol;
|
|
@@ -19,7 +22,7 @@ export interface VectorF extends HKT {
|
|
|
19
22
|
* @tsplus type fncts.Vector
|
|
20
23
|
* @tsplus companion fncts.VectorOps
|
|
21
24
|
*/
|
|
22
|
-
export declare class Vector<A> implements Iterable<A
|
|
25
|
+
export declare class Vector<A> implements Iterable<A>, Equatable {
|
|
23
26
|
/** @private */
|
|
24
27
|
readonly bits: number;
|
|
25
28
|
/** @private */
|
|
@@ -48,7 +51,8 @@ export declare class Vector<A> implements Iterable<A> {
|
|
|
48
51
|
suffix: A[]);
|
|
49
52
|
[Symbol.iterator](): Iterator<A>;
|
|
50
53
|
get [Symbol.hash](): number;
|
|
51
|
-
[Symbol.equals](that: unknown): boolean;
|
|
54
|
+
[Symbol.equals](that: unknown, context: EqualsContext): boolean;
|
|
55
|
+
get [Symbol.showable](): ShowComputationExternal;
|
|
52
56
|
}
|
|
53
57
|
/**
|
|
54
58
|
* @tsplus type fncts.Vector
|
|
@@ -68,6 +72,7 @@ export interface MutableVector<A> {
|
|
|
68
72
|
[Symbol.iterator]: () => Iterator<A>;
|
|
69
73
|
[Symbol.hash]: number;
|
|
70
74
|
[Symbol.equals](that: unknown): boolean;
|
|
75
|
+
get [Symbol.showable](): ShowComputationExternal;
|
|
71
76
|
/**
|
|
72
77
|
* This property doesn't exist at run-time. It exists to prevent a
|
|
73
78
|
* MutableVector from being assignable to a Vector.
|
|
@@ -14,9 +14,9 @@ export declare class IterableWeakMap<K extends object, V> implements Iterable<re
|
|
|
14
14
|
clear(): void;
|
|
15
15
|
forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: IterableWeakMap<K, V>): void;
|
|
16
16
|
get size(): number;
|
|
17
|
-
[Symbol.iterator](this: this):
|
|
17
|
+
[Symbol.iterator](this: this): MapIterator<[K, V]>;
|
|
18
18
|
get [Symbol.toStringTag](): string;
|
|
19
|
-
entries(this: this):
|
|
20
|
-
keys(this: this):
|
|
21
|
-
values():
|
|
19
|
+
entries(this: this): MapIterator<[K, V]>;
|
|
20
|
+
keys(this: this): MapIterator<K>;
|
|
21
|
+
values(): MapIterator<V>;
|
|
22
22
|
}
|
|
@@ -10,12 +10,12 @@ export declare class IterableWeakSet<A extends object> implements Iterable<A>, S
|
|
|
10
10
|
add(this: this, value: A): this;
|
|
11
11
|
delete(this: this, value: A): boolean;
|
|
12
12
|
has(this: this, value: A): boolean;
|
|
13
|
-
keys():
|
|
14
|
-
values():
|
|
13
|
+
keys(): MapIterator<A>;
|
|
14
|
+
values(): MapIterator<A>;
|
|
15
15
|
forEach(f: (value: A, value2: A, set: Set<A>) => void, thisArg?: Set<A>): void;
|
|
16
16
|
clear(): void;
|
|
17
17
|
get size(): number;
|
|
18
|
-
[Symbol.iterator](this: this):
|
|
18
|
+
[Symbol.iterator](this: this): MapIterator<A>;
|
|
19
19
|
get [Symbol.toStringTag](): string;
|
|
20
|
-
entries(this: this):
|
|
20
|
+
entries(this: this): MapIterator<[A, A]>;
|
|
21
21
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { Equatable } from "@fncts/base/data/Equatable";
|
|
1
2
|
import { Refinement } from "@fncts/base/data/Refinement/definition";
|
|
2
3
|
import { Predicate } from "@fncts/base/data/Predicate/definition";
|
|
4
|
+
import type { EqualsContext } from "@fncts/base/data/Equatable";
|
|
3
5
|
import type { Union } from "@fncts/typelevel";
|
|
4
6
|
declare const validSym: unique symbol;
|
|
5
7
|
export declare namespace Brand {
|
|
@@ -27,10 +29,11 @@ export declare namespace Brand {
|
|
|
27
29
|
* @tsplus companion fncts.ValidationOps
|
|
28
30
|
* @tsplus derive nominal
|
|
29
31
|
*/
|
|
30
|
-
export declare class Validation<in out A, in out K extends string> {
|
|
32
|
+
export declare class Validation<in out A, in out K extends string> implements Equatable {
|
|
31
33
|
readonly validate: Refinement<A, A & Brand.Valid<A, K>>;
|
|
32
34
|
readonly name: K;
|
|
33
35
|
constructor(validate: Refinement<A, A & Brand.Valid<A, K>>, name: K);
|
|
36
|
+
[Symbol.equals](that: unknown, context: EqualsContext): boolean;
|
|
34
37
|
}
|
|
35
38
|
/**
|
|
36
39
|
* @tsplus static fncts.ValidationOps __call
|
package/data/Equatable/api.d.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tsplus static fncts.EquatableOps anything
|
|
3
|
+
* @tsplus location "@fncts/base/data/Equatable/api"
|
|
4
|
+
*/
|
|
5
|
+
export declare const anything: any;
|
|
6
|
+
/**
|
|
7
|
+
* @tsplus static fncts.EquatableOps nothing
|
|
8
|
+
* @tsplus location "@fncts/base/data/Equatable/api"
|
|
9
|
+
*/
|
|
10
|
+
export declare const nothing: any;
|
|
1
11
|
/**
|
|
2
12
|
* @tsplus static fncts.EquatableOps deepEquals
|
|
3
13
|
* @tsplus location "@fncts/base/data/Equatable/api"
|
|
@@ -99,7 +99,7 @@ export declare function getNewCacheFallback(): Cache;
|
|
|
99
99
|
*
|
|
100
100
|
* @returns the new cache object
|
|
101
101
|
*/
|
|
102
|
-
export declare const getNewCache:
|
|
102
|
+
export declare const getNewCache: typeof getNewCacheFallback;
|
|
103
103
|
/**
|
|
104
104
|
* @function createCircularEqualCreator
|
|
105
105
|
*
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HKT } from "@fncts/typelevel/HKT";
|
|
2
2
|
import { Equatable } from "@fncts/base/data/Equatable";
|
|
3
3
|
import { Hashable } from "@fncts/base/data/Hashable";
|
|
4
|
+
import type { EqualsContext } from "../Equatable.js";
|
|
4
5
|
export declare const enum MaybeTag {
|
|
5
6
|
Just = "Just",
|
|
6
7
|
Nothing = "Nothing"
|
|
@@ -34,19 +35,19 @@ export declare abstract class Maybe<A> {
|
|
|
34
35
|
* @tsplus type fncts.Just
|
|
35
36
|
* @tsplus companion fncts.JustOps
|
|
36
37
|
*/
|
|
37
|
-
export declare class Just<A> extends Maybe<A> {
|
|
38
|
+
export declare class Just<A> extends Maybe<A> implements Equatable {
|
|
38
39
|
readonly value: A;
|
|
39
40
|
readonly trace?: string | undefined;
|
|
40
41
|
readonly _tag = MaybeTag.Just;
|
|
41
42
|
constructor(value: A, trace?: string | undefined);
|
|
42
|
-
[Symbol.equals](that: unknown): boolean;
|
|
43
|
+
[Symbol.equals](that: unknown, context: EqualsContext): boolean;
|
|
43
44
|
get [Symbol.hash](): number;
|
|
44
45
|
}
|
|
45
46
|
/**
|
|
46
47
|
* @tsplus type fncts.Nothing
|
|
47
48
|
* @tsplus companion fncts.NothingOps
|
|
48
49
|
*/
|
|
49
|
-
export declare class Nothing extends Maybe<never> {
|
|
50
|
+
export declare class Nothing extends Maybe<never> implements Equatable {
|
|
50
51
|
readonly trace?: string | undefined;
|
|
51
52
|
readonly _tag = MaybeTag.Nothing;
|
|
52
53
|
constructor(trace?: string | undefined);
|