@typed/fx 1.23.0 → 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 (145) 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/Match.js.map +1 -1
  7. package/dist/cjs/Pull.js +5 -3
  8. package/dist/cjs/Pull.js.map +1 -1
  9. package/dist/cjs/RefArray.js.map +1 -1
  10. package/dist/cjs/RefChunk.js.map +1 -1
  11. package/dist/cjs/RefHashSet.js.map +1 -1
  12. package/dist/cjs/RefSubject.js +3 -2
  13. package/dist/cjs/RefSubject.js.map +1 -1
  14. package/dist/cjs/Sink.js.map +1 -1
  15. package/dist/cjs/Subject.js.map +1 -1
  16. package/dist/cjs/Versioned.js.map +1 -1
  17. package/dist/cjs/internal/core.js.map +1 -1
  18. package/dist/cjs/internal/keyed.js.map +1 -1
  19. package/dist/cjs/internal/provide.js.map +1 -1
  20. package/dist/dts/AsyncData.d.ts +36 -36
  21. package/dist/dts/AsyncData.d.ts.map +1 -1
  22. package/dist/dts/Emitter.d.ts +2 -2
  23. package/dist/dts/Form.d.ts +6 -6
  24. package/dist/dts/Form.d.ts.map +1 -1
  25. package/dist/dts/FormEntry.d.ts +8 -8
  26. package/dist/dts/Fx.d.ts +414 -414
  27. package/dist/dts/Fx.d.ts.map +1 -1
  28. package/dist/dts/Guard.d.ts +21 -21
  29. package/dist/dts/Guard.d.ts.map +1 -1
  30. package/dist/dts/Idle.d.ts +3 -3
  31. package/dist/dts/Idle.d.ts.map +1 -1
  32. package/dist/dts/Match.d.ts +16 -16
  33. package/dist/dts/Match.d.ts.map +1 -1
  34. package/dist/dts/Pull.d.ts +5 -5
  35. package/dist/dts/Pull.d.ts.map +1 -1
  36. package/dist/dts/Push.d.ts +40 -40
  37. package/dist/dts/Push.d.ts.map +1 -1
  38. package/dist/dts/RefArray.d.ts +59 -59
  39. package/dist/dts/RefArray.d.ts.map +1 -1
  40. package/dist/dts/RefChunk.d.ts +45 -45
  41. package/dist/dts/RefChunk.d.ts.map +1 -1
  42. package/dist/dts/RefHashMap.d.ts +35 -35
  43. package/dist/dts/RefHashMap.d.ts.map +1 -1
  44. package/dist/dts/RefHashSet.d.ts +17 -17
  45. package/dist/dts/RefHashSet.d.ts.map +1 -1
  46. package/dist/dts/RefSubject.d.ts +127 -127
  47. package/dist/dts/RefSubject.d.ts.map +1 -1
  48. package/dist/dts/Sink.d.ts +60 -60
  49. package/dist/dts/Sink.d.ts.map +1 -1
  50. package/dist/dts/Stream.d.ts +11 -11
  51. package/dist/dts/Stream.d.ts.map +1 -1
  52. package/dist/dts/Subject.d.ts +10 -10
  53. package/dist/dts/Subject.d.ts.map +1 -1
  54. package/dist/dts/Typeclass.d.ts +1 -1
  55. package/dist/dts/Typeclass.d.ts.map +1 -1
  56. package/dist/dts/Versioned.d.ts +28 -28
  57. package/dist/dts/Versioned.d.ts.map +1 -1
  58. package/dist/dts/index.d.ts +1 -1
  59. package/dist/dts/internal/DeferredRef.d.ts +1 -1
  60. package/dist/dts/internal/DeferredRef.d.ts.map +1 -1
  61. package/dist/dts/internal/core.d.ts +191 -191
  62. package/dist/dts/internal/core.d.ts.map +1 -1
  63. package/dist/dts/internal/effect-loop-operator.d.ts +2 -2
  64. package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -1
  65. package/dist/dts/internal/effect-operator.d.ts +9 -9
  66. package/dist/dts/internal/effect-operator.d.ts.map +1 -1
  67. package/dist/dts/internal/effect-producer.d.ts +10 -10
  68. package/dist/dts/internal/effect-producer.d.ts.map +1 -1
  69. package/dist/dts/internal/helpers.d.ts +16 -16
  70. package/dist/dts/internal/helpers.d.ts.map +1 -1
  71. package/dist/dts/internal/keyed.d.ts +1 -1
  72. package/dist/dts/internal/keyed.d.ts.map +1 -1
  73. package/dist/dts/internal/loop-operator.d.ts +2 -2
  74. package/dist/dts/internal/loop-operator.d.ts.map +1 -1
  75. package/dist/dts/internal/operator.d.ts +2 -2
  76. package/dist/dts/internal/operator.d.ts.map +1 -1
  77. package/dist/dts/internal/protos.d.ts +7 -7
  78. package/dist/dts/internal/protos.d.ts.map +1 -1
  79. package/dist/dts/internal/provide.d.ts +10 -10
  80. package/dist/dts/internal/provide.d.ts.map +1 -1
  81. package/dist/dts/internal/share.d.ts +10 -10
  82. package/dist/dts/internal/share.d.ts.map +1 -1
  83. package/dist/dts/internal/sync-operator.d.ts +2 -2
  84. package/dist/dts/internal/sync-operator.d.ts.map +1 -1
  85. package/dist/dts/internal/sync-producer.d.ts +4 -4
  86. package/dist/dts/internal/sync-producer.d.ts.map +1 -1
  87. package/dist/dts/internal/withKey.d.ts +1 -1
  88. package/dist/dts/internal/withKey.d.ts.map +1 -1
  89. package/dist/esm/AsyncData.js.map +1 -1
  90. package/dist/esm/Form.js.map +1 -1
  91. package/dist/esm/FormEntry.js.map +1 -1
  92. package/dist/esm/Fx.js +1 -1
  93. package/dist/esm/Fx.js.map +1 -1
  94. package/dist/esm/Match.js.map +1 -1
  95. package/dist/esm/Pull.js +3 -3
  96. package/dist/esm/Pull.js.map +1 -1
  97. package/dist/esm/RefArray.js.map +1 -1
  98. package/dist/esm/RefChunk.js.map +1 -1
  99. package/dist/esm/RefHashSet.js.map +1 -1
  100. package/dist/esm/RefSubject.js +3 -1
  101. package/dist/esm/RefSubject.js.map +1 -1
  102. package/dist/esm/Sink.js.map +1 -1
  103. package/dist/esm/Subject.js.map +1 -1
  104. package/dist/esm/Versioned.js.map +1 -1
  105. package/dist/esm/index.js +1 -1
  106. package/dist/esm/internal/core.js.map +1 -1
  107. package/dist/esm/internal/keyed.js.map +1 -1
  108. package/dist/esm/internal/provide.js.map +1 -1
  109. package/package.json +2 -2
  110. package/src/AsyncData.ts +71 -73
  111. package/src/Emitter.ts +5 -5
  112. package/src/Form.ts +27 -27
  113. package/src/FormEntry.ts +29 -29
  114. package/src/Fx.ts +735 -734
  115. package/src/Guard.ts +39 -39
  116. package/src/Idle.ts +4 -4
  117. package/src/Match.ts +57 -58
  118. package/src/Pull.ts +35 -36
  119. package/src/Push.ts +170 -170
  120. package/src/RefArray.ts +114 -112
  121. package/src/RefChunk.ts +93 -92
  122. package/src/RefHashMap.ts +71 -71
  123. package/src/RefHashSet.ts +40 -39
  124. package/src/RefSubject.ts +437 -428
  125. package/src/Sink.ts +235 -235
  126. package/src/Stream.ts +20 -20
  127. package/src/Subject.ts +34 -32
  128. package/src/Typeclass.ts +2 -2
  129. package/src/Versioned.ts +75 -75
  130. package/src/index.ts +1 -1
  131. package/src/internal/DeferredRef.ts +1 -1
  132. package/src/internal/core.ts +688 -701
  133. package/src/internal/effect-loop-operator.ts +3 -3
  134. package/src/internal/effect-operator.ts +12 -12
  135. package/src/internal/effect-producer.ts +25 -25
  136. package/src/internal/helpers.ts +18 -18
  137. package/src/internal/keyed.ts +18 -18
  138. package/src/internal/loop-operator.ts +2 -2
  139. package/src/internal/operator.ts +2 -2
  140. package/src/internal/protos.ts +8 -8
  141. package/src/internal/provide.ts +19 -19
  142. package/src/internal/share.ts +22 -22
  143. package/src/internal/sync-operator.ts +4 -4
  144. package/src/internal/sync-producer.ts +6 -6
  145. 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,24 +36,24 @@ 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<unknown, never, R2 | R3> {
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
 
@@ -100,16 +100,16 @@ export const mapInput: {
100
100
  export const mapInputEffect: {
101
101
  <C, R3, E, A>(
102
102
  f: (c: C) => Effect.Effect<A, E, R3>
103
- ): <R, R2, E2, B>(push: Push<R, E, A, R2, E2, B>) => Push<R | R3, E, C, R2, E2, B>
103
+ ): <R, B, E2, R2>(push: Push<A, E, R, B, E2, R2>) => Push<C, E, R | R3, B, E2, R2>
104
104
 
105
- <R, E, A, R2, E2, B, R3, C>(
106
- push: Push<R, E, A, R2, E2, B>,
105
+ <A, E, R, B, E2, R2, R3, C>(
106
+ push: Push<A, E, R, B, E2, R2>,
107
107
  f: (c: C) => Effect.Effect<A, E, R3>
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>,
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
111
  f: (c: C) => Effect.Effect<A, E, R3>
112
- ): Push<R | R3, E, C, R2, E2, B> {
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<boolean, E, R3>): <R, R2, E2, B>(
142
- push: Push<R, E, A, R2, E2, B>
143
- ) => 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
144
 
145
- <R, E, A, R2, E2, B, R3>(
146
- push: Push<R, E, A, R2, E2, B>,
145
+ <A, E, R, B, E2, R2, R3>(
146
+ push: Push<A, E, R, B, E2, R2>,
147
147
  f: (a: A) => Effect.Effect<boolean, E, R3>
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>,
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
151
  f: (a: A) => Effect.Effect<boolean, E, R3>
152
- ): Push<R | R3, E, A, R2, E2, B> {
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<Option.Option<A>, E, R3>): <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>,
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
186
  f: (c: C) => Effect.Effect<Option.Option<A>, E, R3>
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>,
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
190
  f: (c: C) => Effect.Effect<Option.Option<A>, E, R3>
191
- ): Push<R | R3, E, C, R2, E2, B> {
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<C, E3, R3>): <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>,
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
223
  f: (b: B) => Effect.Effect<C, E3, R3>
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>,
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
227
  f: (b: B) => Effect.Effect<C, E3, R3>
228
- ): Push<R, E, A, R2 | R3, E2 | E3, C> {
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<boolean, E3, R3>): <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>,
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
260
  f: (b: B) => Effect.Effect<boolean, E3, R3>
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>,
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
264
  f: (b: B) => Effect.Effect<boolean, E3, R3>
265
- ): Push<R, E, A, R2 | R3, E2 | E3, B> {
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<Option.Option<C>, E3, R3>): <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>,
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
299
  f: (b: B) => Effect.Effect<Option.Option<C>, E3, R3>
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>,
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
303
  f: (b: B) => Effect.Effect<Option.Option<C>, E3, R3>
304
- ): Push<R, E, A, R2 | R3, E2 | E3, C> {
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<C, E3, R3>): <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>,
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
341
  f: (b: B) => Effect.Effect<C, E3, R3>
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>,
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
345
  f: (b: B) => Effect.Effect<C, E3, R3>
346
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
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<C, E3, R3>): <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>,
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
383
  f: (b: B) => Effect.Effect<C, E3, R3>
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>,
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
387
  f: (b: B) => Effect.Effect<C, E3, R3>
388
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
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<C, E3, R3>): <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>,
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
425
  f: (b: B) => Effect.Effect<C, E3, R3>
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>,
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
429
  f: (b: B) => Effect.Effect<C, E3, R3>
430
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
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<C, E3, R3>): <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>,
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
467
  f: (b: B) => Effect.Effect<C, E3, R3>
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>,
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
471
  f: (b: B) => Effect.Effect<C, E3, R3>
472
- ): Push<R, E, A, R2 | R3 | Scope.Scope, E2 | E3, C> {
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)