@typed/fx 1.22.2 → 1.24.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 (157) hide show
  1. package/dist/cjs/AsyncData.js.map +1 -1
  2. package/dist/cjs/Form.js.map +1 -1
  3. package/dist/cjs/FormEntry.js.map +1 -1
  4. package/dist/cjs/Fx.js +1 -1
  5. package/dist/cjs/Fx.js.map +1 -1
  6. package/dist/cjs/Idle.js.map +1 -1
  7. package/dist/cjs/Match.js.map +1 -1
  8. package/dist/cjs/Pull.js +5 -3
  9. package/dist/cjs/Pull.js.map +1 -1
  10. package/dist/cjs/RefArray.js.map +1 -1
  11. package/dist/cjs/RefChunk.js.map +1 -1
  12. package/dist/cjs/RefHashSet.js.map +1 -1
  13. package/dist/cjs/RefSubject.js +3 -2
  14. package/dist/cjs/RefSubject.js.map +1 -1
  15. package/dist/cjs/Sink.js.map +1 -1
  16. package/dist/cjs/Subject.js.map +1 -1
  17. package/dist/cjs/Versioned.js.map +1 -1
  18. package/dist/cjs/internal/core.js.map +1 -1
  19. package/dist/cjs/internal/helpers.js.map +1 -1
  20. package/dist/cjs/internal/keyed.js +1 -1
  21. package/dist/cjs/internal/keyed.js.map +1 -1
  22. package/dist/cjs/internal/provide.js.map +1 -1
  23. package/dist/cjs/internal/share.js.map +1 -1
  24. package/dist/cjs/internal/sync-producer.js.map +1 -1
  25. package/dist/dts/AsyncData.d.ts +53 -53
  26. package/dist/dts/AsyncData.d.ts.map +1 -1
  27. package/dist/dts/Emitter.d.ts +7 -7
  28. package/dist/dts/Emitter.d.ts.map +1 -1
  29. package/dist/dts/Form.d.ts +14 -14
  30. package/dist/dts/Form.d.ts.map +1 -1
  31. package/dist/dts/FormEntry.d.ts +11 -11
  32. package/dist/dts/FormEntry.d.ts.map +1 -1
  33. package/dist/dts/Fx.d.ts +417 -417
  34. package/dist/dts/Fx.d.ts.map +1 -1
  35. package/dist/dts/Guard.d.ts +21 -21
  36. package/dist/dts/Guard.d.ts.map +1 -1
  37. package/dist/dts/Idle.d.ts +12 -12
  38. package/dist/dts/Idle.d.ts.map +1 -1
  39. package/dist/dts/Match.d.ts +16 -16
  40. package/dist/dts/Match.d.ts.map +1 -1
  41. package/dist/dts/Pull.d.ts +5 -5
  42. package/dist/dts/Pull.d.ts.map +1 -1
  43. package/dist/dts/Push.d.ts +40 -40
  44. package/dist/dts/Push.d.ts.map +1 -1
  45. package/dist/dts/RefArray.d.ts +59 -59
  46. package/dist/dts/RefArray.d.ts.map +1 -1
  47. package/dist/dts/RefChunk.d.ts +45 -45
  48. package/dist/dts/RefChunk.d.ts.map +1 -1
  49. package/dist/dts/RefHashMap.d.ts +35 -35
  50. package/dist/dts/RefHashMap.d.ts.map +1 -1
  51. package/dist/dts/RefHashSet.d.ts +17 -17
  52. package/dist/dts/RefHashSet.d.ts.map +1 -1
  53. package/dist/dts/RefSubject.d.ts +136 -136
  54. package/dist/dts/RefSubject.d.ts.map +1 -1
  55. package/dist/dts/Sink.d.ts +63 -63
  56. package/dist/dts/Sink.d.ts.map +1 -1
  57. package/dist/dts/Stream.d.ts +11 -11
  58. package/dist/dts/Stream.d.ts.map +1 -1
  59. package/dist/dts/Subject.d.ts +13 -13
  60. package/dist/dts/Subject.d.ts.map +1 -1
  61. package/dist/dts/Typeclass.d.ts +1 -1
  62. package/dist/dts/Typeclass.d.ts.map +1 -1
  63. package/dist/dts/Versioned.d.ts +33 -33
  64. package/dist/dts/Versioned.d.ts.map +1 -1
  65. package/dist/dts/index.d.ts +1 -1
  66. package/dist/dts/internal/DeferredRef.d.ts +8 -8
  67. package/dist/dts/internal/DeferredRef.d.ts.map +1 -1
  68. package/dist/dts/internal/core.d.ts +191 -191
  69. package/dist/dts/internal/core.d.ts.map +1 -1
  70. package/dist/dts/internal/effect-loop-operator.d.ts +6 -6
  71. package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -1
  72. package/dist/dts/internal/effect-operator.d.ts +16 -16
  73. package/dist/dts/internal/effect-operator.d.ts.map +1 -1
  74. package/dist/dts/internal/effect-producer.d.ts +13 -13
  75. package/dist/dts/internal/effect-producer.d.ts.map +1 -1
  76. package/dist/dts/internal/helpers.d.ts +26 -26
  77. package/dist/dts/internal/helpers.d.ts.map +1 -1
  78. package/dist/dts/internal/keyed.d.ts +1 -1
  79. package/dist/dts/internal/keyed.d.ts.map +1 -1
  80. package/dist/dts/internal/loop-operator.d.ts +2 -2
  81. package/dist/dts/internal/loop-operator.d.ts.map +1 -1
  82. package/dist/dts/internal/operator.d.ts +2 -2
  83. package/dist/dts/internal/operator.d.ts.map +1 -1
  84. package/dist/dts/internal/protos.d.ts +12 -12
  85. package/dist/dts/internal/protos.d.ts.map +1 -1
  86. package/dist/dts/internal/provide.d.ts +15 -15
  87. package/dist/dts/internal/provide.d.ts.map +1 -1
  88. package/dist/dts/internal/share.d.ts +11 -11
  89. package/dist/dts/internal/share.d.ts.map +1 -1
  90. package/dist/dts/internal/sync-operator.d.ts +2 -2
  91. package/dist/dts/internal/sync-operator.d.ts.map +1 -1
  92. package/dist/dts/internal/sync-producer.d.ts +6 -6
  93. package/dist/dts/internal/sync-producer.d.ts.map +1 -1
  94. package/dist/dts/internal/withKey.d.ts +1 -1
  95. package/dist/dts/internal/withKey.d.ts.map +1 -1
  96. package/dist/esm/AsyncData.js.map +1 -1
  97. package/dist/esm/Form.js.map +1 -1
  98. package/dist/esm/FormEntry.js.map +1 -1
  99. package/dist/esm/Fx.js +1 -1
  100. package/dist/esm/Fx.js.map +1 -1
  101. package/dist/esm/Idle.js.map +1 -1
  102. package/dist/esm/Match.js.map +1 -1
  103. package/dist/esm/Pull.js +3 -3
  104. package/dist/esm/Pull.js.map +1 -1
  105. package/dist/esm/RefArray.js.map +1 -1
  106. package/dist/esm/RefChunk.js.map +1 -1
  107. package/dist/esm/RefHashSet.js.map +1 -1
  108. package/dist/esm/RefSubject.js +3 -1
  109. package/dist/esm/RefSubject.js.map +1 -1
  110. package/dist/esm/Sink.js.map +1 -1
  111. package/dist/esm/Subject.js.map +1 -1
  112. package/dist/esm/Versioned.js.map +1 -1
  113. package/dist/esm/index.js +1 -1
  114. package/dist/esm/internal/core.js.map +1 -1
  115. package/dist/esm/internal/helpers.js.map +1 -1
  116. package/dist/esm/internal/keyed.js +1 -1
  117. package/dist/esm/internal/keyed.js.map +1 -1
  118. package/dist/esm/internal/provide.js.map +1 -1
  119. package/dist/esm/internal/share.js.map +1 -1
  120. package/dist/esm/internal/sync-producer.js.map +1 -1
  121. package/package.json +6 -6
  122. package/src/AsyncData.ts +142 -144
  123. package/src/Emitter.ts +13 -13
  124. package/src/Form.ts +55 -55
  125. package/src/FormEntry.ts +39 -39
  126. package/src/Fx.ts +788 -789
  127. package/src/Guard.ts +43 -43
  128. package/src/Idle.ts +26 -26
  129. package/src/Match.ts +60 -61
  130. package/src/Pull.ts +42 -43
  131. package/src/Push.ts +195 -195
  132. package/src/RefArray.ts +121 -119
  133. package/src/RefChunk.ts +98 -97
  134. package/src/RefHashMap.ts +79 -79
  135. package/src/RefHashSet.ts +40 -39
  136. package/src/RefSubject.ts +574 -565
  137. package/src/Sink.ts +303 -303
  138. package/src/Stream.ts +27 -27
  139. package/src/Subject.ts +48 -46
  140. package/src/Typeclass.ts +2 -2
  141. package/src/Versioned.ts +97 -97
  142. package/src/index.ts +1 -1
  143. package/src/internal/DeferredRef.ts +7 -7
  144. package/src/internal/core.ts +768 -781
  145. package/src/internal/effect-loop-operator.ts +7 -7
  146. package/src/internal/effect-operator.ts +23 -23
  147. package/src/internal/effect-producer.ts +38 -38
  148. package/src/internal/helpers.ts +51 -51
  149. package/src/internal/keyed.ts +21 -21
  150. package/src/internal/loop-operator.ts +2 -2
  151. package/src/internal/operator.ts +2 -2
  152. package/src/internal/protos.ts +15 -15
  153. package/src/internal/provide.ts +27 -27
  154. package/src/internal/share.ts +25 -25
  155. package/src/internal/sync-operator.ts +4 -4
  156. package/src/internal/sync-producer.ts +15 -15
  157. package/src/internal/withKey.ts +13 -13
