@fncts/base 0.0.22 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) 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/api.cjs +15 -1
  6. package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
  7. package/_cjs/collection/immutable/HashSet/definition.cjs +9 -6
  8. package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
  9. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +7 -4
  10. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
  11. package/_cjs/collection/immutable/RoseTree/definition.cjs +7 -4
  12. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
  13. package/_cjs/collection/immutable/SortedMap/definition.cjs +3 -2
  14. package/_cjs/collection/immutable/SortedMap/definition.cjs.map +1 -1
  15. package/_cjs/collection/immutable/Vector/definition.cjs +7 -4
  16. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  17. package/_cjs/control/Eval/definition.cjs +11 -5
  18. package/_cjs/control/Eval/definition.cjs.map +1 -1
  19. package/_cjs/control/Z/definition.cjs +16 -9
  20. package/_cjs/control/Z/definition.cjs.map +1 -1
  21. package/_cjs/data/CaseClass.cjs +3 -2
  22. package/_cjs/data/CaseClass.cjs.map +1 -1
  23. package/_cjs/data/Cause/api.cjs +26 -1
  24. package/_cjs/data/Cause/api.cjs.map +1 -1
  25. package/_cjs/data/Cause/definition.cjs +3 -1
  26. package/_cjs/data/Cause/definition.cjs.map +1 -1
  27. package/_cjs/data/Datum/definition.cjs +10 -9
  28. package/_cjs/data/Datum/definition.cjs.map +1 -1
  29. package/_cjs/data/DatumEither/definition.cjs.map +1 -1
  30. package/_cjs/data/DatumEither.cjs +28 -0
  31. package/_cjs/data/DatumEither.cjs.map +1 -0
  32. package/_cjs/data/DecodeError/definition.cjs +3 -1
  33. package/_cjs/data/DecodeError/definition.cjs.map +1 -1
  34. package/_cjs/data/Decoder/definition.cjs +4 -2
  35. package/_cjs/data/Decoder/definition.cjs.map +1 -1
  36. package/_cjs/data/Duration/definition.cjs +5 -4
  37. package/_cjs/data/Duration/definition.cjs.map +1 -1
  38. package/_cjs/data/Either/api.cjs +6 -6
  39. package/_cjs/data/Either/api.cjs.map +1 -1
  40. package/_cjs/data/Either/definition.cjs +7 -3
  41. package/_cjs/data/Either/definition.cjs.map +1 -1
  42. package/_cjs/data/Encoder/definition.cjs +3 -1
  43. package/_cjs/data/Encoder/definition.cjs.map +1 -1
  44. package/_cjs/data/Environment/api.cjs +5 -15
  45. package/_cjs/data/Environment/api.cjs.map +1 -1
  46. package/_cjs/data/Environment/definition.cjs +9 -10
  47. package/_cjs/data/Environment/definition.cjs.map +1 -1
  48. package/_cjs/data/EnvironmentPatch.cjs +6 -2
  49. package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
  50. package/_cjs/data/Exit/definition.cjs +12 -9
  51. package/_cjs/data/Exit/definition.cjs.map +1 -1
  52. package/_cjs/data/FiberId/definition.cjs +9 -8
  53. package/_cjs/data/FiberId/definition.cjs.map +1 -1
  54. package/_cjs/data/Guard/definition.cjs +7 -3
  55. package/_cjs/data/Guard/definition.cjs.map +1 -1
  56. package/_cjs/data/Maybe/definition.cjs +8 -4
  57. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  58. package/_cjs/data/Showable/show.cjs +1 -1
  59. package/_cjs/data/Showable/show.cjs.map +1 -1
  60. package/_cjs/data/Struct.cjs +28 -0
  61. package/_cjs/data/Struct.cjs.map +1 -0
  62. package/_cjs/data/Tag/definition.cjs +7 -4
  63. package/_cjs/data/Tag/definition.cjs.map +1 -1
  64. package/_cjs/data/These/definition.cjs +10 -6
  65. package/_cjs/data/These/definition.cjs.map +1 -1
  66. package/_cjs/data/exceptions/InterruptedException.cjs +7 -3
  67. package/_cjs/data/exceptions/InterruptedException.cjs.map +1 -1
  68. package/_cjs/util/predicates.cjs +1 -1
  69. package/_cjs/util/predicates.cjs.map +1 -1
  70. package/_mjs/collection/immutable/Conc/definition.mjs +6 -5
  71. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  72. package/_mjs/collection/immutable/HashMap/definition.mjs +6 -4
  73. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  74. package/_mjs/collection/immutable/HashSet/api.mjs +12 -0
  75. package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
  76. package/_mjs/collection/immutable/HashSet/definition.mjs +6 -4
  77. package/_mjs/collection/immutable/HashSet/definition.mjs.map +1 -1
  78. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +5 -3
  79. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
  80. package/_mjs/collection/immutable/RoseTree/definition.mjs +5 -3
  81. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -1
  82. package/_mjs/collection/immutable/SortedMap/definition.mjs +3 -2
  83. package/_mjs/collection/immutable/SortedMap/definition.mjs.map +1 -1
  84. package/_mjs/collection/immutable/Vector/definition.mjs +5 -3
  85. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  86. package/_mjs/control/Eval/definition.mjs +9 -3
  87. package/_mjs/control/Eval/definition.mjs.map +1 -1
  88. package/_mjs/control/Z/definition.mjs +11 -7
  89. package/_mjs/control/Z/definition.mjs.map +1 -1
  90. package/_mjs/data/CaseClass.mjs +3 -2
  91. package/_mjs/data/CaseClass.mjs.map +1 -1
  92. package/_mjs/data/Cause/api.mjs +22 -0
  93. package/_mjs/data/Cause/api.mjs.map +1 -1
  94. package/_mjs/data/Cause/definition.mjs +1 -0
  95. package/_mjs/data/Cause/definition.mjs.map +1 -1
  96. package/_mjs/data/Datum/definition.mjs +10 -9
  97. package/_mjs/data/Datum/definition.mjs.map +1 -1
  98. package/_mjs/data/DatumEither/definition.mjs.map +1 -1
  99. package/_mjs/data/DatumEither.mjs +4 -0
  100. package/_mjs/data/DatumEither.mjs.map +1 -0
  101. package/_mjs/data/DecodeError/definition.mjs +3 -1
  102. package/_mjs/data/DecodeError/definition.mjs.map +1 -1
  103. package/_mjs/data/Decoder/definition.mjs +3 -1
  104. package/_mjs/data/Decoder/definition.mjs.map +1 -1
  105. package/_mjs/data/Duration/definition.mjs +5 -4
  106. package/_mjs/data/Duration/definition.mjs.map +1 -1
  107. package/_mjs/data/Either/api.mjs +6 -6
  108. package/_mjs/data/Either/api.mjs.map +1 -1
  109. package/_mjs/data/Either/definition.mjs +4 -1
  110. package/_mjs/data/Either/definition.mjs.map +1 -1
  111. package/_mjs/data/Encoder/definition.mjs +3 -1
  112. package/_mjs/data/Encoder/definition.mjs.map +1 -1
  113. package/_mjs/data/Environment/api.mjs +4 -12
  114. package/_mjs/data/Environment/api.mjs.map +1 -1
  115. package/_mjs/data/Environment/definition.mjs +6 -8
  116. package/_mjs/data/Environment/definition.mjs.map +1 -1
  117. package/_mjs/data/EnvironmentPatch.mjs +4 -1
  118. package/_mjs/data/EnvironmentPatch.mjs.map +1 -1
  119. package/_mjs/data/Exit/definition.mjs +10 -8
  120. package/_mjs/data/Exit/definition.mjs.map +1 -1
  121. package/_mjs/data/FiberId/definition.mjs +9 -8
  122. package/_mjs/data/FiberId/definition.mjs.map +1 -1
  123. package/_mjs/data/Guard/definition.mjs +4 -1
  124. package/_mjs/data/Guard/definition.mjs.map +1 -1
  125. package/_mjs/data/Maybe/definition.mjs +5 -2
  126. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  127. package/_mjs/data/Showable/show.mjs +1 -1
  128. package/_mjs/data/Showable/show.mjs.map +1 -1
  129. package/_mjs/data/Struct.mjs +4 -0
  130. package/_mjs/data/Struct.mjs.map +1 -0
  131. package/_mjs/data/Tag/definition.mjs +5 -3
  132. package/_mjs/data/Tag/definition.mjs.map +1 -1
  133. package/_mjs/data/These/definition.mjs +10 -4
  134. package/_mjs/data/These/definition.mjs.map +1 -1
  135. package/_mjs/data/exceptions/InterruptedException.mjs +5 -3
  136. package/_mjs/data/exceptions/InterruptedException.mjs.map +1 -1
  137. package/_mjs/util/predicates.mjs +1 -1
  138. package/_mjs/util/predicates.mjs.map +1 -1
  139. package/_src/collection/immutable/Conc/definition.ts +3 -3
  140. package/_src/collection/immutable/HashMap/definition.ts +12 -7
  141. package/_src/collection/immutable/HashSet/api.ts +13 -0
  142. package/_src/collection/immutable/HashSet/definition.ts +11 -5
  143. package/_src/collection/immutable/ImmutableArray/definition.ts +8 -3
  144. package/_src/collection/immutable/RoseTree/definition.ts +8 -3
  145. package/_src/collection/immutable/SortedMap/definition.ts +1 -1
  146. package/_src/collection/immutable/Vector/definition.ts +12 -5
  147. package/_src/control/Eval/definition.ts +22 -10
  148. package/_src/control/Z/definition.ts +17 -14
  149. package/_src/data/CaseClass.ts +3 -2
  150. package/_src/data/Cause/api.ts +24 -0
  151. package/_src/data/Cause/definition.ts +25 -15
  152. package/_src/data/Datum/definition.ts +8 -7
  153. package/_src/data/DatumEither/definition.ts +0 -1
  154. package/_src/data/DatumEither.ts +4 -0
  155. package/_src/data/DecodeError/definition.ts +1 -1
  156. package/_src/data/Decoder/definition.ts +1 -1
  157. package/_src/data/Duration/definition.ts +2 -4
  158. package/_src/data/Either/api.ts +1 -3
  159. package/_src/data/Either/definition.ts +8 -3
  160. package/_src/data/Encoder/definition.ts +1 -1
  161. package/_src/data/Environment/api.ts +0 -11
  162. package/_src/data/Environment/definition.ts +9 -8
  163. package/_src/data/EnvironmentPatch.ts +8 -3
  164. package/_src/data/Exit/definition.ts +16 -12
  165. package/_src/data/FiberId/definition.ts +7 -9
  166. package/_src/data/Guard/definition.ts +7 -2
  167. package/_src/data/Maybe/definition.ts +11 -18
  168. package/_src/data/Showable/show.ts +1 -1
  169. package/_src/data/Struct.ts +4 -0
  170. package/_src/data/Tag/definition.ts +7 -4
  171. package/_src/data/These/definition.ts +7 -7
  172. package/_src/data/exceptions/InterruptedException.ts +2 -4
  173. package/_src/data.ts +1 -0
  174. package/_src/util/predicates.ts +2 -2
  175. package/collection/immutable/Conc/definition.d.ts +2 -2
  176. package/collection/immutable/HashMap/definition.d.ts +10 -6
  177. package/collection/immutable/HashSet/api.d.ts +5 -0
  178. package/collection/immutable/HashSet/definition.d.ts +9 -4
  179. package/collection/immutable/ImmutableArray/definition.d.ts +6 -2
  180. package/collection/immutable/RoseTree/definition.d.ts +6 -2
  181. package/collection/immutable/SortedMap/definition.d.ts +1 -1
  182. package/collection/immutable/Vector/definition.d.ts +10 -4
  183. package/control/Eval/definition.d.ts +18 -7
  184. package/control/Z/definition.d.ts +12 -8
  185. package/data/Cause/api.d.ts +12 -0
  186. package/data/Cause/definition.d.ts +23 -7
  187. package/data/Datum/definition.d.ts +4 -3
  188. package/data/DatumEither/definition.d.ts +0 -1
  189. package/data/DatumEither.d.ts +2 -0
  190. package/data/DecodeError/definition.d.ts +1 -1
  191. package/data/Decoder/definition.d.ts +1 -1
  192. package/data/Duration/definition.d.ts +1 -1
  193. package/data/Either/definition.d.ts +7 -3
  194. package/data/EitherT/api.d.ts +2 -2
  195. package/data/Encoder/definition.d.ts +1 -1
  196. package/data/Environment/api.d.ts +0 -5
  197. package/data/Environment/definition.d.ts +8 -8
  198. package/data/EnvironmentPatch.d.ts +7 -3
  199. package/data/Exit/definition.d.ts +12 -6
  200. package/data/FiberId/definition.d.ts +3 -3
  201. package/data/Guard/definition.d.ts +6 -2
  202. package/data/Maybe/definition.d.ts +13 -11
  203. package/data/Struct.d.ts +2 -0
  204. package/data/Tag/definition.d.ts +6 -2
  205. package/data/These/definition.d.ts +3 -3
  206. package/data/exceptions/InterruptedException.d.ts +1 -1
  207. package/data.d.ts +1 -0
  208. package/package.json +1 -1
  209. package/util/predicates.d.ts +1 -1
