@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/Guard.ts CHANGED
@@ -10,7 +10,7 @@ import * as Option from "effect/Option"
10
10
  /**
11
11
  * @since 1.18.0
12
12
  */
13
- export type Guard<in I, out R, out E, out O> = (input: I) => Effect.Effect<R, E, Option.Option<O>>
13
+ export type Guard<in I, out R, out E, out O> = (input: I) => Effect.Effect<Option.Option<O>, E, R>
14
14
 
15
15
  /**
16
16
  * @since 1.18.0
@@ -59,12 +59,12 @@ export const compose: {
59
59
  */
60
60
  export const mapEffect: {
61
61
  <O, R2, E2, B>(
62
- f: (o: O) => Effect.Effect<R2, E2, B>
62
+ f: (o: O) => Effect.Effect<B, E2, R2>
63
63
  ): <I, R, E>(guard: Guard<I, R, E, O>) => Guard<I, R | R2, E | E2, B>
64
- <I, R, E, O, R2, E2, B>(guard: Guard<I, R, E, O>, f: (o: O) => Effect.Effect<R2, E2, B>): Guard<I, R | R2, E | E2, B>
64
+ <I, R, E, O, R2, E2, B>(guard: Guard<I, R, E, O>, f: (o: O) => Effect.Effect<B, E2, R2>): Guard<I, R | R2, E | E2, B>
65
65
  } = dual(2, function mapEffect<I, R, E, O, R2, E2, B>(
66
66
  guard: Guard<I, R, E, O>,
67
- f: (o: O) => Effect.Effect<R2, E2, B>
67
+ f: (o: O) => Effect.Effect<B, E2, R2>
68
68
  ): Guard<I, R | R2, E | E2, B> {
69
69
  return compose(guard, (o) => Effect.asSome(f(o)))
70
70
  })
