@fncts/base 0.0.22 → 0.0.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (192) hide show
  1. package/_cjs/collection/immutable/Conc/definition.cjs +6 -5
  2. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  3. package/_cjs/collection/immutable/HashMap/definition.cjs +9 -6
  4. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  5. package/_cjs/collection/immutable/HashSet/definition.cjs +9 -6
  6. package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
  7. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +7 -4
  8. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
  9. package/_cjs/collection/immutable/RoseTree/definition.cjs +7 -4
  10. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
  11. package/_cjs/collection/immutable/SortedMap/definition.cjs +3 -2
  12. package/_cjs/collection/immutable/SortedMap/definition.cjs.map +1 -1
  13. package/_cjs/collection/immutable/Vector/definition.cjs +7 -4
  14. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  15. package/_cjs/control/Eval/definition.cjs +11 -5
  16. package/_cjs/control/Eval/definition.cjs.map +1 -1
  17. package/_cjs/control/Z/definition.cjs +16 -9
  18. package/_cjs/control/Z/definition.cjs.map +1 -1
  19. package/_cjs/data/CaseClass.cjs +1 -1
  20. package/_cjs/data/CaseClass.cjs.map +1 -1
  21. package/_cjs/data/Cause/api.cjs +26 -1
  22. package/_cjs/data/Cause/api.cjs.map +1 -1
  23. package/_cjs/data/Cause/definition.cjs +3 -1
  24. package/_cjs/data/Cause/definition.cjs.map +1 -1
  25. package/_cjs/data/Datum/definition.cjs +10 -9
  26. package/_cjs/data/Datum/definition.cjs.map +1 -1
  27. package/_cjs/data/DatumEither/definition.cjs.map +1 -1
  28. package/_cjs/data/DatumEither.cjs +28 -0
  29. package/_cjs/data/DatumEither.cjs.map +1 -0
  30. package/_cjs/data/DecodeError/definition.cjs +3 -1
  31. package/_cjs/data/DecodeError/definition.cjs.map +1 -1
  32. package/_cjs/data/Decoder/definition.cjs +4 -2
  33. package/_cjs/data/Decoder/definition.cjs.map +1 -1
  34. package/_cjs/data/Duration/definition.cjs +5 -4
  35. package/_cjs/data/Duration/definition.cjs.map +1 -1
  36. package/_cjs/data/Either/api.cjs +6 -6
  37. package/_cjs/data/Either/api.cjs.map +1 -1
  38. package/_cjs/data/Either/definition.cjs +7 -3
  39. package/_cjs/data/Either/definition.cjs.map +1 -1
  40. package/_cjs/data/Encoder/definition.cjs +3 -1
  41. package/_cjs/data/Encoder/definition.cjs.map +1 -1
  42. package/_cjs/data/Environment/api.cjs +5 -15
  43. package/_cjs/data/Environment/api.cjs.map +1 -1
  44. package/_cjs/data/Environment/definition.cjs +9 -10
  45. package/_cjs/data/Environment/definition.cjs.map +1 -1
  46. package/_cjs/data/EnvironmentPatch.cjs +6 -2
  47. package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
  48. package/_cjs/data/Exit/definition.cjs +12 -9
  49. package/_cjs/data/Exit/definition.cjs.map +1 -1
  50. package/_cjs/data/FiberId/definition.cjs +9 -8
  51. package/_cjs/data/FiberId/definition.cjs.map +1 -1
  52. package/_cjs/data/Guard/definition.cjs +7 -3
  53. package/_cjs/data/Guard/definition.cjs.map +1 -1
  54. package/_cjs/data/Maybe/definition.cjs +8 -4
  55. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  56. package/_cjs/data/Tag/definition.cjs +7 -4
  57. package/_cjs/data/Tag/definition.cjs.map +1 -1
  58. package/_cjs/data/These/definition.cjs +10 -6
  59. package/_cjs/data/These/definition.cjs.map +1 -1
  60. package/_cjs/data/exceptions/InterruptedException.cjs +7 -3
  61. package/_cjs/data/exceptions/InterruptedException.cjs.map +1 -1
  62. package/_cjs/util/predicates.cjs +1 -1
  63. package/_cjs/util/predicates.cjs.map +1 -1
  64. package/_mjs/collection/immutable/Conc/definition.mjs +6 -5
  65. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  66. package/_mjs/collection/immutable/HashMap/definition.mjs +6 -4
  67. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  68. package/_mjs/collection/immutable/HashSet/definition.mjs +6 -4
  69. package/_mjs/collection/immutable/HashSet/definition.mjs.map +1 -1
  70. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +5 -3
  71. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
  72. package/_mjs/collection/immutable/RoseTree/definition.mjs +5 -3
  73. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -1
  74. package/_mjs/collection/immutable/SortedMap/definition.mjs +3 -2
  75. package/_mjs/collection/immutable/SortedMap/definition.mjs.map +1 -1
  76. package/_mjs/collection/immutable/Vector/definition.mjs +5 -3
  77. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  78. package/_mjs/control/Eval/definition.mjs +9 -3
  79. package/_mjs/control/Eval/definition.mjs.map +1 -1
  80. package/_mjs/control/Z/definition.mjs +11 -7
  81. package/_mjs/control/Z/definition.mjs.map +1 -1
  82. package/_mjs/data/CaseClass.mjs +1 -1
  83. package/_mjs/data/CaseClass.mjs.map +1 -1
  84. package/_mjs/data/Cause/api.mjs +22 -0
  85. package/_mjs/data/Cause/api.mjs.map +1 -1
  86. package/_mjs/data/Cause/definition.mjs +1 -0
  87. package/_mjs/data/Cause/definition.mjs.map +1 -1
  88. package/_mjs/data/Datum/definition.mjs +10 -9
  89. package/_mjs/data/Datum/definition.mjs.map +1 -1
  90. package/_mjs/data/DatumEither/definition.mjs.map +1 -1
  91. package/_mjs/data/DatumEither.mjs +4 -0
  92. package/_mjs/data/DatumEither.mjs.map +1 -0
  93. package/_mjs/data/DecodeError/definition.mjs +3 -1
  94. package/_mjs/data/DecodeError/definition.mjs.map +1 -1
  95. package/_mjs/data/Decoder/definition.mjs +3 -1
  96. package/_mjs/data/Decoder/definition.mjs.map +1 -1
  97. package/_mjs/data/Duration/definition.mjs +5 -4
  98. package/_mjs/data/Duration/definition.mjs.map +1 -1
  99. package/_mjs/data/Either/api.mjs +6 -6
  100. package/_mjs/data/Either/api.mjs.map +1 -1
  101. package/_mjs/data/Either/definition.mjs +4 -1
  102. package/_mjs/data/Either/definition.mjs.map +1 -1
  103. package/_mjs/data/Encoder/definition.mjs +3 -1
  104. package/_mjs/data/Encoder/definition.mjs.map +1 -1
  105. package/_mjs/data/Environment/api.mjs +4 -12
  106. package/_mjs/data/Environment/api.mjs.map +1 -1
  107. package/_mjs/data/Environment/definition.mjs +6 -8
  108. package/_mjs/data/Environment/definition.mjs.map +1 -1
  109. package/_mjs/data/EnvironmentPatch.mjs +4 -1
  110. package/_mjs/data/EnvironmentPatch.mjs.map +1 -1
  111. package/_mjs/data/Exit/definition.mjs +10 -8
  112. package/_mjs/data/Exit/definition.mjs.map +1 -1
  113. package/_mjs/data/FiberId/definition.mjs +9 -8
  114. package/_mjs/data/FiberId/definition.mjs.map +1 -1
  115. package/_mjs/data/Guard/definition.mjs +4 -1
  116. package/_mjs/data/Guard/definition.mjs.map +1 -1
  117. package/_mjs/data/Maybe/definition.mjs +5 -2
  118. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  119. package/_mjs/data/Tag/definition.mjs +5 -3
  120. package/_mjs/data/Tag/definition.mjs.map +1 -1
  121. package/_mjs/data/These/definition.mjs +10 -4
  122. package/_mjs/data/These/definition.mjs.map +1 -1
  123. package/_mjs/data/exceptions/InterruptedException.mjs +5 -3
  124. package/_mjs/data/exceptions/InterruptedException.mjs.map +1 -1
  125. package/_mjs/util/predicates.mjs +1 -1
  126. package/_mjs/util/predicates.mjs.map +1 -1
  127. package/_src/collection/immutable/Conc/definition.ts +3 -3
  128. package/_src/collection/immutable/HashMap/definition.ts +12 -7
  129. package/_src/collection/immutable/HashSet/definition.ts +11 -5
  130. package/_src/collection/immutable/ImmutableArray/definition.ts +8 -3
  131. package/_src/collection/immutable/RoseTree/definition.ts +8 -3
  132. package/_src/collection/immutable/SortedMap/definition.ts +1 -1
  133. package/_src/collection/immutable/Vector/definition.ts +12 -5
  134. package/_src/control/Eval/definition.ts +22 -10
  135. package/_src/control/Z/definition.ts +17 -14
  136. package/_src/data/CaseClass.ts +1 -1
  137. package/_src/data/Cause/api.ts +24 -0
  138. package/_src/data/Cause/definition.ts +25 -15
  139. package/_src/data/Datum/definition.ts +8 -7
  140. package/_src/data/DatumEither/definition.ts +0 -1
  141. package/_src/data/DatumEither.ts +4 -0
  142. package/_src/data/DecodeError/definition.ts +1 -1
  143. package/_src/data/Decoder/definition.ts +1 -1
  144. package/_src/data/Duration/definition.ts +2 -4
  145. package/_src/data/Either/api.ts +1 -3
  146. package/_src/data/Either/definition.ts +8 -3
  147. package/_src/data/Encoder/definition.ts +1 -1
  148. package/_src/data/Environment/api.ts +0 -11
  149. package/_src/data/Environment/definition.ts +9 -8
  150. package/_src/data/EnvironmentPatch.ts +8 -3
  151. package/_src/data/Exit/definition.ts +16 -12
  152. package/_src/data/FiberId/definition.ts +7 -9
  153. package/_src/data/Guard/definition.ts +7 -2
  154. package/_src/data/Maybe/definition.ts +11 -18
  155. package/_src/data/Tag/definition.ts +7 -4
  156. package/_src/data/These/definition.ts +7 -7
  157. package/_src/data/exceptions/InterruptedException.ts +2 -4
  158. package/_src/data.ts +1 -0
  159. package/_src/util/predicates.ts +2 -2
  160. package/collection/immutable/Conc/definition.d.ts +2 -2
  161. package/collection/immutable/HashMap/definition.d.ts +10 -6
  162. package/collection/immutable/HashSet/definition.d.ts +9 -4
  163. package/collection/immutable/ImmutableArray/definition.d.ts +6 -2
  164. package/collection/immutable/RoseTree/definition.d.ts +6 -2
  165. package/collection/immutable/SortedMap/definition.d.ts +1 -1
  166. package/collection/immutable/Vector/definition.d.ts +10 -4
  167. package/control/Eval/definition.d.ts +18 -7
  168. package/control/Z/definition.d.ts +12 -8
  169. package/data/Cause/api.d.ts +12 -0
  170. package/data/Cause/definition.d.ts +23 -7
  171. package/data/Datum/definition.d.ts +4 -3
  172. package/data/DatumEither/definition.d.ts +0 -1
  173. package/data/DatumEither.d.ts +2 -0
  174. package/data/DecodeError/definition.d.ts +1 -1
  175. package/data/Decoder/definition.d.ts +1 -1
  176. package/data/Duration/definition.d.ts +1 -1
  177. package/data/Either/definition.d.ts +7 -3
  178. package/data/EitherT/api.d.ts +2 -2
  179. package/data/Encoder/definition.d.ts +1 -1
  180. package/data/Environment/api.d.ts +0 -5
  181. package/data/Environment/definition.d.ts +8 -8
  182. package/data/EnvironmentPatch.d.ts +7 -3
  183. package/data/Exit/definition.d.ts +12 -6
  184. package/data/FiberId/definition.d.ts +3 -3
  185. package/data/Guard/definition.d.ts +6 -2
  186. package/data/Maybe/definition.d.ts +13 -11
  187. package/data/Tag/definition.d.ts +6 -2
  188. package/data/These/definition.d.ts +3 -3
  189. package/data/exceptions/InterruptedException.d.ts +1 -1
  190. package/data.d.ts +1 -0
  191. package/package.json +1 -1
  192. 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._typeId = TheseTypeId;
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._typeId = TheseTypeId;
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._typeId = TheseTypeId;
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.hasTypeId(u, TheseTypeId);
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":";AAMA,OAAO,MAAMA,WAAW,gBAAGC,MAAM,CAACC,GAAG,CAAC,kBAAkB,CAAC;AAGzD;;;AAGA,OAAM,MAAOC,IAAI;EAGfC,YAAqBC,IAAO;IAAP,SAAI,GAAJA,IAAI;IAFhB,YAAO,GAAgBL,WAAW;IAClC,SAAI;EACkB;;AAGjC;;;AAGA,OAAM,MAAOM,KAAK;EAGhBF,YAAqBG,KAAQ;IAAR,UAAK,GAALA,KAAK;IAFjB,YAAO,GAAgBP,WAAW;IAClC,SAAI;EACmB;;AAGlC;;;AAGA,OAAM,MAAOQ,IAAI;EAGfJ,YAAqBC,IAAO,EAAWE,KAAQ;IAA1B,SAAI,GAAJF,IAAI;IAAc,UAAK,GAALE,KAAK;IAFnC,YAAO,GAAgBP,WAAW;IAClC,SAAI;EACqC;;;AAapD,OAAO,MAAMS,KAAK,GAAa,EAAE;AAEjC;;;AAGA,OAAM,SAAUC,OAAO,CAACC,CAAU;EAChC,OAAOC,yBAAS,CAACD,CAAC,EAAEX,WAAW,CAAC;AAClC","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
+ {"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
- import { hasTypeId } from "../../util/predicates.mjs";
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._typeId = InterruptedExceptionTypeId;
7
+ this[_a] = InterruptedExceptionTypeId;
7
8
  }
