@typed/fx 1.22.2 → 1.23.0

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 (112) hide show
  1. package/dist/cjs/Form.js.map +1 -1
  2. package/dist/cjs/Fx.js.map +1 -1
  3. package/dist/cjs/Idle.js.map +1 -1
  4. package/dist/cjs/Match.js.map +1 -1
  5. package/dist/cjs/Pull.js.map +1 -1
  6. package/dist/cjs/Subject.js.map +1 -1
  7. package/dist/cjs/internal/core.js.map +1 -1
  8. package/dist/cjs/internal/helpers.js.map +1 -1
  9. package/dist/cjs/internal/keyed.js +1 -1
  10. package/dist/cjs/internal/keyed.js.map +1 -1
  11. package/dist/cjs/internal/share.js.map +1 -1
  12. package/dist/cjs/internal/sync-producer.js.map +1 -1
  13. package/dist/dts/AsyncData.d.ts +33 -33
  14. package/dist/dts/AsyncData.d.ts.map +1 -1
  15. package/dist/dts/Emitter.d.ts +6 -6
  16. package/dist/dts/Emitter.d.ts.map +1 -1
  17. package/dist/dts/Form.d.ts +12 -12
  18. package/dist/dts/Form.d.ts.map +1 -1
  19. package/dist/dts/FormEntry.d.ts +9 -9
  20. package/dist/dts/FormEntry.d.ts.map +1 -1
  21. package/dist/dts/Fx.d.ts +113 -113
  22. package/dist/dts/Fx.d.ts.map +1 -1
  23. package/dist/dts/Guard.d.ts +5 -5
  24. package/dist/dts/Guard.d.ts.map +1 -1
  25. package/dist/dts/Idle.d.ts +12 -12
  26. package/dist/dts/Idle.d.ts.map +1 -1
  27. package/dist/dts/Pull.d.ts +5 -5
  28. package/dist/dts/Pull.d.ts.map +1 -1
  29. package/dist/dts/Push.d.ts +20 -20
  30. package/dist/dts/Push.d.ts.map +1 -1
  31. package/dist/dts/RefArray.d.ts +33 -33
  32. package/dist/dts/RefArray.d.ts.map +1 -1
  33. package/dist/dts/RefChunk.d.ts +27 -27
  34. package/dist/dts/RefChunk.d.ts.map +1 -1
  35. package/dist/dts/RefHashMap.d.ts +17 -17
  36. package/dist/dts/RefHashMap.d.ts.map +1 -1
  37. package/dist/dts/RefHashSet.d.ts +5 -5
  38. package/dist/dts/RefHashSet.d.ts.map +1 -1
  39. package/dist/dts/RefSubject.d.ts +53 -53
  40. package/dist/dts/RefSubject.d.ts.map +1 -1
  41. package/dist/dts/Sink.d.ts +31 -31
  42. package/dist/dts/Sink.d.ts.map +1 -1
  43. package/dist/dts/Stream.d.ts +11 -11
  44. package/dist/dts/Stream.d.ts.map +1 -1
  45. package/dist/dts/Subject.d.ts +5 -5
  46. package/dist/dts/Subject.d.ts.map +1 -1
  47. package/dist/dts/Versioned.d.ts +11 -11
  48. package/dist/dts/Versioned.d.ts.map +1 -1
  49. package/dist/dts/internal/DeferredRef.d.ts +7 -7
  50. package/dist/dts/internal/core.d.ts +51 -51
  51. package/dist/dts/internal/core.d.ts.map +1 -1
  52. package/dist/dts/internal/effect-loop-operator.d.ts +4 -4
  53. package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -1
  54. package/dist/dts/internal/effect-operator.d.ts +11 -11
  55. package/dist/dts/internal/effect-operator.d.ts.map +1 -1
  56. package/dist/dts/internal/effect-producer.d.ts +9 -9
  57. package/dist/dts/internal/effect-producer.d.ts.map +1 -1
  58. package/dist/dts/internal/helpers.d.ts +25 -25
  59. package/dist/dts/internal/helpers.d.ts.map +1 -1
  60. package/dist/dts/internal/protos.d.ts +9 -9
  61. package/dist/dts/internal/protos.d.ts.map +1 -1
  62. package/dist/dts/internal/provide.d.ts +10 -10
  63. package/dist/dts/internal/provide.d.ts.map +1 -1
  64. package/dist/dts/internal/share.d.ts +2 -2
  65. package/dist/dts/internal/share.d.ts.map +1 -1
  66. package/dist/dts/internal/sync-producer.d.ts +6 -6
  67. package/dist/dts/internal/sync-producer.d.ts.map +1 -1
  68. package/dist/esm/Form.js.map +1 -1
  69. package/dist/esm/FormEntry.js.map +1 -1
  70. package/dist/esm/Fx.js.map +1 -1
  71. package/dist/esm/Idle.js.map +1 -1
  72. package/dist/esm/Match.js.map +1 -1
  73. package/dist/esm/Pull.js.map +1 -1
  74. package/dist/esm/RefSubject.js.map +1 -1
  75. package/dist/esm/Subject.js.map +1 -1
  76. package/dist/esm/internal/core.js.map +1 -1
  77. package/dist/esm/internal/helpers.js.map +1 -1
  78. package/dist/esm/internal/keyed.js +1 -1
  79. package/dist/esm/internal/keyed.js.map +1 -1
  80. package/dist/esm/internal/share.js.map +1 -1
  81. package/dist/esm/internal/sync-producer.js.map +1 -1
  82. package/package.json +6 -6
  83. package/src/AsyncData.ts +86 -86
  84. package/src/Emitter.ts +9 -9
  85. package/src/Form.ts +39 -39
  86. package/src/FormEntry.ts +25 -25
  87. package/src/Fx.ts +122 -124
  88. package/src/Guard.ts +7 -7
  89. package/src/Idle.ts +23 -23
  90. package/src/Match.ts +3 -3
  91. package/src/Pull.ts +10 -10
  92. package/src/Push.ts +33 -33
  93. package/src/RefArray.ts +36 -36
  94. package/src/RefChunk.ts +30 -30
  95. package/src/RefHashMap.ts +24 -24
  96. package/src/RefHashSet.ts +6 -6
  97. package/src/RefSubject.ts +184 -184
  98. package/src/Sink.ts +91 -91
  99. package/src/Stream.ts +19 -19
  100. package/src/Subject.ts +21 -21
  101. package/src/Versioned.ts +23 -23
  102. package/src/internal/DeferredRef.ts +6 -6
  103. package/src/internal/core.ts +132 -132
  104. package/src/internal/effect-loop-operator.ts +4 -4
  105. package/src/internal/effect-operator.ts +13 -13
  106. package/src/internal/effect-producer.ts +14 -14
  107. package/src/internal/helpers.ts +36 -36
  108. package/src/internal/keyed.ts +3 -3
  109. package/src/internal/protos.ts +12 -12
  110. package/src/internal/provide.ts +10 -10
  111. package/src/internal/share.ts +4 -4
  112. package/src/internal/sync-producer.ts +12 -12
