@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.
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":"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,IAAI,SAAS,IAAIA,KAAK,IAAIA,KAAK,CAAC,SAAS,CAAC,KAAKc,MAAM;AAC7E;AAEA,OAAM,SAAUC,UAAU,CAACf,KAAc;EACvC,OAAO,OAAOA,KAAK,KAAK,UAAU;AACpC;AAEA,OAAM,SAAUgB,SAAS,CAAChB,KAAc;EACtC,OAAO,OAAOA,KAAK,KAAK,SAAS;AACnC;AAEA,OAAM,SAAUiB,QAAQ,CAACjB,KAAc;EACrC,OAAO,OAAOA,KAAK,KAAK,QAAQ;AAClC;AAEA,OAAM,SAAUkB,QAAQ,CAAClB,KAAc;EACrC,OAAO,OAAOA,KAAK,KAAK,QAAQ;AAClC;AAEA,OAAM,SAAUmB,QAAQ,CAACnB,KAAc;EACrC,OAAO,OAAOA,KAAK,KAAK,QAAQ;AAClC;AAEA,OAAM,SAAUoB,MAAM,CAACC,CAAU;EAC/B,OAAO,OAAOA,CAAC,KAAK,QAAQ,IAAIC,MAAM,CAACC,SAAS,CAACF,CAAC,CAAC,IAAIA,CAAC,IAAI,CAAC,IAAIA,CAAC,IAAI,GAAG;AAC3E;AAEA,OAAM,SAAUG,QAAQ,CAACxB,KAAc;EACrC,OAAO,OAAOA,KAAK,KAAK,QAAQ;AAClC;AAEA,OAAM,SAAUyB,OAAO,CAACzB,KAAc;EACpC,OAAOQ,QAAQ,CAACR,KAAK,CAAC,IAAIA,KAAK,CAAC0B,WAAW,KAAKC,MAAM;AACxD;AAEA,OAAM,SAAUC,YAAY,CAA8BC,IAAO;EAC/D,OAAQ7B,KAAK,IAAiBA,KAAK,YAAY6B,IAAI;AACrD;AAEA,OAAM,SAAUC,KAAK,CAACC,CAAU;EAC9B,OAAOA,CAAC,YAAYC,GAAG;AACzB;AAEA,OAAM,SAAUC,SAAS,CAACF,CAAU;EAClC,OAAOA,CAAC,YAAYG,OAAO;AAC7B;AAEA,OAAM,SAAUC,SAAS,CAACJ,CAAU;EAClC,OAAOA,CAAC,YAAYK,OAAO;AAC7B;AAEA,OAAM,SAAUC,KAAK,CAACN,CAAU;EAC9B,OAAOA,CAAC,YAAYO,GAAG;AACzB;AAEA,OAAM,SAAUC,SAAS,CAACR,CAAU;EAClC,OAAOA,CAAC,YAAYS,OAAO;AAC7B;AAEA,OAAM,SAAUC,MAAM,CAACV,CAAU;EAC/B,OAAOA,CAAC,YAAYW,IAAI;AAC1B;AAeA,MAAMC,qBAAqB,gBAAGhB,MAAM,CAACiB,cAAc,CAACC,UAAU,CAAC;AAE/D,OAAM,SAAUC,YAAY,CAACf,CAAU;EACrC,OAAOA,CAAC,YAAYY,qBAAqB;AAC3C;AAEA,OAAM,SAAUI,QAAQ,CAAChB,CAAU;EACjC,OAAOvB,QAAQ,CAACuB,CAAC,CAAC,KAAKiB,MAAM,CAACjB,CAAC,CAAC,KAAK,iBAAiB,IAAIA,CAAC,YAAYkB,MAAM,CAAC;AAChF;AAEA,OAAM,SAAUC,gBAAgB,CAACnB,CAAU;EACzC,OAAOA,CAAC,YAAYoB,WAAW,IAAIpB,CAAC,YAAYqB,iBAAiB;AACnE;AAEA,OAAM,SAAUC,aAAa,CAACtB,CAAU;EACtC,OAAOA,CAAC,YAAYoB,WAAW;AACjC;AAEA,OAAM,SAAUG,UAAU,CAACvB,CAAU;EACnC,OAAOA,CAAC,YAAYwB,QAAQ;AAC9B;AAEA,SAASP,MAAM,CAAChD,KAAa;EAC3B,OAAO2B,MAAM,CAAC6B,SAAS,CAACC,QAAQ,CAACC,IAAI,CAAC1D,KAAK,CAAC;AAC9C","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":"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,IAAIc,MAAM,IAAId,KAAK;AAC3C;AAEA,OAAM,SAAUe,UAAU,CAACf,KAAc;EACvC,OAAO,OAAOA,KAAK,KAAK,UAAU;AACpC;AAEA,OAAM,SAAUgB,SAAS,CAAChB,KAAc;EACtC,OAAO,OAAOA,KAAK,KAAK,SAAS;AACnC;AAEA,OAAM,SAAUiB,QAAQ,CAACjB,KAAc;EACrC,OAAO,OAAOA,KAAK,KAAK,QAAQ;AAClC;AAEA,OAAM,SAAUkB,QAAQ,CAAClB,KAAc;EACrC,OAAO,OAAOA,KAAK,KAAK,QAAQ;AAClC;AAEA,OAAM,SAAUmB,QAAQ,CAACnB,KAAc;EACrC,OAAO,OAAOA,KAAK,KAAK,QAAQ;AAClC;AAEA,OAAM,SAAUoB,MAAM,CAACC,CAAU;EAC/B,OAAO,OAAOA,CAAC,KAAK,QAAQ,IAAIC,MAAM,CAACC,SAAS,CAACF,CAAC,CAAC,IAAIA,CAAC,IAAI,CAAC,IAAIA,CAAC,IAAI,GAAG;AAC3E;AAEA,OAAM,SAAUG,QAAQ,CAACxB,KAAc;EACrC,OAAO,OAAOA,KAAK,KAAK,QAAQ;AAClC;AAEA,OAAM,SAAUyB,OAAO,CAACzB,KAAc;EACpC,OAAOQ,QAAQ,CAACR,KAAK,CAAC,IAAIA,KAAK,CAAC0B,WAAW,KAAKC,MAAM;AACxD;AAEA,OAAM,SAAUC,YAAY,CAA8BC,IAAO;EAC/D,OAAQ7B,KAAK,IAAiBA,KAAK,YAAY6B,IAAI;AACrD;AAEA,OAAM,SAAUC,KAAK,CAACC,CAAU;EAC9B,OAAOA,CAAC,YAAYC,GAAG;AACzB;AAEA,OAAM,SAAUC,SAAS,CAACF,CAAU;EAClC,OAAOA,CAAC,YAAYG,OAAO;AAC7B;AAEA,OAAM,SAAUC,SAAS,CAACJ,CAAU;EAClC,OAAOA,CAAC,YAAYK,OAAO;AAC7B;AAEA,OAAM,SAAUC,KAAK,CAACN,CAAU;EAC9B,OAAOA,CAAC,YAAYO,GAAG;AACzB;AAEA,OAAM,SAAUC,SAAS,CAACR,CAAU;EAClC,OAAOA,CAAC,YAAYS,OAAO;AAC7B;AAEA,OAAM,SAAUC,MAAM,CAACV,CAAU;EAC/B,OAAOA,CAAC,YAAYW,IAAI;AAC1B;AAeA,MAAMC,qBAAqB,gBAAGhB,MAAM,CAACiB,cAAc,CAACC,UAAU,CAAC;AAE/D,OAAM,SAAUC,YAAY,CAACf,CAAU;EACrC,OAAOA,CAAC,YAAYY,qBAAqB;AAC3C;AAEA,OAAM,SAAUI,QAAQ,CAAChB,CAAU;EACjC,OAAOvB,QAAQ,CAACuB,CAAC,CAAC,KAAKiB,MAAM,CAACjB,CAAC,CAAC,KAAK,iBAAiB,IAAIA,CAAC,YAAYkB,MAAM,CAAC;AAChF;AAEA,OAAM,SAAUC,gBAAgB,CAACnB,CAAU;EACzC,OAAOA,CAAC,YAAYoB,WAAW,IAAIpB,CAAC,YAAYqB,iBAAiB;AACnE;AAEA,OAAM,SAAUC,aAAa,CAACtB,CAAU;EACtC,OAAOA,CAAC,YAAYoB,WAAW;AACjC;AAEA,OAAM,SAAUG,UAAU,CAACvB,CAAU;EACnC,OAAOA,CAAC,YAAYwB,QAAQ;AAC9B;AAEA,SAASP,MAAM,CAAChD,KAAa;EAC3B,OAAO2B,MAAM,CAAC6B,SAAS,CAACC,QAAQ,CAACC,IAAI,CAAC1D,KAAK,CAAC;AAC9C","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