@@ -1,6 +1,8 @@
1
1
  import { HKT } from "@fncts/typelevel/HKT";
2
2
  import { Equatable } from "@fncts/base/data/Equatable";
3
3
  import { Hashable } from "@fncts/base/data/Hashable";
4
+ export declare const ImmutableArrayVariance: unique symbol;
5
+ export type ImmutableArrayVariance = typeof ImmutableArrayVariance;
4
6
  export declare const ImmutableArrayTypeId: unique symbol;
5
7
  export type ImmutableArrayTypeId = typeof ImmutableArrayTypeId;
6
8
  export interface ImmutableArrayF extends HKT {
@@ -16,8 +18,10 @@ export interface ImmutableArrayF extends HKT {
16
18
  */
17
19
  export declare class ImmutableArray<A> implements Equatable, Hashable, Iterable<A> {
18
20
  readonly _array: ReadonlyArray<A>;
19
- readonly _typeId: ImmutableArrayTypeId;
20
- readonly _A: () => A;
21
+ readonly [ImmutableArrayTypeId]: ImmutableArrayTypeId;
22
+ [ImmutableArrayVariance]: {
23
+ readonly _A: (_: never) => A;
24
+ };
21
25
  constructor(_array: ReadonlyArray<A>);
22
26
  [Symbol.equals](that: unknown): boolean;
23
27
  get [Symbol.hash](): number;
@@ -2,6 +2,8 @@ import { HKT } from "@fncts/typelevel/HKT";
2
2
  import { Hashable } from "@fncts/base/data/Hashable";
3
3
  import { Equatable } from "@fncts/base/data/Equatable";
4
4
  import { Vector } from "@fncts/base/collection/immutable/Vector";
5
+ export declare const RoseTreeVariance: unique symbol;
6
+ export type RoseTreeVariance = typeof RoseTreeVariance;
5
7
  export declare const RoseTreeTypeId: unique symbol;
6
8
  export type RoseTreeTypeId = typeof RoseTreeTypeId;
7
9
  export interface RoseTreeF extends HKT {
@@ -17,8 +19,10 @@ export interface RoseTreeF extends HKT {
17
19
  export declare class RoseTree<A> implements Hashable, Equatable {
18
20
  readonly value: A;
19
21
  readonly forest: Vector<RoseTree<A>>;
20
- readonly _typeId: RoseTreeTypeId;
21
- _A: () => A;
22
+ readonly [RoseTreeTypeId]: RoseTreeTypeId;
23
+ [RoseTreeVariance]: {
24
+ readonly _A: (_: never) => A;
25
+ };
22
26
  constructor(value: A, forest: Vector<RoseTree<A>>);
23
27
  [Symbol.equals](that: unknown): boolean;
24
28
  get [Symbol.hash](): number;
@@ -10,7 +10,7 @@ export type TypeId = typeof TypeId;
10
10
  export declare class SortedMap<K, V> implements SortedMapIterable<K, V> {
11
11
  readonly ord: Ord<K>;
12
12
  readonly root: RBNode<K, V>;
13
- readonly _typeId: TypeId;
13
+ readonly [TypeId]: TypeId;
14
14
  constructor(ord: Ord<K>, root: RBNode<K, V>);
15
15
  [Symbol.iterator](): SortedMapIterator<K, V>;
16
16
  }
@@ -2,6 +2,8 @@ import { HKT } from "@fncts/typelevel/HKT";
2
2
  import { Hashable } from "@fncts/base/data/Hashable";
3
3
  import { Equatable } from "@fncts/base/data/Equatable";
4
4
  import type { Node } from "@fncts/base/collection/immutable/Vector/internal";
5
+ export declare const VectorVariance: unique symbol;
6
+ export type VectorVariance = typeof VectorVariance;
5
7
  export declare const VectorTypeId: unique symbol;
6
8
  export type VectorTypeId = typeof VectorTypeId;
7
9
  export interface VectorF extends HKT {
@@ -29,8 +31,10 @@ export declare class Vector<A> implements Iterable<A> {
29
31
  readonly root: Node | undefined;
30
32
  /** @private */
31
33
  readonly suffix: A[];
32
- readonly _typeId: VectorTypeId;
33
- readonly _A: () => A;
34
+ readonly [VectorTypeId]: VectorTypeId;
35
+ [VectorVariance]: {
36
+ readonly _A: (_: never) => A;
37
+ };
34
38
  constructor(
35
39
  /** @private */
36
40
  bits: number,
@@ -50,8 +54,10 @@ export declare class Vector<A> implements Iterable<A> {
50
54
  * @tsplus type fncts.MutableVector
51
55
  */
52
56
  export interface MutableVector<A> {
53
- readonly _typeId: VectorTypeId;
54
- readonly _A: () => A;
57
+ readonly [VectorTypeId]: VectorTypeId;
58
+ readonly [VectorVariance]: {
59
+ readonly _A: (_: never) => A;
60
+ };
55
61
  bits: number;
56
62
  offset: number;
57
63
  length: number;
@@ -1,4 +1,6 @@
1
1
  import { HKT } from "@fncts/typelevel/HKT";
2
+ export declare const EvalVariance: unique symbol;
3
+ export type EvalVariance = typeof EvalVariance;
2
4
  export declare const EvalTypeId: unique symbol;
3
5
  export type EvalTypeId = typeof EvalTypeId;
4
6
  export interface EvalF extends HKT {
@@ -11,8 +13,10 @@ export interface EvalF extends HKT {
11
13
  * @tsplus type fncts.control.Eval
12
14
  */
13
15
  export interface Eval<A> {
14
- readonly _typeId: EvalTypeId;
15
- readonly _A: () => A;
16
+ readonly [EvalTypeId]: EvalTypeId;
17
+ readonly [EvalVariance]: {
18
+ readonly _A: (_: never) => A;
19
+ };
16
20
  }
17
21
  /**
18
22
  * @tsplus type fncts.control.EvalOps
@@ -28,13 +32,18 @@ export declare const enum EvalTag {
28
32
  export declare class Value<A> implements Eval<A> {
29
33
  readonly value: A;
30
34
  readonly _tag = EvalTag.Value;
31
- readonly _typeId: EvalTypeId;
32
- readonly _A: () => A;
35
+ readonly [EvalTypeId]: EvalTypeId;
36
+ [EvalVariance]: {
37
+ readonly _A: (_: never) => A;
38
+ };
33
39
  constructor(value: A);
34
40
  }
35
41
  export declare class Defer<A> implements Eval<A> {
36
42
  readonly make: () => Eval<A>;
37
- readonly _typeId: EvalTypeId;
43
+ readonly [EvalTypeId]: EvalTypeId;
44
+ [EvalVariance]: {
45
+ readonly _A: (_: never) => A;
46
+ };
38
47
  readonly _tag = EvalTag.Defer;
39
48
  readonly _A: () => A;
40
49
  constructor(make: () => Eval<A>);
@@ -42,9 +51,11 @@ export declare class Defer<A> implements Eval<A> {
42
51
  export declare class Chain<A, B> implements Eval<B> {
43
52
  readonly self: Eval<A>;
44
53
  readonly f: (a: A) => Eval<B>;
45
- readonly _typeId: EvalTypeId;
54
+ readonly [EvalTypeId]: EvalTypeId;
55
+ [EvalVariance]: {
56
+ readonly _A: (_: never) => B;
57
+ };
46
58
  readonly _tag = EvalTag.Chain;
47
- readonly _A: () => B;
48
59
  constructor(self: Eval<A>, f: (a: A) => Eval<B>);
49
60
  }
50
61
  type Concrete = Value<any> | Defer<any> | Chain<any, any>;
@@ -12,6 +12,8 @@ export interface ZF extends HKT {
12
12
  A: "+";
13
13
  };
14
14
  }
15
+ export declare const ZVariance: unique symbol;
16
+ export type ZVariance = typeof ZVariance;
15
17
  export declare const ZTypeId: unique symbol;
16
18
  export type ZTypeId = typeof ZTypeId;
17
19
  /**
@@ -28,13 +30,15 @@ export type ZTypeId = typeof ZTypeId;
28
30
  * @tsplus companion fncts.control.ZOps
29
31
  */
30
32
  export declare abstract class Z<W, S1, S2, R, E, A> {
31
- readonly _typeId: 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;
33
+ readonly [ZTypeId]: ZTypeId;
34
+ [ZVariance]: {
35
+ readonly _W: (_: never) => W;
36
+ readonly _S1: (_: S1) => void;
37
+ readonly _S2: (_: never) => S2;
38
+ readonly _R: (_: never) => R;
39
+ readonly _E: (_: never) => E;
40
+ readonly _A: (_: never) => A;
41
+ };
38
42
  }
39
43
  /**
40
44
  * @tsplus unify fncts.control.Z
@@ -141,7 +145,7 @@ export declare const ZErrorTypeId: unique symbol;
141
145
  export type ZErrorTypeId = typeof ZErrorTypeId;
142
146
  export declare class ZError<E> {
143
147
  readonly cause: Cause<E>;
144
- readonly _typeId: ZErrorTypeId;
148
+ readonly [ZErrorTypeId]: ZErrorTypeId;
145
149
  constructor(cause: Cause<E>);
146
150
  }
147
151
  export declare function isZError(u: unknown): u is ZError<unknown>;
@@ -194,6 +194,18 @@ export declare function isInterrupt<E>(self: Cause<E>): self is Interrupt;
194
194
  * @tsplus location "@fncts/base/data/Cause/api"
195
195
  */
196
196
  export declare function isInterrupted<E>(self: Cause<E>): boolean;
197
+ /**
198
+ * Determines if the `Cause` contains only interruptions and not any `Die` or
199
+ * `Fail` causes.
200
+ * @tsplus getter fncts.Cause isInterruptedOnly
201
+ * @tsplus location "@fncts/base/data/Cause/api"
202
+ */
203
+ export declare function isInterruptedOnly<E>(self: Cause<E>): boolean;
204
+ /**
205
+ * @tsplus getter fncts.Cause isFailure
206
+ * @tsplus location "@fncts/base/data/Cause/api"
207
+ */
208
+ export declare function isFailure<E>(self: Cause<E>): boolean;
197
209
  /**
198
210
  * A type-guard matching `Traced`
199
211
  * @tsplus getter fncts.Cause isTraced
@@ -4,6 +4,8 @@ import { FiberId } from "@fncts/base/data/FiberId/definition";
4
4
  import { Conc } from "@fncts/base/collection/immutable/Conc";
5
5
  import { List } from "@fncts/base/collection/immutable/List/definition";
6
6
  import { HashSet } from "@fncts/base/collection/immutable/HashSet/definition";
7
+ export declare const CauseVariance: unique symbol;
8
+ export type CauseVariance = typeof CauseVariance;
7
9
  export declare const CauseTypeId: unique symbol;
8
10
  export type CauseTypeId = typeof CauseTypeId;
9
11
  /**
@@ -30,8 +32,10 @@ export declare const enum CauseTag {
30
32
  * @tsplus companion fncts.Cause.EmptyOps
31
33
  */
32
34
  export declare class Empty {
33
- readonly _E: () => never;
34
35
  readonly [CauseTypeId]: CauseTypeId;
36
+ [CauseVariance]: {
37
+ readonly _E: (_: never) => never;
38
+ };
35
39
  readonly _tag = CauseTag.Empty;
36
40
  get [Symbol.hash](): number;
37
41
  [Symbol.equals](that: unknown): boolean;
@@ -44,8 +48,10 @@ export declare const _Empty: Empty;
44
48
  export declare class Fail<E> {
45
49
  readonly value: E;
46
50
  readonly trace: Trace;
47
- readonly _E: () => E;
48
51
  readonly [CauseTypeId]: CauseTypeId;
52
+ [CauseVariance]: {
53
+ readonly _E: (_: never) => E;
54
+ };
49
55
  readonly _tag = CauseTag.Fail;
50
56
  constructor(value: E, trace: Trace);
51
57
  get [Symbol.hash](): number;
@@ -58,8 +64,10 @@ export declare class Fail<E> {
58
64
  export declare class Halt {
59
65
  readonly value: unknown;
60
66
  readonly trace: Trace;
61
- readonly _E: () => never;
62
67
  readonly [CauseTypeId]: CauseTypeId;
68
+ [CauseVariance]: {
69
+ readonly _E: (_: never) => never;
70
+ };
63
71
  readonly _tag = CauseTag.Halt;
64
72
  constructor(value: unknown, trace: Trace);
65
73
  get [Symbol.hash](): number;
@@ -72,8 +80,10 @@ export declare class Halt {
72
80
  export declare class Interrupt {
73
81
  readonly id: FiberId;
74
82
  readonly trace: Trace;
75
- readonly _E: () => never;
76
83
  readonly [CauseTypeId]: CauseTypeId;
84
+ [CauseVariance]: {
85
+ readonly _E: (_: never) => never;
86
+ };
77
87
  readonly _tag = CauseTag.Interrupt;
78
88
  constructor(id: FiberId, trace: Trace);
79
89
  get [Symbol.hash](): number;
@@ -86,8 +96,10 @@ export declare class Interrupt {
86
96
  export declare class Then<E> {
87
97
  readonly left: Cause<E>;
88
98
  readonly right: Cause<E>;
89
- readonly _E: () => E;
90
99
  readonly [CauseTypeId]: CauseTypeId;
100
+ [CauseVariance]: {
101
+ readonly _E: (_: never) => E;
102
+ };
91
103
  readonly _tag = CauseTag.Then;
92
104
  constructor(left: Cause<E>, right: Cause<E>);
93
105
  get [Symbol.hash](): number;
@@ -100,8 +112,10 @@ export declare class Then<E> {
100
112
  export declare class Both<E> {
101
113
  readonly left: Cause<E>;
102
114
  readonly right: Cause<E>;
103
- readonly _E: () => E;
104
115
  readonly [CauseTypeId]: CauseTypeId;
116
+ [CauseVariance]: {
117
+ readonly _E: (_: never) => E;
118
+ };
105
119
  readonly _tag = CauseTag.Both;
106
120
  constructor(left: Cause<E>, right: Cause<E>);
107
121
  get [Symbol.hash](): number;
@@ -114,8 +128,10 @@ export declare class Both<E> {
114
128
  export declare class Stackless<E> {
115
129
  readonly cause: Cause<E>;
116
130
  readonly stackless: boolean;
117
- readonly _E: () => E;
118
131
  readonly [CauseTypeId]: CauseTypeId;
132
+ [CauseVariance]: {
133
+ readonly _E: (_: never) => E;
134
+ };
119
135
  readonly _tag = CauseTag.Stackless;
120
136
  constructor(cause: Cause<E>, stackless: boolean);
121
137
  get [Symbol.hash](): number;
@@ -31,6 +31,7 @@ export declare const Datum: DatumOps;
31
31
  */
32
32
  export declare class Initial implements Hashable, Equatable {
33
33
  readonly _tag = DatumTag.Initial;
34
+ readonly [DatumTypeId]: DatumTypeId;
34
35
  get [Symbol.hash](): number;
35
36
  [Symbol.equals](that: unknown): boolean;
36
37
  }
@@ -39,7 +40,7 @@ export declare class Initial implements Hashable, Equatable {
39
40
  * @tsplus companion fncts.Datum.PendingOps
40
41
  */
41
42
  export declare class Pending implements Hashable, Equatable {
42
- readonly _typeId: DatumTypeId;
43
+ readonly [DatumTypeId]: DatumTypeId;
43
44
  readonly _tag = DatumTag.Pending;
44
45
  get [Symbol.hash](): number;
45
46
  [Symbol.equals](that: unknown): boolean;
@@ -50,7 +51,7 @@ export declare class Pending implements Hashable, Equatable {
50
51
  */
51
52
  export declare class Refresh<A> implements Hashable, Equatable {
52
53
  readonly value: A;
53
- readonly _typeId: DatumTypeId;
54
+ readonly [DatumTypeId]: DatumTypeId;
54
55
  readonly _tag = DatumTag.Refresh;
55
56
  constructor(value: A);
56
57
  get [Symbol.hash](): number;
@@ -62,7 +63,7 @@ export declare class Refresh<A> implements Hashable, Equatable {
62
63
  */
63
64
  export declare class Replete<A> implements Hashable, Equatable {
64
65
  readonly value: A;
65
- readonly _typeId: DatumTypeId;
66
+ readonly [DatumTypeId]: DatumTypeId;
66
67
  readonly _tag = DatumTag.Replete;
67
68
  constructor(value: A);
68
69
  get [Symbol.hash](): number;
@@ -10,7 +10,6 @@ export interface DatumEitherF extends HKT {
10
10
  }
11
11
  /**
12
12
  * @tsplus type fncts.DatumEither
13
- * @tsplus no-inherit fncts.Datum
14
13
  */
15
14
  export type DatumEither<E, A> = Datum<Either<E, A>>;
16
15
  /**
@@ -0,0 +1,2 @@
1
+ export * from "./DatumEither/api.js";
2
+ export * from "./DatumEither/definition.js";
@@ -5,7 +5,7 @@ import type { Literal } from "@fncts/typelevel/Any";
5
5
  export declare const DecodeErrorTypeId: unique symbol;
6
6
  export type DecodeErrorTypeId = typeof DecodeErrorTypeId;
7
7
  export declare abstract class DecodeError {
8
- readonly _typeId: DecodeErrorTypeId;
8
+ readonly [DecodeErrorTypeId]: DecodeErrorTypeId;
9
9
  abstract render: Eval<RoseTree<string>>;
10
10
  }
11
11
  export declare class RequiredKeyError extends DecodeError {
@@ -17,7 +17,7 @@ export interface DecoderF extends HKT {
17
17
  export declare class Decoder<in out A> {
18
18
  readonly decode: (input: unknown) => These<DecodeError, A>;
19
19
  readonly label: string;
20
- readonly _typeId: DecoderTypeId;
20
+ readonly [DecoderTypeId]: DecoderTypeId;
21
21
  constructor(decode: (input: unknown) => These<DecodeError, A>, label: string);
22
22
  }
23
23
  /**
@@ -8,7 +8,7 @@ export type DurationTypeId = typeof DurationTypeId;
8
8
  */
9
9
  export declare class Duration implements Equatable, Hashable {
10
10
  readonly milliseconds: number;
11
- readonly _typeId: DurationTypeId;
11
+ readonly [DurationTypeId]: DurationTypeId;
12
12
  constructor(milliseconds: number);
13
13
  [Symbol.equals](that: unknown): boolean;
14
14
  get [Symbol.hash](): number;
@@ -3,6 +3,8 @@ export declare const enum EitherTag {
3
3
  Left = "Left",
4
4
  Right = "Right"
5
5
  }
6
+ export declare const EitherVariance: unique symbol;
7
+ export type EitherVariance = typeof EitherVariance;
6
8
  export declare const EitherTypeId: unique symbol;
7
9
  export type EitherTypeId = typeof EitherTypeId;
8
10
  export interface EitherF extends HKT {
@@ -17,9 +19,11 @@ export interface EitherF extends HKT {
17
19
  * @tsplus companion fncts.EitherOps
18
20
  */
19
21
  export declare class Either<E, A> {
20
- readonly _typeId: EitherTypeId;
21
- readonly _E: () => E;
22
- readonly _A: () => A;
22
+ readonly [EitherTypeId]: EitherTypeId;
23
+ [EitherVariance]: {
24
+ readonly _E: (_: never) => E;
25
+ readonly _A: (_: never) => A;
26
+ };
23
27
  }
24
28
  /**
25
29
  * @tsplus type fncts.Either.Left
@@ -32,7 +32,7 @@ export declare function leftF<F extends HKT, FC>(F: P.Functor<F, FC>): <K, Q, W,
32
32
  * @tsplus static fncts.EitherTOps map
33
33
  * @tsplus location "@fncts/base/data/EitherT/api"
34
34
  */
35
- export declare function map<F extends HKT, FC>(F: P.Functor<F, FC>): <A, B>(f: (a: A) => B) => <K, Q, W, X, I, S, R, FE, E>(self: import("@fncts/typelevel/HKT.js").HKT.Kind<F, FC, K, Q, W, X, I, S, R, FE, import("../Either.js").Either<E, A>>) => import("@fncts/typelevel/HKT.js").HKT.Kind<F, FC, K, Q, W, X, I, S, R, FE, import("../Either.js").Either<E, B>>;
35
+ export declare function map<F extends HKT, FC>(F: P.Functor<F, FC>): <A, B>(f: (a: A) => B) => <K, Q, W, X, I, S, R, FE, E>(self: EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, A>) => EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, B>;
36
36
  /**
37
37
  * @tsplus static fncts.EitherTOps mapLeft
38
38
  * @tsplus location "@fncts/base/data/EitherT/api"
@@ -47,7 +47,7 @@ export declare function bimap<F extends HKT, FC = HKT.None>(F: P.Functor<F, FC>)
47
47
  * @tsplus static fncts.EitherTOps flatMap
48
48
  * @tsplus location "@fncts/base/data/EitherT/api"
49
49
  */
50
- export declare function flatMap<F extends HKT, FC>(F: P.Monad<F, FC>): <K, Q, W, X, I, S, R, FE, A, K1, Q1, W1, X1, I1, S1, R1, FE1, E1, B>(f: (a: A) => import("@fncts/typelevel/HKT.js").HKT.Kind<F, FC, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "K", K, K1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "Q", Q, Q1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "W", W, W1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "X", X, X1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "I", I, I1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "S", S, S1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "R", R, R1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "E", FE, FE1>, import("../Either.js").Either<E1, B>>) => <E>(self: import("@fncts/typelevel/HKT.js").HKT.Kind<F, FC, K, Q, W, X, I, S, R, FE, import("../Either.js").Either<E, A>>) => import("@fncts/typelevel/HKT.js").HKT.Kind<F, FC, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "K", [K, K1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "Q", [Q, Q1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "W", [W, W1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "X", [X, X1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "I", [I, I1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "S", [S, S1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "R", [R, R1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "E", [FE, FE1]>, import("../Either.js").Either<E1 | E, B>>;
50
+ export declare function flatMap<F extends HKT, FC>(F: P.Monad<F, FC>): <K, Q, W, X, I, S, R, FE, A, K1, Q1, W1, X1, I1, S1, R1, FE1, E1, B>(f: (a: A) => import("@fncts/typelevel/HKT.js").HKT.Kind<F, FC, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "K", K, K1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "Q", Q, Q1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "W", W, W1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "X", X, X1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "I", I, I1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "S", S, S1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "R", R, R1>, import("@fncts/typelevel/HKT.js").HKT.Intro<F, "E", FE, FE1>, import("../Either.js").Either<E1, B>>) => <E>(self: EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, A>) => EitherT<F, FC, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "K", [K, K1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "Q", [Q, Q1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "W", [W, W1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "X", [X, X1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "I", [I, I1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "S", [S, S1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "R", [R, R1]>, import("@fncts/typelevel/HKT.js").HKT.Mix<F, "E", [FE, FE1]>, E1 | E, B>;
51
51
  /**
52
52
  * @tsplus static fncts.EitherTOps zipWith
53
53
  * @tsplus location "@fncts/base/data/EitherT/api"
@@ -8,7 +8,7 @@ export type EncoderTypeId = typeof EncoderTypeId;
8
8
  */
9
9
  export declare class Encoder<in out A> {
10
10
  readonly encode: (inp: A) => unknown;
11
- readonly _typeId: EncoderTypeId;
11
+ readonly [EncoderTypeId]: EncoderTypeId;
12
12
  constructor(encode: (inp: A) => unknown);
13
13
  }
14
14
  export interface EncoderF extends HKT {
@@ -34,11 +34,6 @@ export declare function make(): Environment<never>;
34
34
  * @tsplus location "@fncts/base/data/Environment/api"
35
35
  */
36
36
  export declare function union<R1>(that: Environment<R1>): <R>(self: import("./definition").Environment<R>) => import("./definition").Environment<R & R1>;
37
- /**
38
- * @tsplus getter fncts.Environment clean
39
- * @tsplus location "@fncts/base/data/Environment/api"
40
- */
41
- export declare function clean<R>(self: Environment<R>): Environment<R>;
42
37
  /**
43
38
  * @tsplus pipeable fncts.Environment unsafeGet
44
39
  * @tsplus location "@fncts/base/data/Environment/api"
@@ -3,12 +3,10 @@ import { Equatable } from "@fncts/base/data/Equatable";
3
3
  import { HashMap } from "@fncts/base/collection/immutable/HashMap/definition";
4
4
  import { Tag } from "@fncts/base/data/Tag/definition";
5
5
  import type { EnvironmentPatch } from "@fncts/base/data/EnvironmentPatch";
6
- /**
7
- * @tsplus static fncts.prelude.builtin.SymbolOps env
8
- * @tsplus location "@fncts/base/data/Environment/definition"
9
- */
10
- export declare const EnvSymbol: unique symbol;
11
- export type EnvSymbol = typeof EnvSymbol;
6
+ export declare const EnvironmentVariance: unique symbol;
7
+ export type EnvironmentVariance = typeof EnvironmentVariance;
8
+ export declare const EnvironmentTypeId: unique symbol;
9
+ export type EnvironmentTypeId = typeof EnvironmentTypeId;
12
10
  /**
13
11
  * @tsplus type fncts.Environment
14
12
  * @tsplus companion fncts.EnvironmentOps
@@ -16,8 +14,10 @@ export type EnvSymbol = typeof EnvSymbol;
16
14
  export declare class Environment<R> implements Hashable, Equatable {
17
15
  readonly map: HashMap<Tag<any>, unknown>;
18
16
  cache: HashMap<Tag<any>, unknown>;
19
- readonly _typeId: EnvSymbol;
20
- readonly [EnvSymbol]: (_: never) => R;
17
+ readonly [EnvironmentTypeId]: EnvironmentTypeId;
18
+ [EnvironmentVariance]: {
19
+ _R: (_: never) => R;
20
+ };
21
21
  constructor(map: HashMap<Tag<any>, unknown>, cache?: HashMap<Tag<any>, unknown>);
22
22
  get [Symbol.hash](): number;
23
23
  [Symbol.equals](that: unknown): boolean;
@@ -9,6 +9,8 @@ export declare const enum EnvironmentPatchTag {
9
9
  Combine = 3,
10
10
  Empty = 4
11
11
  }
12
+ export declare const EnvironmentPatchVariance: unique symbol;
13
+ export type EnvironmentPatchVariance = typeof EnvironmentPatchVariance;
12
14
  export declare const EnvironmentPatchTypeId: unique symbol;
13
15
  export type EnvironmentPatchTypeId = typeof EnvironmentPatchTypeId;
14
16
  /**
@@ -16,9 +18,11 @@ export type EnvironmentPatchTypeId = typeof EnvironmentPatchTypeId;
16
18
  * @tsplus companion fncts.Environment.PatchOps
17
19
  */
18
20
  export declare abstract class EnvironmentPatch<In, Out> {
19
- readonly _typeId: EnvironmentPatchTypeId;
20
- readonly _R: (_: In) => void;
21
- readonly _A: () => Out;
21
+ readonly [EnvironmentPatchTypeId]: EnvironmentPatchTypeId;
22
+ [EnvironmentPatchVariance]: {
23
+ readonly _R: (_: In) => void;
24
+ readonly _A: (_: never) => Out;
25
+ };
22
26
  }
23
27
  export declare class AddService<Env, Service> extends EnvironmentPatch<Env, Env & Has<Service>> {
24
28
  readonly service: Service;
@@ -1,6 +1,8 @@
1
1
  import { Cause } from "@fncts/base/data/Cause/definition";
2
2
  import { Hashable } from "@fncts/base/data/Hashable";
3
3
  import * as P from "../../typeclass.js";
4
+ export declare const ExitVariance: unique symbol;
5
+ export type ExitVariance = typeof ExitVariance;
4
6
  export declare const ExitTypeId: unique symbol;
5
7
  export type ExitTypeId = typeof ExitTypeId;
6
8
  /**
@@ -23,9 +25,11 @@ export declare const enum ExitTag {
23
25
  */
24
26
  export declare class Failure<E> {
25
27
  readonly cause: Cause<E>;
26
- readonly _E: () => E;
27
- readonly _A: () => never;
28
- readonly _typeId: ExitTypeId;
28
+ readonly [ExitTypeId]: ExitTypeId;
29
+ [ExitVariance]: {
30
+ readonly _E: (_: never) => E;
31
+ readonly _A: (_: never) => never;
32
+ };
29
33
  readonly _tag = ExitTag.Failure;
30
34
  constructor(cause: Cause<E>);
31
35
  get [Symbol.hash](): number;
@@ -37,9 +41,11 @@ export declare class Failure<E> {
37
41
  */
38
42
  export declare class Success<A> implements P.Hashable, P.Equatable {
39
43
  readonly value: A;
40
- readonly _E: () => never;
41
- readonly _A: () => A;
42
- readonly _typeId: ExitTypeId;
44
+ readonly [ExitTypeId]: ExitTypeId;
45
+ [ExitVariance]: {
46
+ readonly _E: (_: never) => never;
47
+ readonly _A: (_: never) => A;
48
+ };
43
49
  readonly _tag = ExitTag.Success;
44
50
  constructor(value: A);
45
51
  get [Symbol.hash](): number;
@@ -4,7 +4,7 @@ import { HashSet } from "@fncts/base/collection/immutable/HashSet/definition";
4
4
  export declare const FiberIdTypeId: unique symbol;
5
5
  export type FiberIdTypeId = typeof FiberIdTypeId;
6
6
  export declare class None implements Hashable, Equatable {
7
- readonly _typeId: FiberIdTypeId;
7
+ readonly [FiberIdTypeId]: FiberIdTypeId;
8
8
  readonly _tag = "None";
9
9
  [Symbol.equals](that: unknown): boolean;
10
10
  get [Symbol.hash](): number;
@@ -13,7 +13,7 @@ export declare class Runtime implements Hashable, Equatable {
13
13
  readonly id: number;
14
14
  readonly startTime: number;
15
15
  readonly location?: string | undefined;
16
- readonly _typeId: FiberIdTypeId;
16
+ readonly [FiberIdTypeId]: FiberIdTypeId;
17
17
  readonly _tag = "Runtime";
18
18
  constructor(id: number, startTime: number, location?: string | undefined);
19
19
  get [Symbol.hash](): number;
@@ -21,7 +21,7 @@ export declare class Runtime implements Hashable, Equatable {
21
21
  }
22
22
  export declare class Composite implements Hashable, Equatable {
23
23
  readonly fiberIds: HashSet<Runtime>;
24
- readonly _typeId: FiberIdTypeId;
24
+ readonly [FiberIdTypeId]: FiberIdTypeId;
25
25
  readonly _tag = "Composite";
26
26
  constructor(fiberIds: HashSet<Runtime>);
27
27
  [Symbol.equals](that: unknown): boolean;
@@ -3,6 +3,8 @@ import { Refinement } from "@fncts/base/data/Refinement/definition";
3
3
  export interface GuardF extends HKT {
4
4
  readonly type: Guard<this["A"]>;
5
5
  }
6
+ export declare const GuardVariance: unique symbol;
7
+ export type GuardVariance = typeof GuardVariance;
6
8
  export declare const GuardTypeId: unique symbol;
7
9
  export type GuardTypeId = typeof GuardTypeId;
8
10
  /**
@@ -11,8 +13,10 @@ export type GuardTypeId = typeof GuardTypeId;
11
13
  */
12
14
  export declare class Guard<A> {
13
15
  readonly is: Refinement<unknown, A>;
14
- readonly _typeId: GuardTypeId;
15
- _A: () => A;
16
+ readonly [GuardTypeId]: GuardTypeId;
17
+ [GuardVariance]: {
18
+ readonly _A: (_: never) => A;
19
+ };
16
20
  constructor(is: Refinement<unknown, A>);
17
21
  }
18
22
  /**
@@ -5,8 +5,10 @@ export declare const enum MaybeTag {
5
5
  Just = "Just",
6
6
  Nothing = "Nothing"
7
7
  }
8
+ export declare const MaybeVariance: unique symbol;
9
+ export type MaybeVariance = typeof MaybeVariance;
8
10
  export declare const MaybeTypeId: unique symbol;
9
- export type MaybeTypdId = typeof MaybeTypeId;
11
+ export type MaybeTypeId = typeof MaybeTypeId;
10
12
  export interface MaybeF extends HKT {
11
13
  type: Maybe<this["A"]>;
12
14
  variance: {
@@ -17,9 +19,11 @@ export interface MaybeF extends HKT {
17
19
  * @tsplus type fncts.Maybe
18
20
  * @tsplus companion fncts.MaybeOps
19
21
  */
20
- export declare class Maybe<A> {
21
- _A: () => A;
22
- readonly _typeId: MaybeTypdId;
22
+ export declare abstract class Maybe<A> {
23
+ [MaybeVariance]: {
24
+ readonly _A: (_: never) => A;
25
+ };
26
+ readonly [MaybeTypeId]: MaybeTypeId;
23
27
  }
24
28
  /**
25
29
  * @tsplus type fncts.Just
@@ -44,13 +48,11 @@ export declare class Nothing extends Maybe<never> {
44
48
  /**
45
49
  * @tsplus unify fncts.Maybe
46
50
  */
47
- export declare function unifyMaybe<X extends Maybe<any>>(self: X): Maybe<[
48
- X
49
- ] extends [
50
- {
51
- _A: () => infer A;
52
- }
53
- ] ? A : never>;
51
+ export declare function unifyMaybe<X extends Maybe<any>>(self: X): Maybe<[X] extends [{
52
+ [MaybeVariance]: {
53
+ _A: (_: never) => infer A;
54
+ };
55
+ }] ? A : never>;
54
56
  /**
55
57
  * @tsplus static fncts.MaybeOps isMaybe
56
58
  * @tsplus location "@fncts/base/data/Maybe/definition"
@@ -0,0 +1,2 @@
1
+ export * from "./Struct/api.js";
2
+ export * from "./Struct/definition.js";