package/src/Sink.ts CHANGED
@@ -18,8 +18,8 @@ import { type Bounds } from "./internal/bounds.js"
18
18
  * @since 1.20.0
19
19
  */
20
20
  export interface Sink<out R, in E, in A> {
21
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown>
22
- onSuccess(value: A): Effect.Effect<R, never, unknown>
21
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R>
22
+ onSuccess(value: A): Effect.Effect<unknown, never, R>
23
23
  }
24
24
 
25
25
  /**
@@ -46,7 +46,7 @@ export namespace Sink {
46
46
  */
47
47
  export interface Tagged<I, E, A> extends Sink<I, E, A> {
48
48
  readonly tag: C.Tagged<I, Sink<never, E, A>>
49
- readonly make: <R>(sink: Sink<R, E, A>) => Layer.Layer<R, never, I>
49
+ readonly make: <R>(sink: Sink<R, E, A>) => Layer.Layer<I, never, R>
50
50
  }
51
51
  }
52
52
 
@@ -69,8 +69,8 @@ export type Success<T> = Sink.Success<T>
69
69
  * @since 1.20.0
70
70
  */
71
71
  export function make<E, R, A, R2>(
72
- onFailure: (cause: Cause.Cause<E>) => Effect.Effect<R, never, unknown>,
73
- onSuccess: (value: A) => Effect.Effect<R2, never, unknown>
72
+ onFailure: (cause: Cause.Cause<E>) => Effect.Effect<unknown, never, R>,
73
+ onSuccess: (value: A) => Effect.Effect<unknown, never, R2>
74
74
  ): Sink<R | R2, E, A> {
75
75
  return {
76
76
  onFailure,
@@ -85,7 +85,7 @@ export function make<E, R, A, R2>(
85
85
  * @category models
86
86
  */
87
87
  export interface WithEarlyExit<R, E, A> extends Sink<R, E, A> {
88
- readonly earlyExit: Effect.Effect<never, never, void>
88
+ readonly earlyExit: Effect.Effect<void>
89
89
  }
90
90
 
91
91
  /**
@@ -93,9 +93,9 @@ export interface WithEarlyExit<R, E, A> extends Sink<R, E, A> {
93
93
  */
94
94
  export function withEarlyExit<R, E, A, R2, B>(
95
95
  sink: Sink<R, E, A>,
96
- f: (sink: WithEarlyExit<R, E, A>) => Effect.Effect<R2, E, B>
97
- ): Effect.Effect<R | R2, never, void> {
98
- return Effect.asyncEffect<never, never, void, R | R2, never, void>((resume) => {
96
+ f: (sink: WithEarlyExit<R, E, A>) => Effect.Effect<B, E, R2>
97
+ ): Effect.Effect<void, never, R | R2> {
98
+ return Effect.asyncEffect<void, never, never, void, never, R | R2>((resume) => {
99
99
  const earlyExit: WithEarlyExit<R, E, A> = {
100
100
  ...sink,
101
101
  earlyExit: Effect.sync(() => resume(Effect.unit))
@@ -132,7 +132,7 @@ class MapSink<R, E, A, B> implements Sink<R, E, A> {
132
132
  this.onSuccess = this.onSuccess.bind(this)
133
133
  }
134
134
 
135
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
135
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
136
136
  return this.sink.onFailure(cause)
137
137
  }
138
138
 
@@ -157,7 +157,7 @@ class FilterSink<R, E, A> implements Sink<R, E, A> {
157
157
  this.onSuccess = this.onSuccess.bind(this)
158
158
  }
159
159
 
160
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
160
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
161
161
  return this.sink.onFailure(cause)
162
162
  }
163
163
 
@@ -183,7 +183,7 @@ class FilterMapSink<R, E, A, B> implements Sink<R, E, A> {
183
183
  this.onSuccess = this.onSuccess.bind(this)
184
184
  }
185
185
 
186
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
186
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
187
187
  return this.sink.onFailure(cause)
188
188
  }
189
189
 
@@ -198,13 +198,13 @@ class FilterMapSink<R, E, A, B> implements Sink<R, E, A> {
198
198
  * @since 1.20.0
199
199
  */
200
200
  export const mapEffect: {
201
- <B, R2, E2, A>(f: (b: B) => Effect.Effect<R2, E2, A>): <R, E>(
201
+ <B, R2, E2, A>(f: (b: B) => Effect.Effect<A, E2, R2>): <R, E>(
202
202
  sink: Sink<R, E | E2, A>
203
203
  ) => Sink<R | R2, E | E2, B>
204
- <R, E, A, R2, E2, B>(sink: Sink<R, E | E2, A>, f: (b: B) => Effect.Effect<R2, E2, A>): Sink<R | R2, E | E2, B>
204
+ <R, E, A, R2, E2, B>(sink: Sink<R, E | E2, A>, f: (b: B) => Effect.Effect<A, E2, R2>): Sink<R | R2, E | E2, B>
205
205
  } = dual(2, function mapEffect<R, E, A, R2, E2, B>(
206
206
  sink: Sink<R, E | E2, A>,
207
- f: (b: B) => Effect.Effect<R2, E2, A>
207
+ f: (b: B) => Effect.Effect<A, E2, R2>
208
208
  ): Sink<R | R2, E | E2, B> {
209
209
  return new MapEffectSink(sink, f)
210
210
  })
@@ -212,13 +212,13 @@ export const mapEffect: {
212
212
  class MapEffectSink<R, E, A, R2, E2, B> implements Sink<R | R2, E2, B> {
213
213
  constructor(
214
214
  readonly sink: Sink<R, E | E2, A>,
215
- readonly f: (b: B) => Effect.Effect<R2, E2, A>
215
+ readonly f: (b: B) => Effect.Effect<A, E2, R2>
216
216
  ) {
217
217
  this.onFailure = this.onFailure.bind(this)
218
218
  this.onSuccess = this.onSuccess.bind(this)
219
219
  }
220
220
 
221
- onFailure(cause: Cause.Cause<E2>): Effect.Effect<R | R2, never, unknown> {
221
+ onFailure(cause: Cause.Cause<E2>): Effect.Effect<unknown, never, R | R2> {
222
222
  return this.sink.onFailure(cause)
223
223
  }
224
224
 
@@ -231,17 +231,17 @@ class MapEffectSink<R, E, A, R2, E2, B> implements Sink<R | R2, E2, B> {
231
231
  * @since 1.20.0
232
232
  */
233
233
  export const filterMapEffect: {
234
- <B, R2, E2, A>(f: (b: B) => Effect.Effect<R2, E2, Option.Option<A>>): <R, E>(
234
+ <B, R2, E2, A>(f: (b: B) => Effect.Effect<Option.Option<A>, E2, R2>): <R, E>(
235
235
  sink: Sink<R, E | E2, A>
236
236
  ) => Sink<R | R2, E | E2, B>
237
237
 
238
238
  <R, E, A, R2, E2, B>(
239
239
  sink: Sink<R, E | E2, A>,
240
- f: (b: B) => Effect.Effect<R2, E2, Option.Option<A>>
240
+ f: (b: B) => Effect.Effect<Option.Option<A>, E2, R2>
241
241
  ): Sink<R | R2, E | E2, B>
242
242
  } = dual(2, function filterMapEffect<R, E, A, R2, E2, B>(
243
243
  sink: Sink<R, E | E2, A>,
244
- f: (b: B) => Effect.Effect<R2, E2, Option.Option<A>>
244
+ f: (b: B) => Effect.Effect<Option.Option<A>, E2, R2>
245
245
  ): Sink<R | R2, E | E2, B> {
246
246
  return new FilterMapEffectSink(sink, f)
247
247
  })
@@ -249,13 +249,13 @@ export const filterMapEffect: {
249
249
  class FilterMapEffectSink<R, E, A, R2, E2, B> implements Sink<R | R2, E2, B> {
250
250
  constructor(
251
251
  readonly sink: Sink<R, E | E2, A>,
252
- readonly f: (b: B) => Effect.Effect<R2, E2, Option.Option<A>>
252
+ readonly f: (b: B) => Effect.Effect<Option.Option<A>, E2, R2>
253
253
  ) {
254
254
  this.onFailure = this.onFailure.bind(this)
255
255
  this.onSuccess = this.onSuccess.bind(this)
256
256
  }
257
257
 
258
- onFailure(cause: Cause.Cause<E2>): Effect.Effect<R | R2, never, unknown> {
258
+ onFailure(cause: Cause.Cause<E2>): Effect.Effect<unknown, never, R | R2> {
259
259
  return this.sink.onFailure(cause)
260
260
  }
261
261
 
@@ -274,13 +274,13 @@ class FilterMapEffectSink<R, E, A, R2, E2, B> implements Sink<R | R2, E2, B> {
274
274
  * @since 1.20.0
275
275
  */
276
276
  export const filterEffect: {
277
- <A, R2, E2>(f: (a: A) => Effect.Effect<R2, E2, boolean>): <R, E>(
277
+ <A, R2, E2>(f: (a: A) => Effect.Effect<boolean, E2, R2>): <R, E>(
278
278
  sink: Sink<R, E | E2, A>
279
279
  ) => Sink<R | R2, E | E2, A>
280
- <R, E, A>(sink: Sink<R, E, A>, f: (a: A) => Effect.Effect<R, E, boolean>): Sink<R, E, A>
280
+ <R, E, A>(sink: Sink<R, E, A>, f: (a: A) => Effect.Effect<boolean, E, R>): Sink<R, E, A>
281
281
  } = dual(2, function filterEffect<R, E, A, R2>(
282
282
  sink: Sink<R, E, A>,
283
- f: (a: A) => Effect.Effect<R2, E, boolean>
283
+ f: (a: A) => Effect.Effect<boolean, E, R2>
284
284
  ): Sink<R | R2, E, A> {
285
285
  return new FilterEffectSink<R | R2, E, A>(sink, f)
286
286
  })
@@ -288,13 +288,13 @@ export const filterEffect: {
288
288
  class FilterEffectSink<R, E, A> implements Sink<R, E, A> {
289
289
  constructor(
290
290
  readonly sink: Sink<R, E, A>,
291
- readonly f: (a: A) => Effect.Effect<R, E, boolean>
291
+ readonly f: (a: A) => Effect.Effect<boolean, E, R>
292
292
  ) {
293
293
  this.onFailure = this.onFailure.bind(this)
294
294
  this.onSuccess = this.onSuccess.bind(this)
295
295
  }
296
296
 
297
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
297
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
298
298
  return this.sink.onFailure(cause)
299
299
  }
300
300
 
@@ -313,13 +313,13 @@ class FilterEffectSink<R, E, A> implements Sink<R, E, A> {
313
313
  * @since 1.20.0
314
314
  */
315
315
  export const tapEffect: {
316
- <A, R2, E2>(f: (a: A) => Effect.Effect<R2, E2, unknown>): <R, E>(
316
+ <A, R2, E2>(f: (a: A) => Effect.Effect<unknown, E2, R2>): <R, E>(
317
317
  sink: Sink<R, E | E2, A>
318
318
  ) => Sink<R | R2, E | E2, A>
319
- <R, E, A, R2, E2>(sink: Sink<R, E | E2, A>, f: (a: A) => Effect.Effect<R2, E2, unknown>): Sink<R | R2, E | E2, A>
319
+ <R, E, A, R2, E2>(sink: Sink<R, E | E2, A>, f: (a: A) => Effect.Effect<unknown, E2, R2>): Sink<R | R2, E | E2, A>
320
320
  } = dual(2, function tapEffect<R, E, A, R2, E2>(
321
321
  sink: Sink<R, E | E2, A>,
322
- f: (a: A) => Effect.Effect<R2, E2, unknown>
322
+ f: (a: A) => Effect.Effect<unknown, E2, R2>
323
323
  ): Sink<R | R2, E | E2, A> {
324
324
  return new TapEffectSink(sink, f)
325
325
  })
@@ -327,13 +327,13 @@ export const tapEffect: {
327
327
  class TapEffectSink<R, E, A, R2, E2> implements Sink<R | R2, E, A> {
328
328
  constructor(
329
329
  readonly sink: Sink<R, E | E2, A>,
330
- readonly f: (a: A) => Effect.Effect<R2, E2, unknown>
330
+ readonly f: (a: A) => Effect.Effect<unknown, E2, R2>
331
331
  ) {
332
332
  this.onFailure = this.onFailure.bind(this)
333
333
  this.onSuccess = this.onSuccess.bind(this)
334
334
  }
335
335
 
336
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R | R2, never, unknown> {
336
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R | R2> {
337
337
  return this.sink.onFailure(cause)
338
338
  }
339
339
 
@@ -371,7 +371,7 @@ class LoopSink<R, E, A, B, C> implements Sink<R, E, A> {
371
371
  this.onSuccess = this.onSuccess.bind(this)
372
372
  }
373
373
 
374
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
374
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
375
375
  return this.sink.onFailure(cause)
376
376
  }
377
377
 
@@ -412,7 +412,7 @@ class LoopCauseSink<R, E, A, B, C> implements Sink<R, E, A> {
412
412
  this.onSuccess = this.onSuccess.bind(this)
413
413
  }
414
414
 
415
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
415
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
416
416
  const [c, acc] = this.f(this.seed, cause)
417
417
  this.seed = acc
418
418
  return this.sink.onFailure(c)
@@ -449,7 +449,7 @@ class FilterMapLoopSink<R, E, A, B, C> implements Sink<R, E, A> {
449
449
  this.onSuccess = this.onSuccess.bind(this)
450
450
  }
451
451
 
452
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
452
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
453
453
  return this.sink.onFailure(cause)
454
454
  }
455
455
 
@@ -491,7 +491,7 @@ class FilterMapLoopCauseSink<R, E, A, B, C> implements Sink<R, E, A> {
491
491
  this.onSuccess = this.onSuccess.bind(this)
492
492
  }
493
493
 
494
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
494
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
495
495
  const [option, acc] = this.f(this.seed, cause)
496
496
  this.seed = acc
497
497
  if (Option.isSome(option)) return this.sink.onFailure(option.value)
@@ -507,18 +507,18 @@ class FilterMapLoopCauseSink<R, E, A, B, C> implements Sink<R, E, A> {
507
507
  * @since 1.20.0
508
508
  */
509
509
  export const loopEffect: {
510
- <B, A, R2, E2, C>(seed: B, f: (acc: B, a: A) => Effect.Effect<R2, E2, readonly [C, B]>): <R, E>(
510
+ <B, A, R2, E2, C>(seed: B, f: (acc: B, a: A) => Effect.Effect<readonly [C, B], E2, R2>): <R, E>(
511
511
  sink: Sink<R, E, C>
512
512
  ) => Sink<R | R2, E | E2, A>
513
513
  <R, E, A, B, C>(
514
514
  sink: Sink<R, E, C>,
515
515
  seed: B,
516
- f: (acc: B, a: A) => Effect.Effect<R, E, readonly [C, B]>
516
+ f: (acc: B, a: A) => Effect.Effect<readonly [C, B], E, R>
517
517
  ): Sink<R, E, A>
518
518
  } = dual(3, function loopEffect<R, E, A, B, C>(
519
519
  sink: Sink<R, E, C>,
520
520
  seed: B,
521
- f: (acc: B, a: A) => Effect.Effect<R, E, readonly [C, B]>
521
+ f: (acc: B, a: A) => Effect.Effect<readonly [C, B], E, R>
522
522
  ): Sink<R, E, A> {
523
523
  return new LoopEffectSink(sink, seed, f)
524
524
  })
@@ -527,13 +527,13 @@ class LoopEffectSink<R, E, A, B, C> implements Sink<R, E, A> {
527
527
  constructor(
528
528
  readonly sink: Sink<R, E, C>,
529
529
  private seed: B,
530
- readonly f: (acc: B, a: A) => Effect.Effect<R, E, readonly [C, B]>
530
+ readonly f: (acc: B, a: A) => Effect.Effect<readonly [C, B], E, R>
531
531
  ) {
532
532
  this.onFailure = this.onFailure.bind(this)
533
533
  this.onSuccess = this.onSuccess.bind(this)
534
534
  }
535
535
 
536
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
536
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
537
537
  return this.sink.onFailure(cause)
538
538
  }
539
539
 
@@ -552,18 +552,18 @@ class LoopEffectSink<R, E, A, B, C> implements Sink<R, E, A> {
552
552
  * @since 1.20.0
553
553
  */
554
554
  export const filterMapLoopEffect: {
555
- <B, A, R2, E2, C>(seed: B, f: (acc: B, a: A) => Effect.Effect<R2, E2, readonly [Option.Option<C>, B]>): <R, E>(
555
+ <B, A, R2, E2, C>(seed: B, f: (acc: B, a: A) => Effect.Effect<readonly [Option.Option<C>, B], E2, R2>): <R, E>(
556
556
  sink: Sink<R, E, C>
557
557
  ) => Sink<R | R2, E | E2, A>
558
558
  <R, E, A, B, R2, C>(
559
559
  sink: Sink<R, E, C>,
560
560
  seed: B,
561
- f: (acc: B, a: A) => Effect.Effect<R2, E, readonly [Option.Option<C>, B]>
561
+ f: (acc: B, a: A) => Effect.Effect<readonly [Option.Option<C>, B], E, R2>
562
562
  ): Sink<R | R2, E, A>
563
563
  } = dual(3, function filterMapLoopEffect<R, E, A, B, R2, C>(
564
564
  sink: Sink<R, E, C>,
565
565
  seed: B,
566
- f: (acc: B, a: A) => Effect.Effect<R2, E, readonly [Option.Option<C>, B]>
566
+ f: (acc: B, a: A) => Effect.Effect<readonly [Option.Option<C>, B], E, R2>
567
567
  ): Sink<R | R2, E, A> {
568
568
  return new FilterMapLoopEffectSink(sink, seed, f)
569
569
  })
@@ -572,13 +572,13 @@ class FilterMapLoopEffectSink<R, E, A, B, R2, C> implements Sink<R | R2, E, A> {
572
572
  constructor(
573
573
  readonly sink: Sink<R, E, C>,
574
574
  private seed: B,
575
- readonly f: (acc: B, a: A) => Effect.Effect<R2, E, readonly [Option.Option<C>, B]>
575
+ readonly f: (acc: B, a: A) => Effect.Effect<readonly [Option.Option<C>, B], E, R2>
576
576
  ) {
577
577
  this.onFailure = this.onFailure.bind(this)
578
578
  this.onSuccess = this.onSuccess.bind(this)
579
579
  }
580
580
 
581
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
581
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
582
582
  return this.sink.onFailure(cause)
583
583
  }
584
584
 
@@ -600,19 +600,19 @@ class FilterMapLoopEffectSink<R, E, A, B, R2, C> implements Sink<R | R2, E, A> {
600
600
  export const loopCauseEffect: {
601
601
  <B, A, R2, E2, C>(
602
602
  seed: B,
603
- f: (acc: B, a: Cause.Cause<A>) => Effect.Effect<R2, E2, readonly [Cause.Cause<C>, B]>
603
+ f: (acc: B, a: Cause.Cause<A>) => Effect.Effect<readonly [Cause.Cause<C>, B], E2, R2>
604
604
  ): <R, E>(
605
605
  sink: Sink<R, E | C, A>
606
606
  ) => Sink<R, E | C, A>
607
607
  <R, E, A, B, C>(
608
608
  sink: Sink<R, E | C, A>,
609
609
  seed: B,
610
- f: (acc: B, a: Cause.Cause<E>) => Effect.Effect<R, E, readonly [Cause.Cause<C>, B]>
610
+ f: (acc: B, a: Cause.Cause<E>) => Effect.Effect<readonly [Cause.Cause<C>, B], E, R>
611
611
  ): Sink<R, E | C, A>
612
612
  } = dual(3, function loopCauseEffect<R, E, A, B, C>(
613
613
  sink: Sink<R, E | C, A>,
614
614
  seed: B,
615
- f: (acc: B, a: Cause.Cause<E>) => Effect.Effect<R, E, readonly [Cause.Cause<C>, B]>
615
+ f: (acc: B, a: Cause.Cause<E>) => Effect.Effect<readonly [Cause.Cause<C>, B], E, R>
616
616
  ): Sink<R, E | C, A> {
617
617
  return new LoopCauseEffectSink(sink, seed, f)
618
618
  })
@@ -621,13 +621,13 @@ class LoopCauseEffectSink<R, E, A, B, C> implements Sink<R, E, A> {
621
621
  constructor(
622
622
  readonly sink: Sink<R, E | C, A>,
623
623
  private seed: B,
624
- readonly f: (acc: B, a: Cause.Cause<E>) => Effect.Effect<R, E, readonly [Cause.Cause<C>, B]>
624
+ readonly f: (acc: B, a: Cause.Cause<E>) => Effect.Effect<readonly [Cause.Cause<C>, B], E, R>
625
625
  ) {
626
626
  this.onFailure = this.onFailure.bind(this)
627
627
  this.onSuccess = this.onSuccess.bind(this)
628
628
  }
629
629
 
630
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
630
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
631
631
  return Effect.matchCauseEffect(this.f(this.seed, cause), {
632
632
  onFailure: (cause2) => this.sink.onFailure(Cause.sequential(cause, cause2)),
633
633
  onSuccess: ([c, acc]) => {
@@ -648,7 +648,7 @@ class LoopCauseEffectSink<R, E, A, B, C> implements Sink<R, E, A> {
648
648
  export function filterMapLoopCauseEffect<R, E, A, B, R2, E2, C>(
649
649
  sink: Sink<R, E2 | C, A>,
650
650
  seed: B,
651
- f: (acc: B, a: Cause.Cause<E>) => Effect.Effect<R2, E2, readonly [Option.Option<Cause.Cause<C>>, B]>
651
+ f: (acc: B, a: Cause.Cause<E>) => Effect.Effect<readonly [Option.Option<Cause.Cause<C>>, B], E2, R2>
652
652
  ): Sink<R | R2, E, A> {
653
653
  return new FilterMapLoopCauseEffectSink(sink, seed, f)
654
654
  }
@@ -657,13 +657,13 @@ class FilterMapLoopCauseEffectSink<R, E, A, B, R2, E2, C> implements Sink<R | R2
657
657
  constructor(
658
658
  readonly sink: Sink<R, E2 | C, A>,
659
659
  private seed: B,
660
- readonly f: (acc: B, a: Cause.Cause<E>) => Effect.Effect<R2, E2, readonly [Option.Option<Cause.Cause<C>>, B]>
660
+ readonly f: (acc: B, a: Cause.Cause<E>) => Effect.Effect<readonly [Option.Option<Cause.Cause<C>>, B], E2, R2>
661
661
  ) {
662
662
  this.onFailure = this.onFailure.bind(this)
663
663
  this.onSuccess = this.onSuccess.bind(this)
664
664
  }
665
665
 
666
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R | R2, never, unknown> {
666
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R | R2> {
667
667
  return Effect.matchCauseEffect(this.f(this.seed, cause), {
668
668
  onFailure: (cause2) => this.sink.onFailure(cause2),
669
669
  onSuccess: ([option, acc]) => {
@@ -683,19 +683,19 @@ class FilterMapLoopCauseEffectSink<R, E, A, B, R2, E2, C> implements Sink<R | R2
683
683
  * @since 1.20.0
684
684
  */
685
685
  export const slice: {
686
- <R, E, A, R2>(bounds: Bounds, f: (sink: Sink<R, E, A>) => Effect.Effect<R2, never, unknown>): (
686
+ <R, E, A, R2>(bounds: Bounds, f: (sink: Sink<R, E, A>) => Effect.Effect<unknown, never, R2>): (
687
687
  sink: Sink<R, E, A>
688
- ) => Effect.Effect<R | R2, never, void>
688
+ ) => Effect.Effect<void, never, R | R2>
689
689
  <R, E, A, R2>(
690
690
  sink: Sink<R, E, A>,
691
691
  bounds: Bounds,
692
- f: (sink: Sink<R, E, A>) => Effect.Effect<R2, never, unknown>
693
- ): Effect.Effect<R | R2, never, void>
692
+ f: (sink: Sink<R, E, A>) => Effect.Effect<unknown, never, R2>
693
+ ): Effect.Effect<void, never, R | R2>
694
694
  } = dual(3, function slice<R, E, A, R2>(
695
695
  sink: Sink<R, E, A>,
696
696
  bounds: Bounds,
697
- f: (sink: Sink<R, E, A>) => Effect.Effect<R2, never, unknown>
698
- ): Effect.Effect<R | R2, never, void> {
697
+ f: (sink: Sink<R, E, A>) => Effect.Effect<unknown, never, R2>
698
+ ): Effect.Effect<void, never, R | R2> {
699
699
  return withEarlyExit(sink, (s) => f(new SliceSink(s, bounds)))
700
700
  })
701
701
 
@@ -714,7 +714,7 @@ class SliceSink<R, E, A> implements Sink<R, E, A> {
714
714
  this.onSuccess = this.onSuccess.bind(this)
715
715
  }
716
716
 
717
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
717
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
718
718
  return this.sink.onFailure(cause)
719
719
  }
720
720
 
@@ -734,18 +734,18 @@ class SliceSink<R, E, A> implements Sink<R, E, A> {
734
734
  * @since 1.20.0
735
735
  */
736
736
  export const takeWhile: {
737
- <R, E, A, R2, B>(predicate: Predicate.Predicate<A>, f: (sink: Sink<R, E, A>) => Effect.Effect<R2, E, B>): (
737
+ <R, E, A, R2, B>(predicate: Predicate.Predicate<A>, f: (sink: Sink<R, E, A>) => Effect.Effect<B, E, R2>): (
738
738
  sink: Sink<R, E, A>
739
- ) => Effect.Effect<R | R2, never, void>
739
+ ) => Effect.Effect<void, never, R | R2>
740
740
  <R, E, A, R2, B>(
741
741
  sink: Sink<R, E, A>,
742
742
  predicate: Predicate.Predicate<A>,
743
- f: (sink: Sink<R, E, A>) => Effect.Effect<R2, E, B>
744
- ): Effect.Effect<R | R2, never, void>
743
+ f: (sink: Sink<R, E, A>) => Effect.Effect<B, E, R2>
744
+ ): Effect.Effect<void, never, R | R2>
745
745
  } = dual(3, function takeWhile<R, E, A, R2, B>(
746
746
  sink: Sink<R, E, A>,
747
747
  predicate: Predicate.Predicate<A>,
748
- f: (sink: Sink<R, E, A>) => Effect.Effect<R2, E, B>
748
+ f: (sink: Sink<R, E, A>) => Effect.Effect<B, E, R2>
749
749
  ) {
750
750
  return withEarlyExit(sink, (s) => f(new TakeWhileSink(s, predicate)))
751
751
  })
@@ -762,7 +762,7 @@ class TakeWhileSink<R, E, A> implements Sink<R, E, A> {
762
762
  this.onSuccess = this.onSuccess.bind(this)
763
763
  }
764
764
 
765
- onFailure(cause: Cause.Cause<E>): Effect.Effect<R, never, unknown> {
765
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
766
766
  return this.sink.onFailure(cause)
767
767
  }
768
768
 
@@ -818,20 +818,20 @@ export const dropAfter: {
818
818
  */
819
819
  export const takeWhileEffect: {
820
820
  <R, E, A, R2, E2, R3, E3, B>(
821
- predicate: (a: A) => Effect.Effect<R2, E2, boolean>,
822
- f: (sink: Sink<R | R2, E, A>) => Effect.Effect<R3, E3, B>
821
+ predicate: (a: A) => Effect.Effect<boolean, E2, R2>,
822
+ f: (sink: Sink<R | R2, E, A>) => Effect.Effect<B, E3, R3>
823
823
  ): <R, E>(
824
824
  sink: Sink<R, E, A>
825
- ) => Effect.Effect<R | R3, never, void>
825
+ ) => Effect.Effect<void, never, R | R3>
826
826
  <R, E, A, R2, E2, R3, E3, B>(
827
827
  sink: Sink<R, E | E2 | E3, A>,
828
- predicate: (a: A) => Effect.Effect<R2, E2, boolean>,
829
- f: (sink: Sink<R | R2, E, A>) => Effect.Effect<R3, E3, B>
830
- ): Effect.Effect<R | R3, never, void>
828
+ predicate: (a: A) => Effect.Effect<boolean, E2, R2>,
829
+ f: (sink: Sink<R | R2, E, A>) => Effect.Effect<B, E3, R3>
830
+ ): Effect.Effect<void, never, R | R3>
831
831
  } = dual(3, function takeWhileEffect<R, E, A, R2, E2, R3, E3, B>(
832
832
  sink: Sink<R, E | E2 | E3, A>,
833
- predicate: (a: A) => Effect.Effect<R2, E2, boolean>,
834
- f: (sink: Sink<R | R2, E, A>) => Effect.Effect<R3, E3, B>
833
+ predicate: (a: A) => Effect.Effect<boolean, E2, R2>,
834
+ f: (sink: Sink<R | R2, E, A>) => Effect.Effect<B, E3, R3>
835
835
  ) {
836
836
  return withEarlyExit(sink, (s) => f(new TakeWhileEffectSink(s, predicate)))
837
837
  })
@@ -841,14 +841,14 @@ class TakeWhileEffectSink<R, E, A, R2, E2> implements Sink<R | R2, E, A> {
841
841
 
842
842
  constructor(
843
843
  readonly sink: WithEarlyExit<R, E | E2, A>,
844
- readonly predicate: (a: A) => Effect.Effect<R2, E2, boolean>
844
+ readonly predicate: (a: A) => Effect.Effect<boolean, E2, R2>
845
845
  ) {
846
846
  this.take = true
847
847
  this.onFailure = this.onFailure.bind(this)
848
848
  this.onSuccess = this.onSuccess.bind(this)
849
849
  }
850
850
 
851
- onFailure(cause: Cause.Cause<E | E2>): Effect.Effect<R | R2, never, unknown> {
851
+ onFailure(cause: Cause.Cause<E | E2>): Effect.Effect<unknown, never, R | R2> {
852
852
  return this.sink.onFailure(cause)
853
853
  }
854
854
 
@@ -869,16 +869,16 @@ class TakeWhileEffectSink<R, E, A, R2, E2> implements Sink<R | R2, E, A> {
869
869
  * @since 1.20.0
870
870
  */
871
871
  export const dropWhileEffect: {
872
- <A, R2, E2>(predicate: (a: A) => Effect.Effect<R2, E2, boolean>): <R, E>(
872
+ <A, R2, E2>(predicate: (a: A) => Effect.Effect<boolean, E2, R2>): <R, E>(
873
873
  sink: Sink<R, E | E2, A>
874
874
  ) => Sink<R | R2, E | E2, A>
875
875
  <R, E, A, R2, E2>(
876
876
  sink: Sink<R, E | E2, A>,
877
- predicate: (a: A) => Effect.Effect<R2, E2, boolean>
877
+ predicate: (a: A) => Effect.Effect<boolean, E2, R2>
878
878
  ): Sink<R | R2, E | E2, A>
879
879
  } = dual(2, function dropWhileEffect<R, E, A, R2, E2>(
880
880
  sink: Sink<R, E | E2, A>,
881
- predicate: (a: A) => Effect.Effect<R2, E2, boolean>
881
+ predicate: (a: A) => Effect.Effect<boolean, E2, R2>
882
882
  ): Sink<R | R2, E | E2, A> {
883
883
  return filterMapLoopEffect<R, E | E2, A, boolean, R2, A>(sink, true, (drop: boolean, a: A) => {
884
884
  if (drop === false) return Effect.succeed([Option.some(a), drop as boolean] as const)
@@ -891,16 +891,16 @@ export const dropWhileEffect: {
891
891
  * @since 1.20.0
892
892
  */
893
893
  export const dropAfterEffect: {
894
- <A, R2, E2>(predicate: (a: A) => Effect.Effect<R2, E2, boolean>): <R, E>(
894
+ <A, R2, E2>(predicate: (a: A) => Effect.Effect<boolean, E2, R2>): <R, E>(
895
895
  sink: Sink<R, E | E2, A>
896
896
  ) => Sink<R | R2, E | E2, A>
897
897
  <R, E, A, R2, E2>(
898
898
  sink: Sink<R, E | E2, A>,
899
- predicate: (a: A) => Effect.Effect<R2, E2, boolean>
899
+ predicate: (a: A) => Effect.Effect<boolean, E2, R2>
900
900
  ): Sink<R | R2, E | E2, A>
901
901
  } = dual(2, function dropAfterEffect<R, E, A, R2, E2>(
902
902
  sink: Sink<R, E | E2, A>,
903
- predicate: (a: A) => Effect.Effect<R2, E2, boolean>
903
+ predicate: (a: A) => Effect.Effect<boolean, E2, R2>
904
904
  ): Sink<R | R2, E | E2, A> {
905
905
  return filterMapLoopEffect<R, E | E2, A, boolean, R2, A>(sink, false, (drop: boolean, a: A) => {
906
906
  if (drop === true) return Effect.succeed([Option.none(), drop as boolean] as const)
@@ -948,11 +948,11 @@ export const setSpan: {
948
948
  })
949
949
 
950
950
  const addEvent = <R, E, A>(
951
- effect: Effect.Effect<R, E, A>,
951
+ effect: Effect.Effect<A, E, R>,
952
952
  name: string,
953
953
  span: Tracer.Span,
954
954
  attributes: Record<string, unknown>
955
- ): Effect.Effect<R, E, A> =>
955
+ ): Effect.Effect<A, E, R> =>
956
956
  Effect.flatMap(Clock.currentTimeNanos, (time) =>
957
957
  Effect.suspend(() => {
958
958
  span.event(name, time, attributes)
@@ -973,15 +973,15 @@ export function tagged<E, A>(): {
973
973
  class TaggedImpl<I, E, A> implements Sink.Tagged<I, E, A> {
974
974
  constructor(readonly tag: C.Tagged<I, Sink<never, E, A>>) {}
975
975
 
976
- onSuccess(value: A): Effect.Effect<I, never, unknown> {
976
+ onSuccess(value: A): Effect.Effect<unknown, never, I> {
977
977
  return this.tag.withEffect((sink) => sink.onSuccess(value))
978
978
  }
979
979
 
980
- onFailure(cause: Cause.Cause<E>): Effect.Effect<I, never, unknown> {
980
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, I> {
981
981
  return this.tag.withEffect((sink) => sink.onFailure(cause))
982
982
  }
983
983
 
984
- make: <R>(sink: Sink<R, E, A>) => Layer.Layer<R, never, I> = <R>(sink: Sink<R, E, A>) =>
984
+ make: <R>(sink: Sink<R, E, A>) => Layer.Layer<I, never, R> = <R>(sink: Sink<R, E, A>) =>
985
985
  Layer.flatMap(Layer.context<R>(), (ctx) => this.tag.layer(provide(sink, ctx)))
986
986
  }
987
987
 
@@ -999,17 +999,17 @@ export const fromTag: {
999
999
  })
1000
1000
 
1001
1001
  class FromTag<I, S, R2, E2, B> implements Sink<I | R2, E2, B> {
1002
- readonly get: Effect.Effect<I, never, Sink<R2, E2, B>>
1002
+ readonly get: Effect.Effect<Sink<R2, E2, B>, never, I>
1003
1003
 
1004
1004
  constructor(readonly tag: C.Tag<I, S>, readonly f: (s: S) => Sink<R2, E2, B>) {
1005
1005
  this.get = Effect.map(tag, f)
1006
1006
  }
1007
1007
 
1008
- onSuccess(value: B): Effect.Effect<I | R2, never, unknown> {
1008
+ onSuccess(value: B): Effect.Effect<unknown, never, I | R2> {
1009
1009
  return Effect.flatMap(this.get, (sink) => sink.onSuccess(value))
1010
1010
  }
1011
1011
 
1012
- onFailure(cause: Cause.Cause<E2>): Effect.Effect<I | R2, never, unknown> {
1012
+ onFailure(cause: Cause.Cause<E2>): Effect.Effect<unknown, never, I | R2> {
1013
1013
  return Effect.flatMap(this.get, (sink) => sink.onFailure(cause))
1014
1014
  }
1015
1015
  }