@fncts/base 0.0.22 → 0.0.23
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/immutable/Conc/definition.cjs +6 -5
- package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/definition.cjs +9 -6
- package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/HashSet/definition.cjs +9 -6
- package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableArray/definition.cjs +7 -4
- package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/RoseTree/definition.cjs +7 -4
- package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/SortedMap/definition.cjs +3 -2
- package/_cjs/collection/immutable/SortedMap/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/definition.cjs +7 -4
- package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
- package/_cjs/control/Eval/definition.cjs +11 -5
- package/_cjs/control/Eval/definition.cjs.map +1 -1
- package/_cjs/control/Z/definition.cjs +16 -9
- package/_cjs/control/Z/definition.cjs.map +1 -1
- package/_cjs/data/CaseClass.cjs +1 -1
- package/_cjs/data/CaseClass.cjs.map +1 -1
- package/_cjs/data/Cause/api.cjs +26 -1
- package/_cjs/data/Cause/api.cjs.map +1 -1
- package/_cjs/data/Cause/definition.cjs +3 -1
- package/_cjs/data/Cause/definition.cjs.map +1 -1
- package/_cjs/data/Datum/definition.cjs +10 -9
- package/_cjs/data/Datum/definition.cjs.map +1 -1
- package/_cjs/data/DatumEither/definition.cjs.map +1 -1
- package/_cjs/data/DatumEither.cjs +28 -0
- package/_cjs/data/DatumEither.cjs.map +1 -0
- package/_cjs/data/DecodeError/definition.cjs +3 -1
- package/_cjs/data/DecodeError/definition.cjs.map +1 -1
- package/_cjs/data/Decoder/definition.cjs +4 -2
- package/_cjs/data/Decoder/definition.cjs.map +1 -1
- package/_cjs/data/Duration/definition.cjs +5 -4
- package/_cjs/data/Duration/definition.cjs.map +1 -1
- package/_cjs/data/Either/api.cjs +6 -6
- package/_cjs/data/Either/api.cjs.map +1 -1
- package/_cjs/data/Either/definition.cjs +7 -3
- package/_cjs/data/Either/definition.cjs.map +1 -1
- package/_cjs/data/Encoder/definition.cjs +3 -1
- package/_cjs/data/Encoder/definition.cjs.map +1 -1
- package/_cjs/data/Environment/api.cjs +5 -15
- package/_cjs/data/Environment/api.cjs.map +1 -1
- package/_cjs/data/Environment/definition.cjs +9 -10
- package/_cjs/data/Environment/definition.cjs.map +1 -1
- package/_cjs/data/EnvironmentPatch.cjs +6 -2
- package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
- package/_cjs/data/Exit/definition.cjs +12 -9
- package/_cjs/data/Exit/definition.cjs.map +1 -1
- package/_cjs/data/FiberId/definition.cjs +9 -8
- package/_cjs/data/FiberId/definition.cjs.map +1 -1
- package/_cjs/data/Guard/definition.cjs +7 -3
- package/_cjs/data/Guard/definition.cjs.map +1 -1
- package/_cjs/data/Maybe/definition.cjs +8 -4
- package/_cjs/data/Maybe/definition.cjs.map +1 -1
- package/_cjs/data/Tag/definition.cjs +7 -4
- package/_cjs/data/Tag/definition.cjs.map +1 -1
- package/_cjs/data/These/definition.cjs +10 -6
- package/_cjs/data/These/definition.cjs.map +1 -1
- package/_cjs/data/exceptions/InterruptedException.cjs +7 -3
- package/_cjs/data/exceptions/InterruptedException.cjs.map +1 -1
- package/_cjs/util/predicates.cjs +1 -1
- package/_cjs/util/predicates.cjs.map +1 -1
- package/_mjs/collection/immutable/Conc/definition.mjs +6 -5
- package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/HashMap/definition.mjs +6 -4
- package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/HashSet/definition.mjs +6 -4
- package/_mjs/collection/immutable/HashSet/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableArray/definition.mjs +5 -3
- package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/RoseTree/definition.mjs +5 -3
- package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/SortedMap/definition.mjs +3 -2
- package/_mjs/collection/immutable/SortedMap/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/Vector/definition.mjs +5 -3
- package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
- package/_mjs/control/Eval/definition.mjs +9 -3
- package/_mjs/control/Eval/definition.mjs.map +1 -1
- package/_mjs/control/Z/definition.mjs +11 -7
- package/_mjs/control/Z/definition.mjs.map +1 -1
- package/_mjs/data/CaseClass.mjs +1 -1
- package/_mjs/data/CaseClass.mjs.map +1 -1
- package/_mjs/data/Cause/api.mjs +22 -0
- package/_mjs/data/Cause/api.mjs.map +1 -1
- package/_mjs/data/Cause/definition.mjs +1 -0
- package/_mjs/data/Cause/definition.mjs.map +1 -1
- package/_mjs/data/Datum/definition.mjs +10 -9
- package/_mjs/data/Datum/definition.mjs.map +1 -1
- package/_mjs/data/DatumEither/definition.mjs.map +1 -1
- package/_mjs/data/DatumEither.mjs +4 -0
- package/_mjs/data/DatumEither.mjs.map +1 -0
- package/_mjs/data/DecodeError/definition.mjs +3 -1
- package/_mjs/data/DecodeError/definition.mjs.map +1 -1
- package/_mjs/data/Decoder/definition.mjs +3 -1
- package/_mjs/data/Decoder/definition.mjs.map +1 -1
- package/_mjs/data/Duration/definition.mjs +5 -4
- package/_mjs/data/Duration/definition.mjs.map +1 -1
- package/_mjs/data/Either/api.mjs +6 -6
- package/_mjs/data/Either/api.mjs.map +1 -1
- package/_mjs/data/Either/definition.mjs +4 -1
- package/_mjs/data/Either/definition.mjs.map +1 -1
- package/_mjs/data/Encoder/definition.mjs +3 -1
- package/_mjs/data/Encoder/definition.mjs.map +1 -1
- package/_mjs/data/Environment/api.mjs +4 -12
- package/_mjs/data/Environment/api.mjs.map +1 -1
- package/_mjs/data/Environment/definition.mjs +6 -8
- package/_mjs/data/Environment/definition.mjs.map +1 -1
- package/_mjs/data/EnvironmentPatch.mjs +4 -1
- package/_mjs/data/EnvironmentPatch.mjs.map +1 -1
- package/_mjs/data/Exit/definition.mjs +10 -8
- package/_mjs/data/Exit/definition.mjs.map +1 -1
- package/_mjs/data/FiberId/definition.mjs +9 -8
- package/_mjs/data/FiberId/definition.mjs.map +1 -1
- package/_mjs/data/Guard/definition.mjs +4 -1
- package/_mjs/data/Guard/definition.mjs.map +1 -1
- package/_mjs/data/Maybe/definition.mjs +5 -2
- package/_mjs/data/Maybe/definition.mjs.map +1 -1
- package/_mjs/data/Tag/definition.mjs +5 -3
- package/_mjs/data/Tag/definition.mjs.map +1 -1
- package/_mjs/data/These/definition.mjs +10 -4
- package/_mjs/data/These/definition.mjs.map +1 -1
- package/_mjs/data/exceptions/InterruptedException.mjs +5 -3
- package/_mjs/data/exceptions/InterruptedException.mjs.map +1 -1
- package/_mjs/util/predicates.mjs +1 -1
- package/_mjs/util/predicates.mjs.map +1 -1
- package/_src/collection/immutable/Conc/definition.ts +3 -3
- package/_src/collection/immutable/HashMap/definition.ts +12 -7
- package/_src/collection/immutable/HashSet/definition.ts +11 -5
- package/_src/collection/immutable/ImmutableArray/definition.ts +8 -3
- package/_src/collection/immutable/RoseTree/definition.ts +8 -3
- package/_src/collection/immutable/SortedMap/definition.ts +1 -1
- package/_src/collection/immutable/Vector/definition.ts +12 -5
- package/_src/control/Eval/definition.ts +22 -10
- package/_src/control/Z/definition.ts +17 -14
- package/_src/data/CaseClass.ts +1 -1
- package/_src/data/Cause/api.ts +24 -0
- package/_src/data/Cause/definition.ts +25 -15
- package/_src/data/Datum/definition.ts +8 -7
- package/_src/data/DatumEither/definition.ts +0 -1
- package/_src/data/DatumEither.ts +4 -0
- package/_src/data/DecodeError/definition.ts +1 -1
- package/_src/data/Decoder/definition.ts +1 -1
- package/_src/data/Duration/definition.ts +2 -4
- package/_src/data/Either/api.ts +1 -3
- package/_src/data/Either/definition.ts +8 -3
- package/_src/data/Encoder/definition.ts +1 -1
- package/_src/data/Environment/api.ts +0 -11
- package/_src/data/Environment/definition.ts +9 -8
- package/_src/data/EnvironmentPatch.ts +8 -3
- package/_src/data/Exit/definition.ts +16 -12
- package/_src/data/FiberId/definition.ts +7 -9
- package/_src/data/Guard/definition.ts +7 -2
- package/_src/data/Maybe/definition.ts +11 -18
- package/_src/data/Tag/definition.ts +7 -4
- package/_src/data/These/definition.ts +7 -7
- package/_src/data/exceptions/InterruptedException.ts +2 -4
- package/_src/data.ts +1 -0
- package/_src/util/predicates.ts +2 -2
- package/collection/immutable/Conc/definition.d.ts +2 -2
- package/collection/immutable/HashMap/definition.d.ts +10 -6
- package/collection/immutable/HashSet/definition.d.ts +9 -4
- package/collection/immutable/ImmutableArray/definition.d.ts +6 -2
- package/collection/immutable/RoseTree/definition.d.ts +6 -2
- package/collection/immutable/SortedMap/definition.d.ts +1 -1
- package/collection/immutable/Vector/definition.d.ts +10 -4
- package/control/Eval/definition.d.ts +18 -7
- package/control/Z/definition.d.ts +12 -8
- package/data/Cause/api.d.ts +12 -0
- package/data/Cause/definition.d.ts +23 -7
- package/data/Datum/definition.d.ts +4 -3
- package/data/DatumEither/definition.d.ts +0 -1
- package/data/DatumEither.d.ts +2 -0
- package/data/DecodeError/definition.d.ts +1 -1
- package/data/Decoder/definition.d.ts +1 -1
- package/data/Duration/definition.d.ts +1 -1
- package/data/Either/definition.d.ts +7 -3
- package/data/EitherT/api.d.ts +2 -2
- package/data/Encoder/definition.d.ts +1 -1
- package/data/Environment/api.d.ts +0 -5
- package/data/Environment/definition.d.ts +8 -8
- package/data/EnvironmentPatch.d.ts +7 -3
- package/data/Exit/definition.d.ts +12 -6
- package/data/FiberId/definition.d.ts +3 -3
- package/data/Guard/definition.d.ts +6 -2
- package/data/Maybe/definition.d.ts +13 -11
- package/data/Tag/definition.d.ts +6 -2
- package/data/These/definition.d.ts +3 -3
- package/data/exceptions/InterruptedException.d.ts +1 -1
- package/data.d.ts +1 -0
- package/package.json +1 -1
- package/util/predicates.d.ts +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _a, _b, _c;
|
|
1
2
|
import * as tsplus_module_1 from "@fncts/base/util/predicates";
|
|
2
3
|
export const TheseTypeId = /*#__PURE__*/Symbol.for("fncts.data.These");
|
|
3
4
|
/**
|
|
@@ -6,20 +7,24 @@ export const TheseTypeId = /*#__PURE__*/Symbol.for("fncts.data.These");
|
|
|
6
7
|
export class Left {
|
|
7
8
|
constructor(left) {
|
|
8
9
|
this.left = left;
|
|
9
|
-
this
|
|
10
|
+
this[_a] = TheseTypeId;
|
|
10
11
|
this._tag = "Left" /* TheseTag.Left */;
|
|
11
12
|
}
|
|
12
13
|
}
|
|
14
|
+
|
|
15
|
+
_a = TheseTypeId;
|
|
13
16
|
/**
|
|
14
17
|
* @tsplus type fncts.These.Right
|
|
15
18
|
*/
|
|
16
19
|
export class Right {
|
|
17
20
|
constructor(right) {
|
|
18
21
|
this.right = right;
|
|
19
|
-
this
|
|
22
|
+
this[_b] = TheseTypeId;
|
|
20
23
|
this._tag = "Right" /* TheseTag.Right */;
|
|
21
24
|
}
|
|
22
25
|
}
|
|
26
|
+
|
|
27
|
+
_b = TheseTypeId;
|
|
23
28
|
/**
|
|
24
29
|
* @tsplus type fncts.These.Both
|
|
25
30
|
*/
|
|
@@ -27,16 +32,17 @@ export class Both {
|
|
|
27
32
|
constructor(left, right) {
|
|
28
33
|
this.left = left;
|
|
29
34
|
this.right = right;
|
|
30
|
-
this
|
|
35
|
+
this[_c] = TheseTypeId;
|
|
31
36
|
this._tag = "Both" /* TheseTag.Both */;
|
|
32
37
|
}
|
|
33
38
|
}
|
|
34
39
|
|
|
40
|
+
_c = TheseTypeId;
|
|
35
41
|
export const These = {};
|
|
36
42
|
/**
|
|
37
43
|
* @tsplus static fncts.TheseOps isThese
|
|
38
44
|
*/
|
|
39
45
|
export function isThese(u) {
|
|
40
|
-
return tsplus_module_1.
|
|
46
|
+
return tsplus_module_1.isObject(u) && TheseTypeId in u;
|
|
41
47
|
}
|
|
42
48
|
//# sourceMappingURL=definition.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.mjs","mappings":"
|
|
1
|
+
{"version":3,"file":"definition.mjs","mappings":";;AAMA,OAAO,MAAMA,WAAW,gBAAGC,MAAM,CAACC,GAAG,CAAC,kBAAkB,CAAC;AAGzD;;;AAGA,OAAM,MAAOC,IAAI;EAGfC,YAAqBC,IAAO;IAAP,SAAI,GAAJA,IAAI;IAFhB,QAAa,GAAgBL,WAAW;IACxC,SAAI;EACkB;;;KAFrBA,WAAW;AAKvB;;;AAGA,OAAM,MAAOM,KAAK;EAGhBF,YAAqBG,KAAQ;IAAR,UAAK,GAALA,KAAK;IAFjB,QAAa,GAAgBP,WAAW;IACxC,SAAI;EACmB;;;KAFtBA,WAAW;AAKvB;;;AAGA,OAAM,MAAOQ,IAAI;EAGfJ,YAAqBC,IAAO,EAAWE,KAAQ;IAA1B,SAAI,GAAJF,IAAI;IAAc,UAAK,GAALE,KAAK;IAFnC,QAAa,GAAgBP,WAAW;IACxC,SAAI;EACqC;;;KAFxCA,WAAW;AAevB,OAAO,MAAMS,KAAK,GAAa,EAAE;AAEjC;;;AAGA,OAAM,SAAUC,OAAO,CAACC,CAAU;EAChC,OAAOC,wBAAQ,CAACD,CAAC,CAAC,IAAIX,WAAW,IAAIW,CAAC;AACxC","names":["TheseTypeId","Symbol","for","Left","constructor","left","Right","right","Both","These","isThese","u","tsplus_module_1"],"sourceRoot":"","sources":["../../../_src/data/These/definition.ts"],"sourcesContent":[null]}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
var _a;
|
|
2
|
+
import * as tsplus_module_1 from "@fncts/base/util/predicates";
|
|
2
3
|
export const InterruptedExceptionTypeId = /*#__PURE__*/Symbol.for("fncts.InterruptedException");
|
|
3
4
|
export class InterruptedException {
|
|
4
5
|
constructor(message) {
|
|
5
6
|
this.message = message;
|
|
6
|
-
this
|
|
7
|
+
this[_a] = InterruptedExceptionTypeId;
|
|
7
8
|
}
|
|
8
9
|
}
|
|
10
|
+
_a = InterruptedExceptionTypeId;
|
|
9
11
|
export function isInterruptedException(u) {
|
|
10
|
-
return
|
|
12
|
+
return tsplus_module_1.isObject(u) && InterruptedExceptionTypeId in u;
|
|
11
13
|
}
|
|
12
14
|
//# sourceMappingURL=InterruptedException.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InterruptedException.mjs","mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"InterruptedException.mjs","mappings":";;AAAA,OAAO,MAAMA,0BAA0B,gBAAGC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAGlF,OAAM,MAAOC,oBAAoB;EAE/BC,YAAqBC,OAAgB;IAAhB,YAAO,GAAPA,OAAO;IADnB,QAA4B,GAA+BL,0BAA0B;EACtD;;KAD9BA,0BAA0B;AAItC,OAAM,SAAUM,sBAAsB,CAACC,CAAU;EAC/C,OAAOC,wBAAQ,CAACD,CAAC,CAAC,IAAIP,0BAA0B,IAAIO,CAAC;AACvD","names":["InterruptedExceptionTypeId","Symbol","for","InterruptedException","constructor","message","isInterruptedException","u","tsplus_module_1"],"sourceRoot":"","sources":["../../../_src/data/exceptions/InterruptedException.ts"],"sourcesContent":[null]}
|
package/_mjs/util/predicates.mjs
CHANGED
|
@@ -26,7 +26,7 @@ export function isObject(value) {
|
|
|
26
26
|
return typeof value === "object" && value !== null;
|
|
27
27
|
}
|
|
28
28
|
export function hasTypeId(value, typeId) {
|
|
29
|
-
return isObject(value) &&
|
|
29
|
+
return isObject(value) && typeId in value;
|
|
30
30
|
}
|
|
31
31
|
export function isFunction(value) {
|
|
32
32
|
return typeof value === "function";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predicates.mjs","mappings":"AAEA,OAAM,SAAUA,SAAS,CAAIC,KAAoB;EAC/C,OAAOA,KAAK,KAAKC,SAAS;AAC5B;AAEA,OAAM,SAAUC,WAAW,CAAIF,KAAoB;EACjD,OAAOA,KAAK,KAAKC,SAAS;AAC5B;AAEA,OAAM,SAAUE,SAAS,CAAIH,KAAe;EAC1C,OAAOA,KAAK,KAAK,IAAI;AACvB;AAEA,OAAM,SAAUI,MAAM,CAAIJ,KAAe;EACvC,OAAOA,KAAK,KAAK,IAAI;AACvB;AAEA,OAAM,SAAUK,aAAa,CAAIL,KAA2B;EAC1D,OAAOA,KAAK,IAAI,IAAI;AACtB;AAEA,OAAM,SAAUM,UAAU,CAAIN,KAA2B;EACvD,OAAOA,KAAK,IAAI,IAAI;AACtB;AAEA,OAAM,SAAUO,UAAU,CAAIP,KAAc;EAC1C,OAAOQ,QAAQ,CAACR,KAAK,CAAC,IAAIS,MAAM,CAACC,QAAQ,IAAIV,KAAK;AACpD;AAIA,OAAM,SAAUW,OAAO,CAACX,KAAc;EACpC,OAAOY,KAAK,CAACD,OAAO,CAACX,KAAK,CAAC;AAC7B;AAKA,OAAM,SAAUQ,QAAQ,CAAIR,KAAoB;EAC9C,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI;AACpD;AAEA,OAAM,SAAUa,SAAS,CACvBb,KAAc,EACdc,MAAS;EAIT,OAAON,QAAQ,CAACR,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"predicates.mjs","mappings":"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","names":["isDefined","value","undefined","isUndefined","isNonNull","isNull","isNonNullable","isNullable","isIterable","isObject","Symbol","iterator","isArray","Array","hasTypeId","typeId","isFunction","isBoolean","isString","isNumber","isBigInt","isByte","n","Number","isInteger","isSymbol","isPlain","constructor","Object","isInstanceOf","type","isMap","u","Map","isWeakMap","WeakMap","isPromise","Promise","isSet","Set","isWeakSet","WeakSet","isDate","Date","TypedArrayConstructor","getPrototypeOf","Uint8Array","isTypedArray","isRegExp","getTag","RegExp","isAnyArrayBuffer","ArrayBuffer","SharedArrayBuffer","isArrayBuffer","isDataView","DataView","prototype","toString","call"],"sourceRoot":"","sources":["../../_src/util/predicates.ts"],"sourcesContent":[null]}
|
|
@@ -30,7 +30,7 @@ export interface ConcF extends HKT {
|
|
|
30
30
|
export abstract class Conc<A> implements Iterable<A>, Hashable, Equatable {
|
|
31
31
|
declare _A: () => A;
|
|
32
32
|
|
|
33
|
-
readonly
|
|
33
|
+
readonly [ConcTypeId]: ConcTypeId = ConcTypeId;
|
|
34
34
|
abstract readonly length: number;
|
|
35
35
|
abstract [Symbol.iterator](): Iterator<A>;
|
|
36
36
|
|
|
@@ -44,7 +44,7 @@ export abstract class Conc<A> implements Iterable<A>, Hashable, Equatable {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
abstract class ConcImplementation<A> implements Iterable<A> {
|
|
47
|
-
readonly
|
|
47
|
+
readonly [ConcTypeId]: ConcTypeId = ConcTypeId;
|
|
48
48
|
declare _A: () => A;
|
|
49
49
|
get [Symbol.hash](): number {
|
|
50
50
|
return Hashable.iterator(this[Symbol.iterator]());
|
|
@@ -731,7 +731,7 @@ export function fromArray<A>(array: ArrayLike<A>): ConcImplementation<A> {
|
|
|
731
731
|
export function isConc<A>(u: Iterable<A>): u is Conc<A>;
|
|
732
732
|
export function isConc(u: unknown): u is Conc<unknown>;
|
|
733
733
|
export function isConc(u: unknown): u is Conc<unknown> {
|
|
734
|
-
return isObject(u) &&
|
|
734
|
+
return isObject(u) && ConcTypeId in u;
|
|
735
735
|
}
|
|
736
736
|
|
|
737
737
|
/**
|
|
@@ -13,18 +13,23 @@ export interface HashMapF extends HKT {
|
|
|
13
13
|
index: this["K"];
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export const
|
|
17
|
-
export type
|
|
16
|
+
export const HashMapVariance = Symbol.for("fncts.HashMap.Variance");
|
|
17
|
+
export type HashMapVariance = typeof HashMapVariance;
|
|
18
|
+
|
|
19
|
+
export const HashMapTypeId = Symbol.for("fncts.HashMap");
|
|
20
|
+
export type HashMapTypeId = typeof HashMapTypeId;
|
|
18
21
|
|
|
19
22
|
/**
|
|
20
23
|
* @tsplus type fncts.HashMap
|
|
21
24
|
* @tsplus companion fncts.HashMapOps
|
|
22
25
|
*/
|
|
23
|
-
export class HashMap<K, V> implements Iterable<readonly [K, V]>, Hashable, Equatable {
|
|
24
|
-
readonly
|
|
26
|
+
export class HashMap<in out K, in out V> implements Iterable<readonly [K, V]>, Hashable, Equatable {
|
|
27
|
+
readonly [HashMapTypeId]: HashMapTypeId = HashMapTypeId;
|
|
25
28
|
|
|
26
|
-
declare
|
|
27
|
-
|
|
29
|
+
declare [HashMapVariance]: {
|
|
30
|
+
readonly _K: (_: K) => K;
|
|
31
|
+
readonly _A: (_: V) => V;
|
|
32
|
+
};
|
|
28
33
|
|
|
29
34
|
constructor(
|
|
30
35
|
public editable: boolean,
|
|
@@ -59,7 +64,7 @@ export class HashMap<K, V> implements Iterable<readonly [K, V]>, Hashable, Equat
|
|
|
59
64
|
export function isHashMap<K, V>(u: Iterable<readonly [K, V]>): u is HashMap<K, V>;
|
|
60
65
|
export function isHashMap(u: unknown): u is HashMap<unknown, unknown>;
|
|
61
66
|
export function isHashMap(u: unknown): u is HashMap<unknown, unknown> {
|
|
62
|
-
return
|
|
67
|
+
return isObject(u) && HashMapTypeId in u;
|
|
63
68
|
}
|
|
64
69
|
|
|
65
70
|
export class HashMapIterator<K, V, T> implements IterableIterator<T> {
|
|
@@ -12,15 +12,21 @@ import {
|
|
|
12
12
|
import { identity } from "@fncts/base/data/function";
|
|
13
13
|
import * as P from "@fncts/base/typeclass";
|
|
14
14
|
|
|
15
|
-
export const
|
|
16
|
-
export type
|
|
15
|
+
export const HashSetVariance = Symbol.for("fncts.HashSet.Variance");
|
|
16
|
+
export type HashSetVariance = typeof HashSetVariance;
|
|
17
|
+
|
|
18
|
+
export const HashSetTypeId = Symbol.for("fncts.HashSet");
|
|
19
|
+
export type HashSetTypeId = typeof HashSetTypeId;
|
|
17
20
|
|
|
18
21
|
/**
|
|
19
22
|
* @tsplus type fncts.HashSet
|
|
20
23
|
* @tsplus companion fncts.HashSetOps
|
|
21
24
|
*/
|
|
22
|
-
export class HashSet<A> implements Iterable<A>, P.Hashable, P.Equatable {
|
|
23
|
-
readonly
|
|
25
|
+
export class HashSet<in out A> implements Iterable<A>, P.Hashable, P.Equatable {
|
|
26
|
+
readonly [HashSetTypeId]: HashSetTypeId = HashSetTypeId;
|
|
27
|
+
declare [HashSetVariance]: {
|
|
28
|
+
readonly _A: (_: A) => A;
|
|
29
|
+
};
|
|
24
30
|
|
|
25
31
|
constructor(
|
|
26
32
|
/**
|
|
@@ -72,7 +78,7 @@ export class HashSet<A> implements Iterable<A>, P.Hashable, P.Equatable {
|
|
|
72
78
|
export function isHashSet<A>(u: Iterable<A>): u is HashSet<A>;
|
|
73
79
|
export function isHashSet(u: unknown): u is HashSet<unknown>;
|
|
74
80
|
export function isHashSet(u: unknown): u is HashSet<unknown> {
|
|
75
|
-
return
|
|
81
|
+
return isObject(u) && HashSetTypeId in u;
|
|
76
82
|
}
|
|
77
83
|
|
|
78
84
|
class HashSetIterator<A, T> implements IterableIterator<T> {
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
export const ImmutableArrayVariance = Symbol.for("fncts.ImmutableArray.Variance");
|
|
2
|
+
export type ImmutableArrayVariance = typeof ImmutableArrayVariance;
|
|
3
|
+
|
|
1
4
|
export const ImmutableArrayTypeId = Symbol.for("fncts.ImmutableArray");
|
|
2
5
|
export type ImmutableArrayTypeId = typeof ImmutableArrayTypeId;
|
|
3
6
|
|
|
@@ -14,8 +17,10 @@ export interface ImmutableArrayF extends HKT {
|
|
|
14
17
|
* @tsplus companion fncts.ImmutableArrayOps
|
|
15
18
|
*/
|
|
16
19
|
export class ImmutableArray<A> implements Equatable, Hashable, Iterable<A> {
|
|
17
|
-
readonly
|
|
18
|
-
|
|
20
|
+
readonly [ImmutableArrayTypeId]: ImmutableArrayTypeId = ImmutableArrayTypeId;
|
|
21
|
+
declare [ImmutableArrayVariance]: {
|
|
22
|
+
readonly _A: (_: never) => A;
|
|
23
|
+
};
|
|
19
24
|
constructor(readonly _array: ReadonlyArray<A>) {}
|
|
20
25
|
|
|
21
26
|
[Symbol.equals](that: unknown): boolean {
|
|
@@ -39,5 +44,5 @@ export class ImmutableArray<A> implements Equatable, Hashable, Iterable<A> {
|
|
|
39
44
|
* @tsplus static fncts.ImmutableArrayOps is
|
|
40
45
|
*/
|
|
41
46
|
export function isImmutableArray(u: unknown): u is ImmutableArray<unknown> {
|
|
42
|
-
return
|
|
47
|
+
return isObject(u) && ImmutableArrayTypeId in u;
|
|
43
48
|
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
export const RoseTreeVariance = Symbol.for("fncts.RoseTree.Variance");
|
|
2
|
+
export type RoseTreeVariance = typeof RoseTreeVariance;
|
|
3
|
+
|
|
1
4
|
export const RoseTreeTypeId = Symbol.for("fncts.RoseTree");
|
|
2
5
|
export type RoseTreeTypeId = typeof RoseTreeTypeId;
|
|
3
6
|
|
|
@@ -13,8 +16,10 @@ export interface RoseTreeF extends HKT {
|
|
|
13
16
|
* @tsplus companion fncts.RoseTreeOps
|
|
14
17
|
*/
|
|
15
18
|
export class RoseTree<A> implements Hashable, Equatable {
|
|
16
|
-
readonly
|
|
17
|
-
declare
|
|
19
|
+
readonly [RoseTreeTypeId]: RoseTreeTypeId = RoseTreeTypeId;
|
|
20
|
+
declare [RoseTreeVariance]: {
|
|
21
|
+
readonly _A: (_: never) => A;
|
|
22
|
+
};
|
|
18
23
|
constructor(readonly value: A, readonly forest: Vector<RoseTree<A>>) {}
|
|
19
24
|
|
|
20
25
|
[Symbol.equals](that: unknown): boolean {
|
|
@@ -30,5 +35,5 @@ export class RoseTree<A> implements Hashable, Equatable {
|
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
export function isRoseTree(u: unknown): u is RoseTree<unknown> {
|
|
33
|
-
return
|
|
38
|
+
return isObject(u) && RoseTreeTypeId in u;
|
|
34
39
|
}
|
|
@@ -12,7 +12,7 @@ export type TypeId = typeof TypeId;
|
|
|
12
12
|
* @tsplus companion fncts.SortedMapOps
|
|
13
13
|
*/
|
|
14
14
|
export class SortedMap<K, V> implements SortedMapIterable<K, V> {
|
|
15
|
-
readonly
|
|
15
|
+
readonly [TypeId]: TypeId = TypeId;
|
|
16
16
|
|
|
17
17
|
constructor(readonly ord: Ord<K>, readonly root: RBNode<K, V>) {}
|
|
18
18
|
|
|
@@ -5,6 +5,9 @@ import type { Node } from "@fncts/base/collection/immutable/Vector/internal";
|
|
|
5
5
|
import { foldLeftCb } from "@fncts/base/collection/immutable/Vector/internal";
|
|
6
6
|
import { ForwardVectorIterator } from "@fncts/base/collection/immutable/Vector/internal";
|
|
7
7
|
|
|
8
|
+
export const VectorVariance = Symbol.for("fncts.Vector.Variance");
|
|
9
|
+
export type VectorVariance = typeof VectorVariance;
|
|
10
|
+
|
|
8
11
|
export const VectorTypeId = Symbol.for("fncts.Vector");
|
|
9
12
|
export type VectorTypeId = typeof VectorTypeId;
|
|
10
13
|
|
|
@@ -23,8 +26,10 @@ export interface VectorF extends HKT {
|
|
|
23
26
|
* @tsplus companion fncts.VectorOps
|
|
24
27
|
*/
|
|
25
28
|
export class Vector<A> implements Iterable<A> {
|
|
26
|
-
readonly
|
|
27
|
-
|
|
29
|
+
readonly [VectorTypeId]: VectorTypeId = VectorTypeId;
|
|
30
|
+
declare [VectorVariance]: {
|
|
31
|
+
readonly _A: (_: never) => A;
|
|
32
|
+
};
|
|
28
33
|
constructor(
|
|
29
34
|
/** @private */
|
|
30
35
|
readonly bits: number,
|
|
@@ -53,8 +58,10 @@ export class Vector<A> implements Iterable<A> {
|
|
|
53
58
|
* @tsplus type fncts.MutableVector
|
|
54
59
|
*/
|
|
55
60
|
export interface MutableVector<A> {
|
|
56
|
-
readonly
|
|
57
|
-
readonly
|
|
61
|
+
readonly [VectorTypeId]: VectorTypeId;
|
|
62
|
+
readonly [VectorVariance]: {
|
|
63
|
+
readonly _A: (_: never) => A;
|
|
64
|
+
};
|
|
58
65
|
bits: number;
|
|
59
66
|
offset: number;
|
|
60
67
|
length: number;
|
|
@@ -72,7 +79,7 @@ export interface MutableVector<A> {
|
|
|
72
79
|
}
|
|
73
80
|
|
|
74
81
|
export function isVector(u: unknown): u is Vector<unknown> {
|
|
75
|
-
return
|
|
82
|
+
return isObject(u) && VectorTypeId in u;
|
|
76
83
|
}
|
|
77
84
|
|
|
78
85
|
/**
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
export const EvalVariance = Symbol.for("fncts.Eval.Variance");
|
|
2
|
+
export type EvalVariance = typeof EvalVariance;
|
|
3
|
+
|
|
1
4
|
export const EvalTypeId = Symbol.for("@fncts/control/Eval");
|
|
2
5
|
export type EvalTypeId = typeof EvalTypeId;
|
|
3
6
|
|
|
@@ -12,8 +15,10 @@ export interface EvalF extends HKT {
|
|
|
12
15
|
* @tsplus type fncts.control.Eval
|
|
13
16
|
*/
|
|
14
17
|
export interface Eval<A> {
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
18
|
+
readonly [EvalTypeId]: EvalTypeId;
|
|
19
|
+
readonly [EvalVariance]: {
|
|
20
|
+
readonly _A: (_: never) => A;
|
|
21
|
+
};
|
|
17
22
|
}
|
|
18
23
|
|
|
19
24
|
/**
|
|
@@ -30,23 +35,30 @@ export const enum EvalTag {
|
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
export class Value<A> implements Eval<A> {
|
|
33
|
-
readonly _tag
|
|
34
|
-
readonly
|
|
35
|
-
|
|
38
|
+
readonly _tag = EvalTag.Value;
|
|
39
|
+
readonly [EvalTypeId]: EvalTypeId = EvalTypeId;
|
|
40
|
+
declare [EvalVariance]: {
|
|
41
|
+
readonly _A: (_: never) => A;
|
|
42
|
+
};
|
|
36
43
|
constructor(readonly value: A) {}
|
|
37
44
|
}
|
|
38
45
|
|
|
39
46
|
export class Defer<A> implements Eval<A> {
|
|
40
|
-
readonly
|
|
41
|
-
|
|
47
|
+
readonly [EvalTypeId]: EvalTypeId = EvalTypeId;
|
|
48
|
+
declare [EvalVariance]: {
|
|
49
|
+
readonly _A: (_: never) => A;
|
|
50
|
+
};
|
|
51
|
+
readonly _tag = EvalTag.Defer;
|
|
42
52
|
readonly _A!: () => A;
|
|
43
53
|
constructor(readonly make: () => Eval<A>) {}
|
|
44
54
|
}
|
|
45
55
|
|
|
46
56
|
export class Chain<A, B> implements Eval<B> {
|
|
47
|
-
readonly
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
readonly [EvalTypeId]: EvalTypeId = EvalTypeId;
|
|
58
|
+
declare [EvalVariance]: {
|
|
59
|
+
readonly _A: (_: never) => B;
|
|
60
|
+
};
|
|
61
|
+
readonly _tag = EvalTag.Chain;
|
|
50
62
|
constructor(readonly self: Eval<A>, readonly f: (a: A) => Eval<B>) {}
|
|
51
63
|
}
|
|
52
64
|
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { hasTypeId } from "../../util/predicates.js";
|
|
2
|
-
|
|
3
1
|
export interface ZF extends HKT {
|
|
4
2
|
type: Z<this["W"], this["S"], this["S"], this["R"], this["E"], this["A"]>;
|
|
5
3
|
variance: {
|
|
@@ -11,7 +9,10 @@ export interface ZF extends HKT {
|
|
|
11
9
|
};
|
|
12
10
|
}
|
|
13
11
|
|
|
14
|
-
export const
|
|
12
|
+
export const ZVariance = Symbol.for("fncts.Z.Variance");
|
|
13
|
+
export type ZVariance = typeof ZVariance;
|
|
14
|
+
|
|
15
|
+
export const ZTypeId = Symbol.for("fncts.Z");
|
|
15
16
|
export type ZTypeId = typeof ZTypeId;
|
|
16
17
|
|
|
17
18
|
/**
|
|
@@ -28,13 +29,15 @@ export type ZTypeId = typeof ZTypeId;
|
|
|
28
29
|
* @tsplus companion fncts.control.ZOps
|
|
29
30
|
*/
|
|
30
31
|
export abstract class Z<W, S1, S2, R, E, A> {
|
|
31
|
-
readonly
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
readonly [ZTypeId]: ZTypeId = ZTypeId;
|
|
33
|
+
declare [ZVariance]: {
|
|
34
|
+
readonly _W: (_: never) => W;
|
|
35
|
+
readonly _S1: (_: S1) => void;
|
|
36
|
+
readonly _S2: (_: never) => S2;
|
|
37
|
+
readonly _R: (_: never) => R;
|
|
38
|
+
readonly _E: (_: never) => E;
|
|
39
|
+
readonly _A: (_: never) => A;
|
|
40
|
+
};
|
|
38
41
|
}
|
|
39
42
|
|
|
40
43
|
/**
|
|
@@ -57,7 +60,7 @@ export function unifyZ<X extends Z<any, any, any, any, any, any>>(
|
|
|
57
60
|
* @tsplus static fncts.control.ZOps isZ
|
|
58
61
|
*/
|
|
59
62
|
export function isZ(u: unknown): u is Z<unknown, unknown, unknown, unknown, unknown, unknown> {
|
|
60
|
-
return
|
|
63
|
+
return isObject(u) && ZTypeId in u;
|
|
61
64
|
}
|
|
62
65
|
|
|
63
66
|
export const enum ZTag {
|
|
@@ -183,14 +186,14 @@ export function concrete(_: Z<any, any, any, any, any, any>): asserts _ is Concr
|
|
|
183
186
|
//
|
|
184
187
|
}
|
|
185
188
|
|
|
186
|
-
export const ZErrorTypeId = Symbol.for("
|
|
189
|
+
export const ZErrorTypeId = Symbol.for("fncts.Z.ZError");
|
|
187
190
|
export type ZErrorTypeId = typeof ZErrorTypeId;
|
|
188
191
|
|
|
189
192
|
export class ZError<E> {
|
|
190
|
-
readonly
|
|
193
|
+
readonly [ZErrorTypeId]: ZErrorTypeId = ZErrorTypeId;
|
|
191
194
|
constructor(readonly cause: Cause<E>) {}
|
|
192
195
|
}
|
|
193
196
|
|
|
194
197
|
export function isZError(u: unknown): u is ZError<unknown> {
|
|
195
|
-
return
|
|
198
|
+
return isObject(u) && ZErrorTypeId in u;
|
|
196
199
|
}
|
package/_src/data/CaseClass.ts
CHANGED
package/_src/data/Cause/api.ts
CHANGED
|
@@ -663,6 +663,30 @@ export function isInterrupted<E>(self: Cause<E>): boolean {
|
|
|
663
663
|
return self.find((cause) => (cause.isInterrupt() ? Just(cause) : Nothing())).isJust();
|
|
664
664
|
}
|
|
665
665
|
|
|
666
|
+
/**
|
|
667
|
+
* Determines if the `Cause` contains only interruptions and not any `Die` or
|
|
668
|
+
* `Fail` causes.
|
|
669
|
+
* @tsplus getter fncts.Cause isInterruptedOnly
|
|
670
|
+
*/
|
|
671
|
+
export function isInterruptedOnly<E>(self: Cause<E>): boolean {
|
|
672
|
+
return self.fold({
|
|
673
|
+
Empty: () => true,
|
|
674
|
+
Fail: () => false,
|
|
675
|
+
Halt: () => false,
|
|
676
|
+
Interrupt: () => true,
|
|
677
|
+
Both: (left, right) => left && right,
|
|
678
|
+
Then: (left, right) => left && right,
|
|
679
|
+
Stackless: (value) => value,
|
|
680
|
+
});
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
/**
|
|
684
|
+
* @tsplus getter fncts.Cause isFailure
|
|
685
|
+
*/
|
|
686
|
+
export function isFailure<E>(self: Cause<E>): boolean {
|
|
687
|
+
return self.failureMaybe.isJust();
|
|
688
|
+
}
|
|
689
|
+
|
|
666
690
|
/**
|
|
667
691
|
* A type-guard matching `Traced`
|
|
668
692
|
*
|
|
@@ -3,6 +3,9 @@ import { Hashable } from "../../typeclass.js";
|
|
|
3
3
|
import { isObject } from "../../util/predicates.js";
|
|
4
4
|
import { tuple } from "../function.js";
|
|
5
5
|
|
|
6
|
+
export const CauseVariance = Symbol.for("fncts.Cause.Variance");
|
|
7
|
+
export type CauseVariance = typeof CauseVariance;
|
|
8
|
+
|
|
6
9
|
export const CauseTypeId = Symbol.for("fncts.Cause");
|
|
7
10
|
export type CauseTypeId = typeof CauseTypeId;
|
|
8
11
|
|
|
@@ -38,9 +41,10 @@ const _emptyHash = Hashable.string("fncts.Cause");
|
|
|
38
41
|
* @tsplus companion fncts.Cause.EmptyOps
|
|
39
42
|
*/
|
|
40
43
|
export class Empty {
|
|
41
|
-
readonly _E!: () => never;
|
|
42
|
-
|
|
43
44
|
readonly [CauseTypeId]: CauseTypeId = CauseTypeId;
|
|
45
|
+
declare [CauseVariance]: {
|
|
46
|
+
readonly _E: (_: never) => never;
|
|
47
|
+
};
|
|
44
48
|
readonly _tag = CauseTag.Empty;
|
|
45
49
|
|
|
46
50
|
get [Symbol.hash](): number {
|
|
@@ -71,9 +75,10 @@ export const _Empty = new Empty();
|
|
|
71
75
|
* @tsplus companion fncts.Cause.FailOps
|
|
72
76
|
*/
|
|
73
77
|
export class Fail<E> {
|
|
74
|
-
readonly _E!: () => E;
|
|
75
|
-
|
|
76
78
|
readonly [CauseTypeId]: CauseTypeId = CauseTypeId;
|
|
79
|
+
declare [CauseVariance]: {
|
|
80
|
+
readonly _E: (_: never) => E;
|
|
81
|
+
};
|
|
77
82
|
readonly _tag = CauseTag.Fail;
|
|
78
83
|
|
|
79
84
|
constructor(readonly value: E, readonly trace: Trace) {}
|
|
@@ -108,9 +113,10 @@ export class Fail<E> {
|
|
|
108
113
|
* @tsplus companion fncts.Cause.HaltOps
|
|
109
114
|
*/
|
|
110
115
|
export class Halt {
|
|
111
|
-
readonly _E!: () => never;
|
|
112
|
-
|
|
113
116
|
readonly [CauseTypeId]: CauseTypeId = CauseTypeId;
|
|
117
|
+
declare [CauseVariance]: {
|
|
118
|
+
readonly _E: (_: never) => never;
|
|
119
|
+
};
|
|
114
120
|
readonly _tag = CauseTag.Halt;
|
|
115
121
|
|
|
116
122
|
constructor(readonly value: unknown, readonly trace: Trace) {}
|
|
@@ -145,9 +151,10 @@ export class Halt {
|
|
|
145
151
|
* @tsplus companion fncts.Cause.InterruptOps
|
|
146
152
|
*/
|
|
147
153
|
export class Interrupt {
|
|
148
|
-
readonly _E!: () => never;
|
|
149
|
-
|
|
150
154
|
readonly [CauseTypeId]: CauseTypeId = CauseTypeId;
|
|
155
|
+
declare [CauseVariance]: {
|
|
156
|
+
readonly _E: (_: never) => never;
|
|
157
|
+
};
|
|
151
158
|
readonly _tag = CauseTag.Interrupt;
|
|
152
159
|
|
|
153
160
|
constructor(readonly id: FiberId, readonly trace: Trace) {}
|
|
@@ -183,9 +190,10 @@ export class Interrupt {
|
|
|
183
190
|
* @tsplus companion fncts.Cause.ThenOps
|
|
184
191
|
*/
|
|
185
192
|
export class Then<E> {
|
|
186
|
-
readonly _E!: () => E;
|
|
187
|
-
|
|
188
193
|
readonly [CauseTypeId]: CauseTypeId = CauseTypeId;
|
|
194
|
+
declare [CauseVariance]: {
|
|
195
|
+
readonly _E: (_: never) => E;
|
|
196
|
+
};
|
|
189
197
|
readonly _tag = CauseTag.Then;
|
|
190
198
|
|
|
191
199
|
constructor(readonly left: Cause<E>, readonly right: Cause<E>) {}
|
|
@@ -216,9 +224,10 @@ export class Then<E> {
|
|
|
216
224
|
* @tsplus companion fncts.Cause.BothOps
|
|
217
225
|
*/
|
|
218
226
|
export class Both<E> {
|
|
219
|
-
readonly _E!: () => E;
|
|
220
|
-
|
|
221
227
|
readonly [CauseTypeId]: CauseTypeId = CauseTypeId;
|
|
228
|
+
declare [CauseVariance]: {
|
|
229
|
+
readonly _E: (_: never) => E;
|
|
230
|
+
};
|
|
222
231
|
readonly _tag = CauseTag.Both;
|
|
223
232
|
|
|
224
233
|
constructor(readonly left: Cause<E>, readonly right: Cause<E>) {}
|
|
@@ -249,9 +258,10 @@ export class Both<E> {
|
|
|
249
258
|
* @tsplus companion fncts.Cause.StacklessOps
|
|
250
259
|
*/
|
|
251
260
|
export class Stackless<E> {
|
|
252
|
-
readonly _E!: () => E;
|
|
253
|
-
|
|
254
261
|
readonly [CauseTypeId]: CauseTypeId = CauseTypeId;
|
|
262
|
+
declare [CauseVariance]: {
|
|
263
|
+
readonly _E: (_: never) => E;
|
|
264
|
+
};
|
|
255
265
|
readonly _tag = CauseTag.Stackless;
|
|
256
266
|
|
|
257
267
|
constructor(readonly cause: Cause<E>, readonly stackless: boolean) {}
|
|
@@ -279,7 +289,7 @@ export class Unified {
|
|
|
279
289
|
* -------------------------------------------------------------------------------------------------
|
|
280
290
|
*/
|
|
281
291
|
|
|
282
|
-
function structuralSymmetric<
|
|
292
|
+
function structuralSymmetric<A>(
|
|
283
293
|
f: (x: Cause<A>, y: Cause<A>) => Eval<boolean>,
|
|
284
294
|
): (x: Cause<A>, y: Cause<A>) => Eval<boolean> {
|
|
285
295
|
return (x, y) => f(x, y).zipWith(f(y, x), (a, b) => a || b);
|
|
@@ -34,6 +34,7 @@ const initialHash = Hashable.combine(datumHash, Hashable.string(DatumTag.Ini
|
|
|
34
34
|
*/
|
|
35
35
|
export class Initial implements Hashable, Equatable {
|
|
36
36
|
readonly _tag = DatumTag.Initial;
|
|
37
|
+
readonly [DatumTypeId]: DatumTypeId = DatumTypeId;
|
|
37
38
|
get [Symbol.hash](): number {
|
|
38
39
|
return initialHash;
|
|
39
40
|
}
|
|
@@ -49,8 +50,8 @@ const pendingHash = Hashable.combine(datumHash, Hashable.string(DatumTag.Pending
|
|
|
49
50
|
* @tsplus companion fncts.Datum.PendingOps
|
|
50
51
|
*/
|
|
51
52
|
export class Pending implements Hashable, Equatable {
|
|
52
|
-
readonly
|
|
53
|
-
readonly _tag
|
|
53
|
+
readonly [DatumTypeId]: DatumTypeId = DatumTypeId;
|
|
54
|
+
readonly _tag = DatumTag.Pending;
|
|
54
55
|
get [Symbol.hash](): number {
|
|
55
56
|
return pendingHash;
|
|
56
57
|
}
|
|
@@ -64,8 +65,8 @@ export class Pending implements Hashable, Equatable {
|
|
|
64
65
|
* @tsplus companion fncts.Datum.RefreshOps
|
|
65
66
|
*/
|
|
66
67
|
export class Refresh<A> implements Hashable, Equatable {
|
|
67
|
-
readonly
|
|
68
|
-
readonly _tag
|
|
68
|
+
readonly [DatumTypeId]: DatumTypeId = DatumTypeId;
|
|
69
|
+
readonly _tag = DatumTag.Refresh;
|
|
69
70
|
constructor(readonly value: A) {}
|
|
70
71
|
get [Symbol.hash](): number {
|
|
71
72
|
return Hashable.combine(Hashable.combine(datumHash, Hashable.string(this._tag)), Hashable.unknown(this.value));
|
|
@@ -80,8 +81,8 @@ export class Refresh<A> implements Hashable, Equatable {
|
|
|
80
81
|
* @tsplus companion fncts.Datum.RepleteOps
|
|
81
82
|
*/
|
|
82
83
|
export class Replete<A> implements Hashable, Equatable {
|
|
83
|
-
readonly
|
|
84
|
-
readonly _tag
|
|
84
|
+
readonly [DatumTypeId]: DatumTypeId = DatumTypeId;
|
|
85
|
+
readonly _tag = DatumTag.Replete;
|
|
85
86
|
constructor(readonly value: A) {}
|
|
86
87
|
get [Symbol.hash](): number {
|
|
87
88
|
return Hashable.combine(Hashable.combine(datumHash, Hashable.string(this._tag)), Hashable.unknown(this.value));
|
|
@@ -95,5 +96,5 @@ export class Replete<A> implements Hashable, Equatable {
|
|
|
95
96
|
* @tsplus static fncts.DatumOps is
|
|
96
97
|
*/
|
|
97
98
|
export function isDatum(u: unknown): u is Datum<unknown> {
|
|
98
|
-
return
|
|
99
|
+
return isObject(u) && DatumTypeId in u;
|
|
99
100
|
}
|