package/src/Push.ts CHANGED
@@ -18,8 +18,8 @@ import * as Sink from "./Sink.js"
18
18
  * more complex use cases.
19
19
  * @since 1.20.0
20
20
  */
21
- export interface Push<out R, in E, in A, out R2, out E2, out B>
22
- extends Sink.Sink<R, E, A>, Fx<R2, E2, B>, Pipeable.Pipeable
21
+ export interface Push<in A, in E, out R, out B, out E2, out R2>
22
+ extends Sink.Sink<A, E, R>, Fx<B, E2, R2>, Pipeable.Pipeable
23
23
  {}
24
24
 
25
25
  /**
@@ -36,32 +36,32 @@ export namespace Push {
36
36
  * @since 1.20.0
37
37
  */
38
38
  export const make: {
39
- <R2, E2, B>(fx: Fx<R2, E2, B>): <R, E, A>(sink: Sink.Sink<R, E, A>) => Push<R, E, A, R2, E2, B>
40
- <R, E, A, R2, E2, B>(sink: Sink.Sink<R, E, A>, fx: Fx<R2, E2, B>): Push<R, E, A, R2, E2, B>
41
- } = dual(2, function make<R, E, A, R2, E2, B>(
42
- sink: Sink.Sink<R, E, A>,
43
- fx: Fx<R2, E2, B>
44
- ): Push<R, E, A, R2, E2, B> {
39
+ <B, E2, R2>(fx: Fx<B, E2, R2>): <A, E, R>(sink: Sink.Sink<A, E, R>) => Push<A, E, R, B, E2, R2>
40
+ <A, E, R, B, E2, R2>(sink: Sink.Sink<A, E, R>, fx: Fx<B, E2, R2>): Push<A, E, R, B, E2, R2>
41
+ } = dual(2, function make<A, E, R, B, E2, R2>(
42
+ sink: Sink.Sink<A, E, R>,
43
+ fx: Fx<B, E2, R2>
44
+ ): Push<A, E, R, B, E2, R2> {
45
45
  return new PushImpl(sink, fx)
46
46
  })
47
47
 
48
- class PushImpl<R, E, A, R2, E2, B> extends FxBase<R2, E2, B> implements Push<R, E, A, R2, E2, B> {
49
- constructor(readonly sink: Sink.Sink<R, E, A>, readonly fx: Fx<R2, E2, B>) {
48
+ class PushImpl<A, E, R, B, E2, R2> extends FxBase<B, E2, R2> implements Push<A, E, R, B, E2, R2> {
49
+ constructor(readonly sink: Sink.Sink<A, E, R>, readonly fx: Fx<B, E2, R2>) {
50
50
  super()
51
51
 
52
52
  this.onFailure = this.onFailure.bind(this)
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<B, E2, R3>): 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,17 +99,17 @@ 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>
103
- ): <R, R2, E2, B>(push: Push<R, E, A, R2, E2, B>) => Push<R | R3, E, C, R2, E2, B>
104
-
105
- <R, E, A, R2, E2, B, R3, C>(
106
- push: Push<R, E, A, R2, E2, B>,
107
- f: (c: C) => Effect.Effect<R3, E, A>
108
- ): Push<R | R3, E, C, R2, E2, B>
109
- } = dual(2, function mapInputEffect<R, E, A, R2, E2, B, R3, C>(
110
- push: Push<R, E, A, R2, E2, B>,
111
- f: (c: C) => Effect.Effect<R3, E, A>
112
- ): Push<R | R3, E, C, R2, E2, B> {
102
+ f: (c: C) => Effect.Effect<A, E, R3>
103
+ ): <R, B, E2, R2>(push: Push<A, E, R, B, E2, R2>) => Push<C, E, R | R3, B, E2, R2>
104
+
105
+ <A, E, R, B, E2, R2, R3, C>(
106
+ push: Push<A, E, R, B, E2, R2>,
107
+ f: (c: C) => Effect.Effect<A, E, R3>
108
+ ): Push<C, E, R | R3, B, E2, R2>
109
+ } = dual(2, function mapInputEffect<A, E, R, B, E2, R2, R3, C>(
110
+ push: Push<A, E, R, B, E2, R2>,
111
+ f: (c: C) => Effect.Effect<A, E, R3>
112
+ ): Push<C, E, R | R3, B, E2, R2> {
113
113
  return make(
114
114
  Sink.mapEffect(push, f),
115
115
  push
@@ -123,11 +123,11 @@ export const filterInput: {
123
123
  <A>(f: (a: A) => boolean): <P extends Push.Any>(
124
124
  push: P
125
125
  ) => Push<Sink.Context<P>, Sink.Error<P>, A, Fx.Context<P>, Fx.Error<P>, Fx.Success<P>>
126
- <R, E, A, R2, E2, B>(push: Push<R, E, A, R2, E2, B>, f: (a: A) => boolean): Push<R, E, A, R2, E2, B>
127
- } = dual(2, function filterInput<R, E, A, R2, E2, B>(
128
- push: Push<R, E, A, R2, E2, B>,
126
+ <A, E, R, B, E2, R2>(push: Push<A, E, R, B, E2, R2>, f: (a: A) => boolean): Push<A, E, R, B, E2, R2>
127
+ } = dual(2, function filterInput<A, E, R, B, E2, R2>(
128
+ push: Push<A, E, R, B, E2, R2>,
129
129
  f: (a: A) => boolean
130
- ): Push<R, E, A, R2, E2, B> {
130
+ ): Push<A, E, R, B, E2, R2> {
131
131
  return make(
132
132
  Sink.filter(push, f),
133
133
  push
@@ -138,20 +138,20 @@ 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>(
142
- push: Push<R, E, A, R2, E2, B>
143
- ) => Push<R | R3, E, A, R2, E2, B>
144
-
145
- <R, E, A, R2, E2, B, R3>(
146
- push: Push<R, E, A, R2, E2, B>,
147
- f: (a: A) => Effect.Effect<R3, E, boolean>
148
- ): Push<R | R3, E, A, R2, E2, B>
149
- } = dual(2, function filterInputEffect<R, E, A, R2, E2, B, R3>(
150
- push: Push<R, E, A, R2, E2, B>,
151
- f: (a: A) => Effect.Effect<R3, E, boolean>
152
- ): Push<R | R3, E, A, R2, E2, B> {
141
+ <A, R3, E>(f: (a: A) => Effect.Effect<boolean, E, R3>): <R, B, E2, R2>(
142
+ push: Push<A, E, R, B, E2, R2>
143
+ ) => Push<A, E, R | R3, B, E2, R2>
144
+
145
+ <A, E, R, B, E2, R2, R3>(
146
+ push: Push<A, E, R, B, E2, R2>,
147
+ f: (a: A) => Effect.Effect<boolean, E, R3>
148
+ ): Push<A, E, R | R3, B, E2, R2>
149
+ } = dual(2, function filterInputEffect<A, E, R, B, E2, R2, R3>(
150
+ push: Push<A, E, R, B, E2, R2>,
151
+ f: (a: A) => Effect.Effect<boolean, E, R3>
152
+ ): Push<A, E, R | R3, B, E2, R2> {
153
153
  return make(
154
- Sink.filterEffect<R | R3, E, A>(push, f),
154
+ Sink.filterEffect<A, E, R | R3>(push, f),
155
155
  push
156
156
  )
157
157
  })
@@ -162,12 +162,12 @@ export const filterInputEffect: {
162
162
  export const filterMapInput: {
163
163
  <C, A>(f: (c: C) => Option.Option<A>): <P extends Push.Any>(
164
164
  push: P
165
- ) => Push<Sink.Context<P>, Sink.Error<P>, C, Fx.Context<P>, Fx.Error<P>, Fx.Success<P>>
166
- <R, E, A, R2, E2, B, C>(push: Push<R, E, A, R2, E2, B>, f: (c: C) => Option.Option<A>): Push<R, E, C, R2, E2, B>
167
- } = dual(2, function filterMapInput<R, E, A, R2, E2, B, C>(
168
- push: Push<R, E, A, R2, E2, B>,
165
+ ) => Push<C, Sink.Error<P>, Sink.Context<P>, Fx.Success<P>, Fx.Error<P>, Fx.Context<P>>
166
+ <A, E, R, B, E2, R2, C>(push: Push<A, E, R, B, E2, R2>, f: (c: C) => Option.Option<A>): Push<C, E, R, B, E2, R2>
167
+ } = dual(2, function filterMapInput<A, E, R, B, E2, R2, C>(
168
+ push: Push<A, E, R, B, E2, R2>,
169
169
  f: (c: C) => Option.Option<A>
170
- ): Push<R, E, C, R2, E2, B> {
170
+ ): Push<C, E, R, B, E2, R2> {
171
171
  return make(
172
172
  Sink.filterMap(push, f),
173
173
  push
@@ -178,17 +178,17 @@ 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>(
182
- push: Push<R, E, A, R2, E2, B>
183
- ) => Push<R | R3, E, C, R2, E2, B>
184
- <R, E, A, R2, E2, B, R3, C>(
185
- push: Push<R, E, A, R2, E2, B>,
186
- f: (c: C) => Effect.Effect<R3, E, Option.Option<A>>
187
- ): Push<R | R3, E, C, R2, E2, B>
188
- } = dual(2, function filterMapInputEffect<R, E, A, R2, E2, B, R3, C>(
189
- push: Push<R, E, A, R2, E2, B>,
190
- f: (c: C) => Effect.Effect<R3, E, Option.Option<A>>
191
- ): Push<R | R3, E, C, R2, E2, B> {
181
+ <C, R3, E, A>(f: (c: C) => Effect.Effect<Option.Option<A>, E, R3>): <R, B, E2, R2>(
182
+ push: Push<A, E, R, B, E2, R2>
183
+ ) => Push<C, E, R | R3, B, E2, R2>
184
+ <A, E, R, B, E2, R2, R3, C>(
185
+ push: Push<A, E, R, B, E2, R2>,
186
+ f: (c: C) => Effect.Effect<Option.Option<A>, E, R3>
187
+ ): Push<C, E, R | R3, B, E2, R2>
188
+ } = dual(2, function filterMapInputEffect<A, E, R, B, E2, R2, R3, C>(
189
+ push: Push<A, E, R, B, E2, R2>,
190
+ f: (c: C) => Effect.Effect<Option.Option<A>, E, R3>
191
+ ): Push<C, E, R | R3, B, E2, R2> {
192
192
  return make(
193
193
  Sink.filterMapEffect(push, f),
194
194
  push
@@ -199,12 +199,12 @@ export const filterMapInputEffect: {
199
199
  * @since 1.20.0
200
200
  */
201
201
  export const map: {
202
- <B, C>(f: (b: B) => C): <R, E, A, R2, E2>(push: Push<R, E, A, R2, E2, B>) => Push<R, E, A, R2, E2, C>
203
- <R, E, A, R2, E2, B, C>(push: Push<R, E, A, R2, E2, B>, f: (b: B) => C): Push<R, E, A, R2, E2, C>
204
- } = dual(2, function map<R, E, A, R2, E2, B, C>(
205
- push: Push<R, E, A, R2, E2, B>,
202
+ <B, C>(f: (b: B) => C): <A, E, R, E2, R2>(push: Push<A, E, R, B, E2, R2>) => Push<A, E, R, C, E2, R2>
203
+ <A, E, R, B, E2, R2, C>(push: Push<A, E, R, B, E2, R2>, f: (b: B) => C): Push<A, E, R, C, E2, R2>
204
+ } = dual(2, function map<A, E, R, B, E2, R2, C>(
205
+ push: Push<A, E, R, B, E2, R2>,
206
206
  f: (b: B) => C
207
- ): Push<R, E, A, R2, E2, C> {
207
+ ): Push<A, E, R, C, E2, R2> {
208
208
  return make(
209
209
  push,
210
210
  core.map(push, f)
@@ -215,17 +215,17 @@ 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>(
219
- push: Push<R, E, A, R2, E2, B>
220
- ) => Push<R, E, A, R2 | R3, E2 | E3, C>
221
- <R, E, A, R2, E2, B, R3, E3, C>(
222
- push: Push<R, E, A, R2, E2, B>,
223
- f: (b: B) => Effect.Effect<R3, E3, C>
224
- ): Push<R, E, A, R2 | R3, E2 | E3, C>
225
- } = dual(2, function mapEffect<R, E, A, R2, E2, B, R3, E3, C>(
226
- push: Push<R, E, A, R2, E2, B>,
227
- f: (b: B) => Effect.Effect<R3, E3, C>
228
- ): Push<R, E, A, R2 | R3, E2 | E3, C> {
218
+ <B, C, E3, R3>(f: (b: B) => Effect.Effect<C, E3, R3>): <A, E, R, E2, R2>(
219
+ push: Push<A, E, R, B, E2, R2>
220
+ ) => Push<A, E, R, C, E2 | E3, R2 | R3>
221
+ <A, E, R, B, E2, R2, C, E3, R3>(
222
+ push: Push<A, E, R, B, E2, R2>,
223
+ f: (b: B) => Effect.Effect<C, E3, R3>
224
+ ): Push<A, E, R, C, E2 | E3, R2 | R3>
225
+ } = dual(2, function mapEffect<A, E, R, B, E2, R2, C, E3, R3>(
226
+ push: Push<A, E, R, B, E2, R2>,
227
+ f: (b: B) => Effect.Effect<C, E3, R3>
228
+ ): Push<A, E, R, C, E2 | E3, R2 | R3> {
229
229
  return make(
230
230
  push,
231
231
  core.mapEffect(push, f)
@@ -236,12 +236,12 @@ export const mapEffect: {
236
236
  * @since 1.20.0
237
237
  */
238
238
  export const filter: {
239
- <B>(f: (b: B) => boolean): <R, E, A, R2, E2>(push: Push<R, E, A, R2, E2, B>) => Push<R, E, A, R2, E2, B>
240
- <R, E, A, R2, E2, B>(push: Push<R, E, A, R2, E2, B>, f: (b: B) => boolean): Push<R, E, A, R2, E2, B>
241
- } = dual(2, function filter<R, E, A, R2, E2, B>(
242
- push: Push<R, E, A, R2, E2, B>,
239
+ <B>(f: (b: B) => boolean): <A, E, R, E2, R2>(push: Push<A, E, R, B, E2, R2>) => Push<A, E, R, B, E2, R2>
240
+ <A, E, R, B, E2, R2>(push: Push<A, E, R, B, E2, R2>, f: (b: B) => boolean): Push<A, E, R, B, E2, R2>
241
+ } = dual(2, function filter<A, E, R, B, E2, R2>(
242
+ push: Push<A, E, R, B, E2, R2>,
243
243
  f: (b: B) => boolean
244
- ): Push<R, E, A, R2, E2, B> {
244
+ ): Push<A, E, R, B, E2, R2> {
245
245
  return make(
246
246
  push,
247
247
  core.filter(push, f)
@@ -252,17 +252,17 @@ 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>(
256
- push: Push<R, E, A, R2, E2, B>
257
- ) => Push<R, E, A, R2 | R3, E2 | E3, B>
258
- <R, E, A, R2, E2, B, R3, E3>(
259
- push: Push<R, E, A, R2, E2, B>,
260
- f: (b: B) => Effect.Effect<R3, E3, boolean>
261
- ): Push<R, E, A, R2 | R3, E2 | E3, B>
262
- } = dual(2, function filterEffect<R, E, A, R2, E2, B, R3, E3>(
263
- push: Push<R, E, A, R2, E2, B>,
264
- f: (b: B) => Effect.Effect<R3, E3, boolean>
265
- ): Push<R, E, A, R2 | R3, E2 | E3, B> {
255
+ <B, R3, E3>(f: (b: B) => Effect.Effect<boolean, E3, R3>): <A, E, R, E2, R2>(
256
+ push: Push<A, E, R, B, E2, R2>
257
+ ) => Push<A, E, R, B, E2 | E3, R2 | R3>
258
+ <A, E, R, B, E2, R2, R3, E3>(
259
+ push: Push<A, E, R, B, E2, R2>,
260
+ f: (b: B) => Effect.Effect<boolean, E3, R3>
261
+ ): Push<A, E, R, B, E2 | E3, R2 | R3>
262
+ } = dual(2, function filterEffect<A, E, R, B, E2, R2, R3, E3>(
263
+ push: Push<A, E, R, B, E2, R2>,
264
+ f: (b: B) => Effect.Effect<boolean, E3, R3>
265
+ ): Push<A, E, R, B, E2 | E3, R2 | R3> {
266
266
  return make(
267
267
  push,
268
268
  core.filterEffect(push, f)
@@ -273,14 +273,14 @@ export const filterEffect: {
273
273
  * @since 1.20.0
274
274
  */
275
275
  export const filterMap: {
276
- <B, C>(f: (b: B) => Option.Option<C>): <R, E, A, R2, E2>(
277
- push: Push<R, E, A, R2, E2, B>
278
- ) => Push<R, E, A, R2, E2, C>
279
- <R, E, A, R2, E2, B, C>(push: Push<R, E, A, R2, E2, B>, f: (b: B) => Option.Option<C>): Push<R, E, A, R2, E2, C>
280
- } = dual(2, function filterMap<R, E, A, R2, E2, B, C>(
281
- push: Push<R, E, A, R2, E2, B>,
276
+ <B, C>(f: (b: B) => Option.Option<C>): <A, E, R, E2, R2>(
277
+ push: Push<A, E, R, B, E2, R2>
278
+ ) => Push<A, E, R, C, E2, R2>
279
+ <A, E, R, B, E2, R2, C>(push: Push<A, E, R, B, E2, R2>, f: (b: B) => Option.Option<C>): Push<A, E, R, C, E2, R2>
280
+ } = dual(2, function filterMap<A, E, R, B, E2, R2, C>(
281
+ push: Push<A, E, R, B, E2, R2>,
282
282
  f: (b: B) => Option.Option<C>
283
- ): Push<R, E, A, R2, E2, C> {
283
+ ): Push<A, E, R, C, E2, R2> {
284
284
  return make(
285
285
  push,
286
286
  core.filterMap(push, f)
@@ -291,17 +291,17 @@ 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>(
295
- push: Push<R, E, A, R2, E2, B>
296
- ) => Push<R, E, A, R2 | R3, E2 | E3, C>
297
- <R, E, A, R2, E2, B, R3, E3, C>(
298
- push: Push<R, E, A, R2, E2, B>,
299
- f: (b: B) => Effect.Effect<R3, E3, Option.Option<C>>
300
- ): Push<R, E, A, R2 | R3, E2 | E3, C>
301
- } = dual(2, function filterMapEffect<R, E, A, R2, E2, B, R3, E3, C>(
302
- push: Push<R, E, A, R2, E2, B>,
303
- f: (b: B) => Effect.Effect<R3, E3, Option.Option<C>>
304
- ): Push<R, E, A, R2 | R3, E2 | E3, C> {
294
+ <B, C, E3, R3>(f: (b: B) => Effect.Effect<Option.Option<C>, E3, R3>): <A, E, R, E2, R2>(
295
+ push: Push<A, E, R, B, E2, R2>
296
+ ) => Push<A, E, R, C, E2 | E3, R2 | R3>
297
+ <A, E, R, B, E2, R2, C, E3, R3>(
298
+ push: Push<A, E, R, B, E2, R2>,
299
+ f: (b: B) => Effect.Effect<Option.Option<C>, E3, R3>
300
+ ): Push<A, E, R, C, E2 | E3, R2 | R3>
301
+ } = dual(2, function filterMapEffect<A, E, R, B, E2, R2, C, E3, R3>(
302
+ push: Push<A, E, R, B, E2, R2>,
303
+ f: (b: B) => Effect.Effect<Option.Option<C>, E3, R3>
304
+ ): Push<A, E, R, C, E2 | E3, R2 | R3> {
305
305
  return make(
306
306
  push,
307
307
  core.filterMapEffect(push, f)
@@ -312,17 +312,17 @@ export const filterMapEffect: {
312
312
  * @since 1.20.0
313
313
  */
314
314
  export const switchMap: {
315
- <B, R3, E3, C>(f: (b: B) => Fx<R3, E3, C>): <R, E, A, R2, E2>(
316
- push: Push<R, E, A, R2, E2, B>
317
- ) => Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
318
- <R, E, A, R2, E2, B, R3, E3, C>(
319
- push: Push<R, E, A, R2, E2, B>,
320
- f: (b: B) => Fx<R3, E3, C>
321
- ): Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
322
- } = dual(2, function switchMap<R, E, A, R2, E2, B, R3, E3, C>(
323
- push: Push<R, E, A, R2, E2, B>,
324
- f: (b: B) => Fx<R3, E3, C>
325
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
315
+ <B, C, E3, R3>(f: (b: B) => Fx<C, E3, R3>): <A, E, R, E2, R2>(
316
+ push: Push<A, E, R, B, E2, R2>
317
+ ) => Push<A, E, R, Scope.Scope | C, E2 | E3, R2 | R3>
318
+ <A, E, R, B, E2, R2, C, E3, R3>(
319
+ push: Push<A, E, R, B, E2, R2>,
320
+ f: (b: B) => Fx<C, E3, R3>
321
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope>
322
+ } = dual(2, function switchMap<A, E, R, B, E2, R2, C, E3, R3>(
323
+ push: Push<A, E, R, B, E2, R2>,
324
+ f: (b: B) => Fx<C, E3, R3>
325
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope> {
326
326
  return make(
327
327
  push,
328
328
  core.switchMap(push, f)
@@ -333,17 +333,17 @@ 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>(
337
- push: Push<R, E, A, R2, E2, B>
338
- ) => Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
339
- <R, E, A, R2, E2, B, R3, E3, C>(
340
- push: Push<R, E, A, R2, E2, B>,
341
- f: (b: B) => Effect.Effect<R3, E3, C>
342
- ): Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
343
- } = dual(2, function switchMapEffect<R, E, A, R2, E2, B, R3, E3, C>(
344
- push: Push<R, E, A, R2, E2, B>,
345
- f: (b: B) => Effect.Effect<R3, E3, C>
346
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
336
+ <B, C, E3, R3>(f: (b: B) => Effect.Effect<C, E3, R3>): <A, E, R, E2, R2>(
337
+ push: Push<A, E, R, B, E2, R2>
338
+ ) => Push<A, E, R, Scope.Scope | C, E2 | E3, R2 | R3>
339
+ <A, E, R, B, E2, R2, C, E3, R3>(
340
+ push: Push<A, E, R, B, E2, R2>,
341
+ f: (b: B) => Effect.Effect<C, E3, R3>
342
+ ): Push<A, E, R, Scope.Scope | C, E2 | E3, R2 | R3>
343
+ } = dual(2, function switchMapEffect<A, E, R, B, E2, R2, C, E3, R3>(
344
+ push: Push<A, E, R, B, E2, R2>,
345
+ f: (b: B) => Effect.Effect<C, E3, R3>
346
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope> {
347
347
  return make(
348
348
  push,
349
349
  core.switchMapEffect(push, f)
@@ -354,17 +354,17 @@ export const switchMapEffect: {
354
354
  * @since 1.20.0
355
355
  */
356
356
  export const flatMap: {
357
- <B, R3, E3, C>(f: (b: B) => Fx<R3, E3, C>): <R, E, A, R2, E2>(
358
- push: Push<R, E, A, R2, E2, B>
359
- ) => Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
360
- <R, E, A, R2, E2, B, R3, E3, C>(
361
- push: Push<R, E, A, R2, E2, B>,
362
- f: (b: B) => Fx<R3, E3, C>
363
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
364
- } = dual(2, function flatMap<R, E, A, R2, E2, B, R3, E3, C>(
365
- push: Push<R, E, A, R2, E2, B>,
366
- f: (b: B) => Fx<R3, E3, C>
367
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
357
+ <B, C, E3, R3>(f: (b: B) => Fx<C, E3, R3>): <A, E, R, E2, R2>(
358
+ push: Push<A, E, R, B, E2, R2>
359
+ ) => Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope>
360
+ <A, E, R, B, E2, R2, C, E3, R3>(
361
+ push: Push<A, E, R, B, E2, R2>,
362
+ f: (b: B) => Fx<C, E3, R3>
363
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope>
364
+ } = dual(2, function flatMap<A, E, R, B, E2, R2, C, E3, R3>(
365
+ push: Push<A, E, R, B, E2, R2>,
366
+ f: (b: B) => Fx<C, E3, R3>
367
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope> {
368
368
  return make(
369
369
  push,
370
370
  core.flatMap(push, f)
@@ -375,17 +375,17 @@ 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>(
379
- push: Push<R, E, A, R2, E2, B>
380
- ) => Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
381
- <R, E, A, R2, E2, B, R3, E3, C>(
382
- push: Push<R, E, A, R2, E2, B>,
383
- f: (b: B) => Effect.Effect<R3, E3, C>
384
- ): Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
385
- } = dual(2, function flatMapEffect<R, E, A, R2, E2, B, R3, E3, C>(
386
- push: Push<R, E, A, R2, E2, B>,
387
- f: (b: B) => Effect.Effect<R3, E3, C>
388
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
378
+ <B, C, E3, R3>(f: (b: B) => Effect.Effect<C, E3, R3>): <A, E, R, E2, R2>(
379
+ push: Push<A, E, R, B, E2, R2>
380
+ ) => Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope>
381
+ <A, E, R, B, E2, R2, C, E3, R3>(
382
+ push: Push<A, E, R, B, E2, R2>,
383
+ f: (b: B) => Effect.Effect<C, E3, R3>
384
+ ): Push<A, E, R, Scope.Scope | C, E2 | E3, R2 | R3>
385
+ } = dual(2, function flatMapEffect<A, E, R, B, E2, R2, C, E3, R3>(
386
+ push: Push<A, E, R, B, E2, R2>,
387
+ f: (b: B) => Effect.Effect<C, E3, R3>
388
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope> {
389
389
  return make(
390
390
  push,
391
391
  core.flatMapEffect(push, f)
@@ -396,17 +396,17 @@ export const flatMapEffect: {
396
396
  * @since 1.20.0
397
397
  */
398
398
  export const exhaustMap: {
399
- <B, R3, E3, C>(f: (b: B) => Fx<R3, E3, C>): <R, E, A, R2, E2>(
400
- push: Push<R, E, A, R2, E2, B>
401
- ) => Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
402
- <R, E, A, R2, E2, B, R3, E3, C>(
403
- push: Push<R, E, A, R2, E2, B>,
404
- f: (b: B) => Fx<R3, E3, C>
405
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
406
- } = dual(2, function exhaustMap<R, E, A, R2, E2, B, R3, E3, C>(
407
- push: Push<R, E, A, R2, E2, B>,
408
- f: (b: B) => Fx<R3, E3, C>
409
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
399
+ <B, C, E3, R3>(f: (b: B) => Fx<C, E3, R3>): <A, E, R, E2, R2>(
400
+ push: Push<A, E, R, B, E2, R2>
401
+ ) => Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope>
402
+ <A, E, R, B, E2, R2, C, E3, R3>(
403
+ push: Push<A, E, R, B, E2, R2>,
404
+ f: (b: B) => Fx<C, E3, R3>
405
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope>
406
+ } = dual(2, function exhaustMap<A, E, R, B, E2, R2, C, E3, R3>(
407
+ push: Push<A, E, R, B, E2, R2>,
408
+ f: (b: B) => Fx<C, E3, R3>
409
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope> {
410
410
  return make(
411
411
  push,
412
412
  core.exhaustMap(push, f)
@@ -417,17 +417,17 @@ 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>(
421
- push: Push<R, E, A, R2, E2, B>
422
- ) => Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
423
- <R, E, A, R2, E2, B, R3, E3, C>(
424
- push: Push<R, E, A, R2, E2, B>,
425
- f: (b: B) => Effect.Effect<R3, E3, C>
426
- ): Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
427
- } = dual(2, function exhaustMapEffect<R, E, A, R2, E2, B, R3, E3, C>(
428
- push: Push<R, E, A, R2, E2, B>,
429
- f: (b: B) => Effect.Effect<R3, E3, C>
430
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
420
+ <B, C, E3, R3>(f: (b: B) => Effect.Effect<C, E3, R3>): <A, E, R, E2, R2>(
421
+ push: Push<A, E, R, B, E2, R2>
422
+ ) => Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope>
423
+ <A, E, R, B, E2, R2, C, E3, R3>(
424
+ push: Push<A, E, R, B, E2, R2>,
425
+ f: (b: B) => Effect.Effect<C, E3, R3>
426
+ ): Push<A, E, R, Scope.Scope | C, E2 | E3, R2 | R3>
427
+ } = dual(2, function exhaustMapEffect<A, E, R, B, E2, R2, C, E3, R3>(
428
+ push: Push<A, E, R, B, E2, R2>,
429
+ f: (b: B) => Effect.Effect<C, E3, R3>
430
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope> {
431
431
  return make(
432
432
  push,
433
433
  core.exhaustMapEffect(push, f)
@@ -438,17 +438,17 @@ export const exhaustMapEffect: {
438
438
  * @since 1.20.0
439
439
  */
440
440
  export const exhaustMapLatest: {
441
- <B, R3, E3, C>(f: (b: B) => Fx<R3, E3, C>): <R, E, A, R2, E2>(
442
- push: Push<R, E, A, R2, E2, B>
443
- ) => Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
444
- <R, E, A, R2, E2, B, R3, E3, C>(
445
- push: Push<R, E, A, R2, E2, B>,
446
- f: (b: B) => Fx<R3, E3, C>
447
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
448
- } = dual(2, function exhaustMapLatest<R, E, A, R2, E2, B, R3, E3, C>(
449
- push: Push<R, E, A, R2, E2, B>,
450
- f: (b: B) => Fx<R3, E3, C>
451
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
441
+ <B, C, E3, R3>(f: (b: B) => Fx<C, E3, R3>): <A, E, R, E2, R2>(
442
+ push: Push<A, E, R, B, E2, R2>
443
+ ) => Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope>
444
+ <A, E, R, B, E2, R2, C, E3, R3>(
445
+ push: Push<A, E, R, B, E2, R2>,
446
+ f: (b: B) => Fx<C, E3, R3>
447
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope>
448
+ } = dual(2, function exhaustMapLatest<A, E, R, B, E2, R2, C, E3, R3>(
449
+ push: Push<A, E, R, B, E2, R2>,
450
+ f: (b: B) => Fx<C, E3, R3>
451
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope> {
452
452
  return make(
453
453
  push,
454
454
  core.exhaustMapLatest(push, f)
@@ -459,17 +459,17 @@ 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>(
463
- push: Push<R, E, A, R2, E2, B>
464
- ) => Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C>
465
- <R, E, A, R2, E2, B, R3, E3, C>(
466
- push: Push<R, E, A, R2, E2, B>,
467
- f: (b: B) => Effect.Effect<R3, E3, C>
468
- ): Push<R, E, A, Scope.Scope | R2 | R3, E2 | E3, C>
469
- } = dual(2, function exhaustMapLatestEffect<R, E, A, R2, E2, B, R3, E3, C>(
470
- push: Push<R, E, A, R2, E2, B>,
471
- f: (b: B) => Effect.Effect<R3, E3, C>
472
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
462
+ <B, C, E3, R3>(f: (b: B) => Effect.Effect<C, E3, R3>): <A, E, R, E2, R2>(
463
+ push: Push<A, E, R, B, E2, R2>
464
+ ) => Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope>
465
+ <A, E, R, B, E2, R2, C, E3, R3>(
466
+ push: Push<A, E, R, B, E2, R2>,
467
+ f: (b: B) => Effect.Effect<C, E3, R3>
468
+ ): Push<A, E, R, Scope.Scope | C, E2 | E3, R2 | R3>
469
+ } = dual(2, function exhaustMapLatestEffect<A, E, R, B, E2, R2, C, E3, R3>(
470
+ push: Push<A, E, R, B, E2, R2>,
471
+ f: (b: B) => Effect.Effect<C, E3, R3>
472
+ ): Push<A, E, R, C, E2 | E3, R2 | R3 | Scope.Scope> {
473
473
  return make(
474
474
  push,
475
475
  core.exhaustMapLatestEffect(push, f)