@@ -87,12 +87,12 @@ export const map: {
87
87
  */
88
88
  export const tap: {
89
89
  <O, R2, E2, B>(
90
- f: (o: O) => Effect.Effect<R2, E2, B>
90
+ f: (o: O) => Effect.Effect<B, E2, R2>
91
91
  ): <I, R, E>(guard: Guard<I, R, E, O>) => Guard<I, R | R2, E | E2, O>
92
- <I, R, E, O, R2, E2, B>(guard: Guard<I, R, E, O>, f: (o: O) => Effect.Effect<R2, E2, B>): Guard<I, R | R2, E | E2, O>
92
+ <I, R, E, O, R2, E2, B>(guard: Guard<I, R, E, O>, f: (o: O) => Effect.Effect<B, E2, R2>): Guard<I, R | R2, E | E2, O>
93
93
  } = dual(2, function tap<I, R, E, O, R2, E2, B>(
94
94
  guard: Guard<I, R, E, O>,
95
- f: (o: O) => Effect.Effect<R2, E2, B>
95
+ f: (o: O) => Effect.Effect<B, E2, R2>
96
96
  ): Guard<I, R | R2, E | E2, O> {
97
97
  return compose(guard, (o) => Effect.as(f(o), Option.some(o)))
98
98
  })
package/src/Idle.ts CHANGED
@@ -112,7 +112,7 @@ export const defaultIdleScheduler: IdleScheduler = globalValue(
112
112
  * @since 1.18.0
113
113
  * @category combinators
114
114
  */
115
- export const withIdleScheduler: <R, E, B>(self: Effect.Effect<R, E, B>) => Effect.Effect<R, E, B> = Effect
115
+ export const withIdleScheduler: <R, E, B>(self: Effect.Effect<B, E, R>) => Effect.Effect<B, E, R> = Effect
116
116
  .withScheduler(defaultIdleScheduler)
117
117
 
118
118
  /**
@@ -120,14 +120,14 @@ export const withIdleScheduler: <R, E, B>(self: Effect.Effect<R, E, B>) => Effec
120
120
  * @since 1.18.0
121
121
  * @category layers
122
122
  */
123
- export const setIdleScheduler: Layer.Layer<never, never, never> = Layer.setScheduler(defaultIdleScheduler)
123
+ export const setIdleScheduler: Layer.Layer<never> = Layer.setScheduler(defaultIdleScheduler)
124
124
 
125
125
  /**
126
126
  * Request to run some work with requestIdleCallback returning an IdleDeadline
127
127
  * @since 1.18.0
128
128
  * @category scoped
129
129
  */
130
- export const whenIdle = (options?: IdleRequestOptions): Effect.Effect<Scope.Scope, never, IdleDeadline> =>
130
+ export const whenIdle = (options?: IdleRequestOptions): Effect.Effect<IdleDeadline, never, Scope.Scope> =>
131
131
  Effect.asyncEffect((resume) => {
132
132
  const id = requestIdleCallback((deadline) => resume(Effect.succeed(deadline)), options)
133
133
 
@@ -148,8 +148,8 @@ export function shouldContinue(deadline: IdleDeadline): boolean {
148
148
  * @category params
149
149
  */
150
150
  export interface WhileIdleRequestOptions<R, E, R2, E2> extends IdleRequestOptions {
151
- readonly while: Effect.Effect<R, E, boolean>
152
- readonly body: Effect.Effect<R2, E2, unknown>
151
+ readonly while: Effect.Effect<boolean, E, R>
152
+ readonly body: Effect.Effect<unknown, E2, R2>
153
153
  }
154
154
 
155
155
  /**
@@ -158,7 +158,7 @@ export interface WhileIdleRequestOptions<R, E, R2, E2> extends IdleRequestOption
158
158
  */
159
159
  export const whileIdle = <R, E, R2, E2>(
160
160
  options: WhileIdleRequestOptions<R, E, R2, E2>
161
- ): Effect.Effect<Scope.Scope | R | R2, E | E2, void> =>
161
+ ): Effect.Effect<void, E | E2, Scope.Scope | R | R2> =>
162
162
  Effect.gen(function*(_) {
163
163
  while (yield* _(options.while)) {
164
164
  const deadline = yield* _(whenIdle(options))
@@ -175,27 +175,27 @@ export const whileIdle = <R, E, R2, E2>(
175
175
  */
176
176
  export function dequeueWhileIdle<A, R2, E2, B>(
177
177
  dequeue: Queue.Dequeue<A>,
178
- f: (a: A) => Effect.Effect<R2, E2, B>,
178
+ f: (a: A) => Effect.Effect<B, E2, R2>,
179
179
  options?: IdleRequestOptions
180
- ): Effect.Effect<R2 | Scope.Scope, E2, void>
180
+ ): Effect.Effect<void, E2, R2 | Scope.Scope>
181
181
 
182
182
  export function dequeueWhileIdle<I, A, R2, E2, B>(
183
183
  dequeue: Context.Dequeue<I, A>,
184
- f: (a: A) => Effect.Effect<R2, E2, B>,
184
+ f: (a: A) => Effect.Effect<B, E2, R2>,
185
185
  options?: IdleRequestOptions
186
- ): Effect.Effect<I | R2 | Scope.Scope, E2, void>
186
+ ): Effect.Effect<void, E2, I | R2 | Scope.Scope>
187
187
 
188
188
  export function dequeueWhileIdle<I = never, A = unknown, R2 = never, E2 = never, B = unknown>(
189
189
  dequeue: Context.Dequeue<I, A> | Queue.Dequeue<A>,
190
- f: (a: A) => Effect.Effect<R2, E2, B>,
190
+ f: (a: A) => Effect.Effect<B, E2, R2>,
191
191
  options?: IdleRequestOptions
192
- ): Effect.Effect<I | R2 | Scope.Scope, E2, void>
192
+ ): Effect.Effect<void, E2, I | R2 | Scope.Scope>
193
193
 
194
194
  export function dequeueWhileIdle<I, A, R2, E2, B>(
195
195
  dequeue: Context.Dequeue<I, A> | Queue.Dequeue<A>,
196
- f: (a: A) => Effect.Effect<R2, E2, B>,
196
+ f: (a: A) => Effect.Effect<B, E2, R2>,
197
197
  options?: IdleRequestOptions
198
- ): Effect.Effect<I | R2 | Scope.Scope, E2, void> {
198
+ ): Effect.Effect<void, E2, I | R2 | Scope.Scope> {
199
199
  return whileIdle({
200
200
  while: dequeueIsActive(dequeue),
201
201
  body: Effect.flatMap(dequeue.take, f),
@@ -209,10 +209,10 @@ export function dequeueWhileIdle<I, A, R2, E2, B>(
209
209
  export interface IdleQueue<I> {
210
210
  readonly add: <R>(
211
211
  part: I,
212
- task: Effect.Effect<R, never, unknown>
213
- ) => Effect.Effect<R | Scope.Scope, never, void>
212
+ task: Effect.Effect<unknown, never, R>
213
+ ) => Effect.Effect<void, never, R | Scope.Scope>
214
214
 
215
- readonly interrupt: Effect.Effect<never, never, void>
215
+ readonly interrupt: Effect.Effect<void>
216
216
  }
217
217
 
218
218
  /**
@@ -220,20 +220,20 @@ export interface IdleQueue<I> {
220
220
  */
221
221
  export const makeIdleQueue = <I>(
222
222
  options?: IdleRequestOptions
223
- ): Effect.Effect<Scope.Scope, never, IdleQueue<I>> =>
223
+ ): Effect.Effect<IdleQueue<I>, never, Scope.Scope> =>
224
224
  withScope((scope) => Effect.sync(() => new IdleQueueImpl<I>(scope, options)), ExecutionStrategy.sequential)
225
225
 
226
226
  class IdleQueueImpl<I> implements IdleQueue<I> {
227
- queue = new Map<I, Effect.Effect<never, never, unknown>>()
227
+ queue = new Map<I, Effect.Effect<unknown>>()
228
228
  scheduled = false
229
229
 
230
- readonly interrupt: Effect.Effect<never, never, void>
231
- readonly scheduleNextRun: Effect.Effect<never, never, void>
230
+ readonly interrupt: Effect.Effect<void>
231
+ readonly scheduleNextRun: Effect.Effect<void>
232
232
 
233
233
  constructor(readonly scope: Scope.CloseableScope, readonly options?: IdleRequestOptions) {
234
234
  this.interrupt = Effect.fiberIdWith((id) => Scope.close(scope, Exit.interrupt(id)))
235
235
 
236
- const run: Effect.Effect<Scope.Scope, never, void> = Effect.flatMap(
236
+ const run: Effect.Effect<void, never, Scope.Scope> = Effect.flatMap(
237
237
  whenIdle(this.options),
238
238
  (deadline) =>
239
239
  Effect.gen(this, function*(_) {
@@ -274,7 +274,7 @@ class IdleQueueImpl<I> implements IdleQueue<I> {
274
274
  )
275
275
  }
276
276
 
277
- add = <R>(part: I, task: Effect.Effect<R, never, unknown>) =>
277
+ add = <R>(part: I, task: Effect.Effect<unknown, never, R>) =>
278
278
  Effect.contextWithEffect((ctx: Context.Context<R>) => {
279
279
  const provided = Effect.provide(task, ctx)
280
280
  this.queue.set(part, provided)
package/src/Match.ts CHANGED
@@ -116,7 +116,7 @@ const variance: Matcher.Variance<any, any, any, any> = {
116
116
 
117
117
  class When<R, E, I, A, O> {
118
118
  constructor(
119
- readonly guard: (input: I) => Effect.Effect<R, E, Option.Option<A>>,
119
+ readonly guard: (input: I) => Effect.Effect<Option.Option<A>, E, R>,
120
120
  readonly onMatch: (value: RefSubject.RefSubject<never, never, A>) => Fx.Fx<R, E, O>
121
121
  ) {}
122
122
  }
@@ -125,8 +125,8 @@ class Matched<R, E, I, A, O> {
125
125
  constructor(
126
126
  readonly when: When<R, E, I, A, O>,
127
127
  readonly ref: RefSubject.RefSubject<never, never, A>,
128
- readonly fiber: Fiber.Fiber<never, unknown>,
129
- readonly interrupt: Effect.Effect<never, never, void>
128
+ readonly fiber: Fiber.Fiber<unknown>,
129
+ readonly interrupt: Effect.Effect<void>
130
130
  ) {}
131
131
  }
132
132
 
package/src/Pull.ts CHANGED
@@ -19,14 +19,14 @@ import type { Sink } from "./Sink.js"
19
19
  * An Effect which can be used to pull values of a Stream.
20
20
  * @since 1.18.0
21
21
  */
22
- export interface Pull<out R, out E, out A> extends Effect.Effect<R, Option.Option<E>, Chunk.Chunk<A>> {}
22
+ export interface Pull<out R, out E, out A> extends Effect.Effect<Chunk.Chunk<A>, Option.Option<E>, R> {}
23
23
 
24
24
  function schedulePull<R, E, A, R2, R3>(
25
25
  pull: Pull<R, E, A>,
26
- f: (effect: Effect.Effect<R | R3, never, unknown>) => Effect.Effect<R2, never, unknown>,
26
+ f: (effect: Effect.Effect<unknown, never, R | R3>) => Effect.Effect<unknown, never, R2>,
27
27
  sink: Sink<R3, E, A>
28
- ): Effect.Effect<R2, never, void> {
29
- return Effect.asyncEffect((resume) =>
28
+ ): Effect.Effect<void, never, R2> {
29
+ return Effect.asyncEffect<void, never, never, void, never, R2>((resume) =>
30
30
  pull.pipe(
31
31
  Effect.matchCauseEffect({
32
32
  onFailure: (cause: Cause.Cause<Option.Option<E>>) =>
@@ -56,18 +56,18 @@ export const schedule: {
56
56
  <R2, R3, E, A>(
57
57
  schedule: Schedule.Schedule<R2, unknown, unknown>,
58
58
  sink: Sink<R3, E, A>
59
- ): <R>(pull: Pull<R, E, A>) => Effect.Effect<R | R2 | R3, never, unknown>
59
+ ): <R>(pull: Pull<R, E, A>) => Effect.Effect<unknown, never, R | R2 | R3>
60
60
 
61
61
  <R, E, A, R2, R3>(
62
62
  pull: Pull<R, E, A>,
63
63
  schedule: Schedule.Schedule<R2, unknown, unknown>,
64
64
  sink: Sink<R3, E, A>
65
- ): Effect.Effect<R | R2 | R3, never, unknown>
65
+ ): Effect.Effect<unknown, never, R | R2 | R3>
66
66
  } = dual(3, function schedule<R, E, A, R2, R3>(
67
67
  pull: Pull<R, E, A>,
68
68
  schedule: Schedule.Schedule<R2, unknown, unknown>,
69
69
  sink: Sink<R3, E, A>
70
- ): Effect.Effect<R | R2 | R3, never, void> {
70
+ ): Effect.Effect<void, never, R | R2 | R3> {
71
71
  return schedulePull(pull, Effect.schedule(schedule), sink)
72
72
  })
73
73
 
@@ -80,17 +80,17 @@ export const repeat: {
80
80
  <R2, R3, E, A>(
81
81
  schedule: Schedule.Schedule<R2, unknown, unknown>,
82
82
  sink: Sink<R3, E, A>
83
- ): <R>(pull: Pull<R, E, A>) => Effect.Effect<R | R2 | R3, never, unknown>
83
+ ): <R>(pull: Pull<R, E, A>) => Effect.Effect<unknown, never, R | R2 | R3>
84
84
 
85
85
  <R, E, A, R2, R3>(
86
86
  pull: Pull<R, E, A>,
87
87
  schedule: Schedule.Schedule<R2, unknown, unknown>,
88
88
  sink: Sink<R3, E, A>
89
- ): Effect.Effect<R | R2 | R3, never, unknown>
89
+ ): Effect.Effect<unknown, never, R | R2 | R3>
90
90
  } = dual(3, function repeat<R, E, A, R2, R3>(
91
91
  pull: Pull<R, E, A>,
92
92
  schedule: Schedule.Schedule<R2, unknown, unknown>,
93
93
  sink: Sink<R3, E, A>
94
- ): Effect.Effect<R | R2 | R3, never, void> {
94
+ ): Effect.Effect<void, never, R | R2 | R3> {
95
95
  return schedulePull(pull, Effect.repeat(schedule), sink)
96
96
  })
package/src/Push.ts CHANGED
@@ -53,15 +53,15 @@ class PushImpl<R, E, A, R2, E2, B> extends FxBase<R2, E2, B> implements Push<R,
53
53
  this.onSuccess = this.onSuccess.bind(this)
54
54
  }
55
55
 
56
- run<R3>(sink: Sink.Sink<R3, E2, B>): Effect.Effect<R2 | R3, never, unknown> {
56
+ run<R3>(sink: Sink.Sink<R3, E2, B>): Effect.Effect<unknown, never, R2 | R3> {
57
57
  return this.fx.run(sink)
58
58
  }
59
59
 
60
- onFailure(cause: Cause<E>): Effect.Effect<R, never, unknown> {
60
+ onFailure(cause: Cause<E>): Effect.Effect<unknown, never, R> {
61
61
  return this.sink.onFailure(cause)
62
62
  }
63
63
 
64
- onSuccess(value: A): Effect.Effect<R, never, unknown> {
64
+ onSuccess(value: A): Effect.Effect<unknown, never, R> {
65
65
  return this.sink.onSuccess(value)
66
66
  }
67
67
 
@@ -99,16 +99,16 @@ export const mapInput: {
99
99
  */
100
100
  export const mapInputEffect: {
101
101
  <C, R3, E, A>(
102
- f: (c: C) => Effect.Effect<R3, E, A>
102
+ f: (c: C) => Effect.Effect<A, E, R3>
103
103
  ): <R, R2, E2, B>(push: Push<R, E, A, R2, E2, B>) => Push<R | R3, E, C, R2, E2, B>
104
104
 
105
105
  <R, E, A, R2, E2, B, R3, C>(
106
106
  push: Push<R, E, A, R2, E2, B>,
107
- f: (c: C) => Effect.Effect<R3, E, A>
107
+ f: (c: C) => Effect.Effect<A, E, R3>
108
108
  ): Push<R | R3, E, C, R2, E2, B>
109
109
  } = dual(2, function mapInputEffect<R, E, A, R2, E2, B, R3, C>(
110
110
  push: Push<R, E, A, R2, E2, B>,
111
- f: (c: C) => Effect.Effect<R3, E, A>
111
+ f: (c: C) => Effect.Effect<A, E, R3>
112
112
  ): Push<R | R3, E, C, R2, E2, B> {
113
113
  return make(
114
114
  Sink.mapEffect(push, f),
@@ -138,17 +138,17 @@ export const filterInput: {
138
138
  * @since 1.20.0
139
139
  */
140
140
  export const filterInputEffect: {
141
- <A, R3, E>(f: (a: A) => Effect.Effect<R3, E, boolean>): <R, R2, E2, B>(
141
+ <A, R3, E>(f: (a: A) => Effect.Effect<boolean, E, R3>): <R, R2, E2, B>(
142
142
  push: Push<R, E, A, R2, E2, B>
143
143
  ) => Push<R | R3, E, A, R2, E2, B>
144
144
 
145
145
  <R, E, A, R2, E2, B, R3>(
146
146
  push: Push<R, E, A, R2, E2, B>,
147
- f: (a: A) => Effect.Effect<R3, E, boolean>
147
+ f: (a: A) => Effect.Effect<boolean, E, R3>
148
148
  ): Push<R | R3, E, A, R2, E2, B>
149
149
  } = dual(2, function filterInputEffect<R, E, A, R2, E2, B, R3>(
150
150
  push: Push<R, E, A, R2, E2, B>,
151
- f: (a: A) => Effect.Effect<R3, E, boolean>
151
+ f: (a: A) => Effect.Effect<boolean, E, R3>
152
152
  ): Push<R | R3, E, A, R2, E2, B> {
153
153
  return make(
154
154
  Sink.filterEffect<R | R3, E, A>(push, f),
@@ -178,16 +178,16 @@ export const filterMapInput: {
178
178
  * @since 1.20.0
179
179
  */
180
180
  export const filterMapInputEffect: {
181
- <C, R3, E, A>(f: (c: C) => Effect.Effect<R3, E, Option.Option<A>>): <R, R2, E2, B>(
181
+ <C, R3, E, A>(f: (c: C) => Effect.Effect<Option.Option<A>, E, R3>): <R, R2, E2, B>(
182
182
  push: Push<R, E, A, R2, E2, B>
183
183
  ) => Push<R | R3, E, C, R2, E2, B>
184
184
  <R, E, A, R2, E2, B, R3, C>(
185
185
  push: Push<R, E, A, R2, E2, B>,
186
- f: (c: C) => Effect.Effect<R3, E, Option.Option<A>>
186
+ f: (c: C) => Effect.Effect<Option.Option<A>, E, R3>
187
187
  ): Push<R | R3, E, C, R2, E2, B>
188
188
  } = dual(2, function filterMapInputEffect<R, E, A, R2, E2, B, R3, C>(
189
189
  push: Push<R, E, A, R2, E2, B>,
190
- f: (c: C) => Effect.Effect<R3, E, Option.Option<A>>
190
+ f: (c: C) => Effect.Effect<Option.Option<A>, E, R3>
191
191
  ): Push<R | R3, E, C, R2, E2, B> {
192
192
  return make(
193
193
  Sink.filterMapEffect(push, f),
@@ -215,16 +215,16 @@ export const map: {
215
215
  * @since 1.20.0
216
216
  */
217
217
  export const mapEffect: {
218
- <B, R3, E3, C>(f: (b: B) => Effect.Effect<R3, E3, C>): <R, E, A, R2, E2>(
218
+ <B, R3, E3, C>(f: (b: B) => Effect.Effect<C, E3, R3>): <R, E, A, R2, E2>(
219
219
  push: Push<R, E, A, R2, E2, B>
220
220
  ) => Push<R, E, A, R2 | R3, E2 | E3, C>
221
221
  <R, E, A, R2, E2, B, R3, E3, C>(
222
222
  push: Push<R, E, A, R2, E2, B>,
223
- f: (b: B) => Effect.Effect<R3, E3, C>
223
+ f: (b: B) => Effect.Effect<C, E3, R3>
224
224
  ): Push<R, E, A, R2 | R3, E2 | E3, C>
225
225
  } = dual(2, function mapEffect<R, E, A, R2, E2, B, R3, E3, C>(
226
226
  push: Push<R, E, A, R2, E2, B>,
227
- f: (b: B) => Effect.Effect<R3, E3, C>
227
+ f: (b: B) => Effect.Effect<C, E3, R3>
228
228
  ): Push<R, E, A, R2 | R3, E2 | E3, C> {
229
229
  return make(
230
230
  push,
@@ -252,16 +252,16 @@ export const filter: {
252
252
  * @since 1.20.0
253
253
  */
254
254
  export const filterEffect: {
255
- <B, R3, E3>(f: (b: B) => Effect.Effect<R3, E3, boolean>): <R, E, A, R2, E2>(
255
+ <B, R3, E3>(f: (b: B) => Effect.Effect<boolean, E3, R3>): <R, E, A, R2, E2>(
256
256
  push: Push<R, E, A, R2, E2, B>
257
257
  ) => Push<R, E, A, R2 | R3, E2 | E3, B>
258
258
  <R, E, A, R2, E2, B, R3, E3>(
259
259
  push: Push<R, E, A, R2, E2, B>,
260
- f: (b: B) => Effect.Effect<R3, E3, boolean>
260
+ f: (b: B) => Effect.Effect<boolean, E3, R3>
261
261
  ): Push<R, E, A, R2 | R3, E2 | E3, B>
262
262
  } = dual(2, function filterEffect<R, E, A, R2, E2, B, R3, E3>(
263
263
  push: Push<R, E, A, R2, E2, B>,
264
- f: (b: B) => Effect.Effect<R3, E3, boolean>
264
+ f: (b: B) => Effect.Effect<boolean, E3, R3>
265
265
  ): Push<R, E, A, R2 | R3, E2 | E3, B> {
266
266
  return make(
267
267
  push,
@@ -291,16 +291,16 @@ export const filterMap: {
291
291
  * @since 1.20.0
292
292
  */
293
293
  export const filterMapEffect: {
294
- <B, R3, E3, C>(f: (b: B) => Effect.Effect<R3, E3, Option.Option<C>>): <R, E, A, R2, E2>(
294
+ <B, R3, E3, C>(f: (b: B) => Effect.Effect<Option.Option<C>, E3, R3>): <R, E, A, R2, E2>(
295
295
  push: Push<R, E, A, R2, E2, B>
296
296
  ) => Push<R, E, A, R2 | R3, E2 | E3, C>
297
297
  <R, E, A, R2, E2, B, R3, E3, C>(
298
298
  push: Push<R, E, A, R2, E2, B>,
299
- f: (b: B) => Effect.Effect<R3, E3, Option.Option<C>>
299
+ f: (b: B) => Effect.Effect<Option.Option<C>, E3, R3>
300
300
  ): Push<R, E, A, R2 | R3, E2 | E3, C>
301
301
  } = dual(2, function filterMapEffect<R, E, A, R2, E2, B, R3, E3, C>(
302
302
  push: Push<R, E, A, R2, E2, B>,
303
- f: (b: B) => Effect.Effect<R3, E3, Option.Option<C>>
303
+ f: (b: B) => Effect.Effect<Option.Option<C>, E3, R3>
304
304
  ): Push<R, E, A, R2 | R3, E2 | E3, C> {
305
305
  return make(
306
306
  push,
@@ -333,16 +333,16 @@ export const switchMap: {
333
333
  * @since 1.20.0
334
334
  */
335
335
  export const switchMapEffect: {
336
- <B, R3, E3, C>(f: (b: B) => Effect.Effect<R3, E3, C>): <R, E, A, R2, E2>(
336
+ <B, R3, E3, C>(f: (b: B) => Effect.Effect<C, E3, R3>): <R, E, A, R2, E2>(
337
337
  push: Push<R, E, A, R2, E2, B>
338
338
  ) => Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
339
339
  <R, E, A, R2, E2, B, R3, E3, C>(
340
340
  push: Push<R, E, A, R2, E2, B>,
341
- f: (b: B) => Effect.Effect<R3, E3, C>
341
+ f: (b: B) => Effect.Effect<C, E3, R3>
342
342
  ): Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
343
343
  } = dual(2, function switchMapEffect<R, E, A, R2, E2, B, R3, E3, C>(
344
344
  push: Push<R, E, A, R2, E2, B>,
345
- f: (b: B) => Effect.Effect<R3, E3, C>
345
+ f: (b: B) => Effect.Effect<C, E3, R3>
346
346
  ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
347
347
  return make(
348
348
  push,
@@ -375,16 +375,16 @@ export const flatMap: {
375
375
  * @since 1.20.0
376
376
  */
377
377
  export const flatMapEffect: {
378
- <B, R3, E3, C>(f: (b: B) => Effect.Effect<R3, E3, C>): <R, E, A, R2, E2>(
378
+ <B, R3, E3, C>(f: (b: B) => Effect.Effect<C, E3, R3>): <R, E, A, R2, E2>(
379
379
  push: Push<R, E, A, R2, E2, B>
380
380
  ) => Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
381
381
  <R, E, A, R2, E2, B, R3, E3, C>(
382
382
  push: Push<R, E, A, R2, E2, B>,
383
- f: (b: B) => Effect.Effect<R3, E3, C>
383
+ f: (b: B) => Effect.Effect<C, E3, R3>
384
384
  ): Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
385
385
  } = dual(2, function flatMapEffect<R, E, A, R2, E2, B, R3, E3, C>(
386
386
  push: Push<R, E, A, R2, E2, B>,
387
- f: (b: B) => Effect.Effect<R3, E3, C>
387
+ f: (b: B) => Effect.Effect<C, E3, R3>
388
388
  ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
389
389
  return make(
390
390
  push,
@@ -417,16 +417,16 @@ export const exhaustMap: {
417
417
  * @since 1.20.0
418
418
  */
419
419
  export const exhaustMapEffect: {
420
- <B, R3, E3, C>(f: (b: B) => Effect.Effect<R3, E3, C>): <R, E, A, R2, E2>(
420
+ <B, R3, E3, C>(f: (b: B) => Effect.Effect<C, E3, R3>): <R, E, A, R2, E2>(
421
421
  push: Push<R, E, A, R2, E2, B>
422
422
  ) => Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
423
423
  <R, E, A, R2, E2, B, R3, E3, C>(
424
424
  push: Push<R, E, A, R2, E2, B>,
425
- f: (b: B) => Effect.Effect<R3, E3, C>
425
+ f: (b: B) => Effect.Effect<C, E3, R3>
426
426
  ): Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
427
427
  } = dual(2, function exhaustMapEffect<R, E, A, R2, E2, B, R3, E3, C>(
428
428
  push: Push<R, E, A, R2, E2, B>,
429
- f: (b: B) => Effect.Effect<R3, E3, C>
429
+ f: (b: B) => Effect.Effect<C, E3, R3>
430
430
  ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
431
431
  return make(
432
432
  push,
@@ -459,16 +459,16 @@ export const exhaustMapLatest: {
459
459
  * @since 1.20.0
460
460
  */
461
461
  export const exhaustMapLatestEffect: {
462
- <B, R3, E3, C>(f: (b: B) => Effect.Effect<R3, E3, C>): <R, E, A, R2, E2>(
462
+ <B, R3, E3, C>(f: (b: B) => Effect.Effect<C, E3, R3>): <R, E, A, R2, E2>(
463
463
  push: Push<R, E, A, R2, E2, B>
464
464
  ) => Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
465
465
  <R, E, A, R2, E2, B, R3, E3, C>(
466
466
  push: Push<R, E, A, R2, E2, B>,
467
- f: (b: B) => Effect.Effect<R3, E3, C>
467
+ f: (b: B) => Effect.Effect<C, E3, R3>
468
468
  ): Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
469
469
  } = dual(2, function exhaustMapLatestEffect<R, E, A, R2, E2, B, R3, E3, C>(
470
470
  push: Push<R, E, A, R2, E2, B>,
471
- f: (b: B) => Effect.Effect<R3, E3, C>
471
+ f: (b: B) => Effect.Effect<C, E3, R3>
472
472
  ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
473
473
  return make(
474
474
  push,