8
9
  }
10
+ _a = InterruptedExceptionTypeId;
9
11
  export function isInterruptedException(u) {
10
- return hasTypeId(u, InterruptedExceptionTypeId);
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,SAASA,SAAS,QAAQ,2BAA0B;AAEpD,OAAO,MAAMC,0BAA0B,gBAAGC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAGlF,OAAM,MAAOC,oBAAoB;EAE/BC,YAAqBC,OAAgB;IAAhB,YAAO,GAAPA,OAAO;IADnB,YAAO,GAA+BL,0BAA0B;EACjC;;AAG1C,OAAM,SAAUM,sBAAsB,CAACC,CAAU;EAC/C,OAAOR,SAAS,CAACQ,CAAC,EAAEP,0BAA0B,CAAC;AACjD","names":["hasTypeId","InterruptedExceptionTypeId","Symbol","for","InterruptedException","constructor","message","isInterruptedException","u"],"sourceRoot":"","sources":["../../../_src/data/exceptions/InterruptedException.ts"],"sourcesContent":[null]}
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]}
@@ -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) && "_typeId" in value && value["_typeId"] === typeId;
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":"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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]}
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 _typeId: ConcTypeId = ConcTypeId;
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 _typeId: ConcTypeId = ConcTypeId;
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) && "_typeId" in u && u["_typeId" as keyof typeof u] === ConcTypeId;
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 TypeId = Symbol.for("fncts.HashMap");
17
- export type TypeId = typeof TypeId;
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 _typeId: TypeId = TypeId;
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 _K: () => K;
27
- declare _A: () => V;
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 hasTypeId(u, TypeId);
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 TypeId = Symbol.for("fncts.HashSet");
16
- export type TypeId = typeof TypeId;
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 _typeId: TypeId = TypeId;
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 hasTypeId(u, TypeId);
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 _typeId: ImmutableArrayTypeId = ImmutableArrayTypeId;
18
- readonly _A!: () => A;
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 hasTypeId(u, ImmutableArrayTypeId);
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 _typeId: RoseTreeTypeId = RoseTreeTypeId;
17
- declare _A: () => A;
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 hasTypeId(u, RoseTreeTypeId);
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 _typeId: TypeId = TypeId;
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 _typeId: VectorTypeId = VectorTypeId;
27
- readonly _A!: () => A;
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 _typeId: VectorTypeId;
57
- readonly _A: () => A;
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 hasTypeId(u, VectorTypeId);
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 _typeId: EvalTypeId;
16
- readonly _A: () => A;
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 = EvalTag.Value;
34
- readonly _typeId: EvalTypeId = EvalTypeId;
35
- readonly _A!: () => A;
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 _typeId: EvalTypeId = EvalTypeId;
41
- readonly _tag = EvalTag.Defer;
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 _typeId: EvalTypeId = EvalTypeId;
48
- readonly _tag = EvalTag.Chain;
49
- readonly _A!: () => B;
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 ZTypeId = Symbol.for("@principia/base/Z");
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 _typeId: ZTypeId = ZTypeId;
32
- readonly _W!: () => W;
33
- readonly _S1!: (_: S1) => void;
34
- readonly _S2!: () => S2;
35
- readonly _R!: () => R;
36
- readonly _E!: () => E;
37
- readonly _A!: () => A;
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 hasTypeId(u, ZTypeId);
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("@principia/base/Z/ZError");
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 _typeId: ZErrorTypeId = ZErrorTypeId;
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 hasTypeId(u, ZErrorTypeId);
198
+ return isObject(u) && ZErrorTypeId in u;
196
199
  }
@@ -21,7 +21,7 @@ export interface CaseConstructor {
21
21
  }
22
22
 
23
23
  export function isCaseClass(u: unknown): u is CaseConstructor {
24
- return hasTypeId(u, CaseClassTypeId);
24
+ return isObject(u) && CaseClassTypeId in u;
25
25
  }
26
26
 
27
27
  const hash0 = Hashable.string("fncts.CaseClass");
@@ -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<Id, A>(
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 _typeId: DatumTypeId = DatumTypeId;
53
- readonly _tag = DatumTag.Pending;
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 _typeId: DatumTypeId = DatumTypeId;
68
- readonly _tag = DatumTag.Refresh;
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 _typeId: DatumTypeId = DatumTypeId;
84
- readonly _tag = DatumTag.Replete;
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 hasTypeId(u, DatumTypeId);
99
+ return isObject(u) && DatumTypeId in u;
99
100
  }
@@ -8,7 +8,6 @@ export interface DatumEitherF extends HKT {
8
8
 
9
9
  /**
10
10
  * @tsplus type fncts.DatumEither
11
- * @tsplus no-inherit fncts.Datum
12
11
  */
13
12
  export type DatumEither<E, A> = Datum<Either<E, A>>;
14
13