effect 2.3.8 → 2.4.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 (272) hide show
  1. package/dist/cjs/BigInt.js +14 -1
  2. package/dist/cjs/BigInt.js.map +1 -1
  3. package/dist/cjs/Effect.js +16 -61
  4. package/dist/cjs/Effect.js.map +1 -1
  5. package/dist/cjs/Either.js +35 -6
  6. package/dist/cjs/Either.js.map +1 -1
  7. package/dist/cjs/Equal.js +1 -1
  8. package/dist/cjs/Equal.js.map +1 -1
  9. package/dist/cjs/Exit.js +1 -1
  10. package/dist/cjs/Number.js +25 -1
  11. package/dist/cjs/Number.js.map +1 -1
  12. package/dist/cjs/ReadonlyArray.js +2 -2
  13. package/dist/cjs/ReadonlyArray.js.map +1 -1
  14. package/dist/cjs/ReadonlyRecord.js +71 -76
  15. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  16. package/dist/cjs/STM.js.map +1 -1
  17. package/dist/cjs/Schedule.js.map +1 -1
  18. package/dist/cjs/Sink.js.map +1 -1
  19. package/dist/cjs/Stream.js +3 -23
  20. package/dist/cjs/Stream.js.map +1 -1
  21. package/dist/cjs/Struct.js +3 -1
  22. package/dist/cjs/Struct.js.map +1 -1
  23. package/dist/cjs/TestAnnotation.js.map +1 -1
  24. package/dist/cjs/internal/channel/channelExecutor.js +5 -5
  25. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  26. package/dist/cjs/internal/channel/channelState.js +5 -5
  27. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  28. package/dist/cjs/internal/channel.js.map +1 -1
  29. package/dist/cjs/internal/clock.js +3 -4
  30. package/dist/cjs/internal/clock.js.map +1 -1
  31. package/dist/cjs/internal/core-effect.js +6 -23
  32. package/dist/cjs/internal/core-effect.js.map +1 -1
  33. package/dist/cjs/internal/core.js +11 -27
  34. package/dist/cjs/internal/core.js.map +1 -1
  35. package/dist/cjs/internal/effect/circular.js +4 -5
  36. package/dist/cjs/internal/effect/circular.js.map +1 -1
  37. package/dist/cjs/internal/either.js +3 -3
  38. package/dist/cjs/internal/either.js.map +1 -1
  39. package/dist/cjs/internal/groupBy.js.map +1 -1
  40. package/dist/cjs/internal/layer.js +0 -2
  41. package/dist/cjs/internal/layer.js.map +1 -1
  42. package/dist/cjs/internal/runtime.js +12 -1
  43. package/dist/cjs/internal/runtime.js.map +1 -1
  44. package/dist/cjs/internal/schedule.js +4 -4
  45. package/dist/cjs/internal/schedule.js.map +1 -1
  46. package/dist/cjs/internal/sink.js +0 -2
  47. package/dist/cjs/internal/sink.js.map +1 -1
  48. package/dist/cjs/internal/stm/stm.js +1 -0
  49. package/dist/cjs/internal/stm/stm.js.map +1 -1
  50. package/dist/cjs/internal/stream.js +51 -64
  51. package/dist/cjs/internal/stream.js.map +1 -1
  52. package/dist/cjs/internal/version.js +1 -1
  53. package/dist/dts/BigInt.d.ts +7 -0
  54. package/dist/dts/BigInt.d.ts.map +1 -1
  55. package/dist/dts/Brand.d.ts +1 -1
  56. package/dist/dts/Brand.d.ts.map +1 -1
  57. package/dist/dts/Cause.d.ts +1 -1
  58. package/dist/dts/Cause.d.ts.map +1 -1
  59. package/dist/dts/Channel.d.ts +11 -11
  60. package/dist/dts/Channel.d.ts.map +1 -1
  61. package/dist/dts/Chunk.d.ts +3 -3
  62. package/dist/dts/Config.d.ts +4 -4
  63. package/dist/dts/Config.d.ts.map +1 -1
  64. package/dist/dts/Cron.d.ts +1 -1
  65. package/dist/dts/Cron.d.ts.map +1 -1
  66. package/dist/dts/Differ.d.ts +2 -2
  67. package/dist/dts/Differ.d.ts.map +1 -1
  68. package/dist/dts/Effect.d.ts +52 -108
  69. package/dist/dts/Effect.d.ts.map +1 -1
  70. package/dist/dts/Either.d.ts +126 -83
  71. package/dist/dts/Either.d.ts.map +1 -1
  72. package/dist/dts/Encoding.d.ts +6 -6
  73. package/dist/dts/Encoding.d.ts.map +1 -1
  74. package/dist/dts/Equal.d.ts.map +1 -1
  75. package/dist/dts/Exit.d.ts +2 -2
  76. package/dist/dts/Fiber.d.ts +2 -2
  77. package/dist/dts/Fiber.d.ts.map +1 -1
  78. package/dist/dts/GroupBy.d.ts +12 -12
  79. package/dist/dts/GroupBy.d.ts.map +1 -1
  80. package/dist/dts/Layer.d.ts +26 -26
  81. package/dist/dts/Layer.d.ts.map +1 -1
  82. package/dist/dts/List.d.ts +2 -2
  83. package/dist/dts/Logger.d.ts +4 -4
  84. package/dist/dts/Match.d.ts +2 -2
  85. package/dist/dts/Match.d.ts.map +1 -1
  86. package/dist/dts/MergeDecision.d.ts +1 -1
  87. package/dist/dts/MergeState.d.ts +5 -5
  88. package/dist/dts/MergeState.d.ts.map +1 -1
  89. package/dist/dts/Metric.d.ts +13 -13
  90. package/dist/dts/Metric.d.ts.map +1 -1
  91. package/dist/dts/MetricPolling.d.ts +4 -4
  92. package/dist/dts/MetricPolling.d.ts.map +1 -1
  93. package/dist/dts/Number.d.ts +8 -0
  94. package/dist/dts/Number.d.ts.map +1 -1
  95. package/dist/dts/Option.d.ts +11 -11
  96. package/dist/dts/ReadonlyArray.d.ts +9 -8
  97. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  98. package/dist/dts/ReadonlyRecord.d.ts +111 -94
  99. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  100. package/dist/dts/Reloadable.d.ts +4 -4
  101. package/dist/dts/Reloadable.d.ts.map +1 -1
  102. package/dist/dts/RequestResolver.d.ts +13 -13
  103. package/dist/dts/RequestResolver.d.ts.map +1 -1
  104. package/dist/dts/Resource.d.ts +1 -1
  105. package/dist/dts/Resource.d.ts.map +1 -1
  106. package/dist/dts/STM.d.ts +144 -139
  107. package/dist/dts/STM.d.ts.map +1 -1
  108. package/dist/dts/Schedule.d.ts +171 -179
  109. package/dist/dts/Schedule.d.ts.map +1 -1
  110. package/dist/dts/SingleProducerAsyncInput.d.ts +1 -1
  111. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  112. package/dist/dts/Sink.d.ts +13 -13
  113. package/dist/dts/Sink.d.ts.map +1 -1
  114. package/dist/dts/Stream.d.ts +355 -366
  115. package/dist/dts/Stream.d.ts.map +1 -1
  116. package/dist/dts/Struct.d.ts +3 -3
  117. package/dist/dts/Struct.d.ts.map +1 -1
  118. package/dist/dts/SubscriptionRef.d.ts +2 -2
  119. package/dist/dts/TArray.d.ts +2 -2
  120. package/dist/dts/TDeferred.d.ts +3 -3
  121. package/dist/dts/TMap.d.ts +10 -10
  122. package/dist/dts/TSet.d.ts +4 -4
  123. package/dist/dts/Take.d.ts +2 -2
  124. package/dist/dts/TestAnnotation.d.ts +2 -2
  125. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  126. package/dist/dts/Types.d.ts +7 -0
  127. package/dist/dts/Types.d.ts.map +1 -1
  128. package/dist/dts/internal/stm/stm.d.ts +2 -15
  129. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  130. package/dist/esm/BigInt.js +12 -0
  131. package/dist/esm/BigInt.js.map +1 -1
  132. package/dist/esm/Effect.js +13 -58
  133. package/dist/esm/Effect.js.map +1 -1
  134. package/dist/esm/Either.js +42 -5
  135. package/dist/esm/Either.js.map +1 -1
  136. package/dist/esm/Equal.js +1 -1
  137. package/dist/esm/Equal.js.map +1 -1
  138. package/dist/esm/Exit.js +1 -1
  139. package/dist/esm/Number.js +23 -0
  140. package/dist/esm/Number.js.map +1 -1
  141. package/dist/esm/ReadonlyArray.js +2 -2
  142. package/dist/esm/ReadonlyArray.js.map +1 -1
  143. package/dist/esm/ReadonlyRecord.js +70 -75
  144. package/dist/esm/ReadonlyRecord.js.map +1 -1
  145. package/dist/esm/STM.js.map +1 -1
  146. package/dist/esm/Schedule.js.map +1 -1
  147. package/dist/esm/Sink.js.map +1 -1
  148. package/dist/esm/Stream.js +5 -22
  149. package/dist/esm/Stream.js.map +1 -1
  150. package/dist/esm/Struct.js +3 -1
  151. package/dist/esm/Struct.js.map +1 -1
  152. package/dist/esm/TestAnnotation.js.map +1 -1
  153. package/dist/esm/internal/channel/channelExecutor.js +5 -5
  154. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  155. package/dist/esm/internal/channel/channelState.js +3 -3
  156. package/dist/esm/internal/channel/channelState.js.map +1 -1
  157. package/dist/esm/internal/channel.js.map +1 -1
  158. package/dist/esm/internal/clock.js +3 -4
  159. package/dist/esm/internal/clock.js.map +1 -1
  160. package/dist/esm/internal/core-effect.js +4 -20
  161. package/dist/esm/internal/core-effect.js.map +1 -1
  162. package/dist/esm/internal/core.js +8 -22
  163. package/dist/esm/internal/core.js.map +1 -1
  164. package/dist/esm/internal/effect/circular.js +4 -5
  165. package/dist/esm/internal/effect/circular.js.map +1 -1
  166. package/dist/esm/internal/either.js +3 -3
  167. package/dist/esm/internal/either.js.map +1 -1
  168. package/dist/esm/internal/groupBy.js.map +1 -1
  169. package/dist/esm/internal/layer.js +0 -2
  170. package/dist/esm/internal/layer.js.map +1 -1
  171. package/dist/esm/internal/runtime.js +12 -1
  172. package/dist/esm/internal/runtime.js.map +1 -1
  173. package/dist/esm/internal/schedule.js +4 -4
  174. package/dist/esm/internal/schedule.js.map +1 -1
  175. package/dist/esm/internal/sink.js +0 -2
  176. package/dist/esm/internal/sink.js.map +1 -1
  177. package/dist/esm/internal/stm/stm.js +1 -0
  178. package/dist/esm/internal/stm/stm.js.map +1 -1
  179. package/dist/esm/internal/stream.js +49 -59
  180. package/dist/esm/internal/stream.js.map +1 -1
  181. package/dist/esm/internal/version.js +1 -1
  182. package/package.json +1 -1
  183. package/src/BigInt.ts +13 -0
  184. package/src/Brand.ts +4 -4
  185. package/src/Cause.ts +1 -1
  186. package/src/Channel.ts +17 -17
  187. package/src/Chunk.ts +4 -4
  188. package/src/Config.ts +4 -4
  189. package/src/Cron.ts +2 -2
  190. package/src/Differ.ts +2 -2
  191. package/src/Effect.ts +68 -145
  192. package/src/Either.ts +215 -133
  193. package/src/Encoding.ts +3 -3
  194. package/src/Equal.ts +1 -1
  195. package/src/Exit.ts +2 -2
  196. package/src/Fiber.ts +2 -2
  197. package/src/GroupBy.ts +16 -16
  198. package/src/Layer.ts +32 -32
  199. package/src/List.ts +3 -3
  200. package/src/Logger.ts +4 -4
  201. package/src/Match.ts +3 -3
  202. package/src/MergeDecision.ts +1 -1
  203. package/src/MergeState.ts +8 -8
  204. package/src/Metric.ts +13 -13
  205. package/src/MetricPolling.ts +9 -9
  206. package/src/Number.ts +26 -0
  207. package/src/Option.ts +17 -17
  208. package/src/ReadonlyArray.ts +23 -15
  209. package/src/ReadonlyRecord.ts +421 -265
  210. package/src/Reloadable.ts +4 -4
  211. package/src/RequestResolver.ts +19 -19
  212. package/src/Resource.ts +3 -3
  213. package/src/STM.ts +166 -213
  214. package/src/Schedule.ts +331 -361
  215. package/src/SingleProducerAsyncInput.ts +1 -1
  216. package/src/Sink.ts +19 -19
  217. package/src/Stream.ts +449 -456
  218. package/src/Struct.ts +8 -5
  219. package/src/SubscriptionRef.ts +2 -2
  220. package/src/TArray.ts +2 -2
  221. package/src/TDeferred.ts +4 -4
  222. package/src/TMap.ts +10 -10
  223. package/src/TSet.ts +4 -4
  224. package/src/Take.ts +4 -4
  225. package/src/TestAnnotation.ts +5 -8
  226. package/src/Types.ts +11 -0
  227. package/src/internal/blockedRequests.ts +2 -2
  228. package/src/internal/cause.ts +2 -2
  229. package/src/internal/channel/channelExecutor.ts +26 -26
  230. package/src/internal/channel/channelState.ts +13 -13
  231. package/src/internal/channel/mergeDecision.ts +1 -1
  232. package/src/internal/channel/mergeState.ts +6 -6
  233. package/src/internal/channel/singleProducerAsyncInput.ts +5 -5
  234. package/src/internal/channel.ts +43 -43
  235. package/src/internal/clock.ts +3 -4
  236. package/src/internal/config.ts +7 -7
  237. package/src/internal/configError.ts +1 -1
  238. package/src/internal/configProvider/pathPatch.ts +2 -2
  239. package/src/internal/configProvider.ts +1 -1
  240. package/src/internal/core-effect.ts +28 -43
  241. package/src/internal/core.ts +15 -40
  242. package/src/internal/dataSource.ts +26 -26
  243. package/src/internal/differ/orPatch.ts +7 -7
  244. package/src/internal/differ.ts +2 -2
  245. package/src/internal/effect/circular.ts +9 -10
  246. package/src/internal/either.ts +25 -22
  247. package/src/internal/encoding/base64.ts +1 -1
  248. package/src/internal/encoding/base64Url.ts +1 -1
  249. package/src/internal/encoding/hex.ts +1 -1
  250. package/src/internal/fiber.ts +2 -2
  251. package/src/internal/fiberRuntime.ts +9 -9
  252. package/src/internal/groupBy.ts +40 -40
  253. package/src/internal/layer/circular.ts +4 -4
  254. package/src/internal/layer.ts +52 -54
  255. package/src/internal/matcher.ts +5 -5
  256. package/src/internal/metric/polling.ts +8 -8
  257. package/src/internal/metric.ts +6 -6
  258. package/src/internal/reloadable.ts +4 -4
  259. package/src/internal/resource.ts +2 -2
  260. package/src/internal/runtime.ts +32 -19
  261. package/src/internal/schedule.ts +430 -500
  262. package/src/internal/sink.ts +27 -29
  263. package/src/internal/stm/core.ts +23 -23
  264. package/src/internal/stm/stm.ts +158 -157
  265. package/src/internal/stm/tArray.ts +3 -3
  266. package/src/internal/stm/tDeferred.ts +5 -5
  267. package/src/internal/stm/tMap.ts +13 -13
  268. package/src/internal/stm/tSet.ts +4 -4
  269. package/src/internal/stream.ts +688 -723
  270. package/src/internal/subscriptionRef.ts +3 -3
  271. package/src/internal/take.ts +6 -6
  272. package/src/internal/version.ts +1 -1
@@ -10,8 +10,8 @@ import * as Either from "../Either.js"
10
10
  import * as Equal from "../Equal.js"
11
11
  import * as Exit from "../Exit.js"
12
12
  import * as Fiber from "../Fiber.js"
13
- import { constTrue, dual, identity, pipe } from "../Function.js"
14
13
  import type { LazyArg } from "../Function.js"
14
+ import { constTrue, dual, identity, pipe } from "../Function.js"
15
15
  import * as Layer from "../Layer.js"
16
16
  import * as MergeDecision from "../MergeDecision.js"
17
17
  import * as Option from "../Option.js"
@@ -31,7 +31,7 @@ import * as HaltStrategy from "../StreamHaltStrategy.js"
31
31
  import type * as Take from "../Take.js"
32
32
  import type * as Tracer from "../Tracer.js"
33
33
  import * as Tuple from "../Tuple.js"
34
- import type { NoInfer } from "../Types.js"
34
+ import type { MergeRecord, NoInfer } from "../Types.js"
35
35
  import * as channel from "./channel.js"
36
36
  import * as channelExecutor from "./channel/channelExecutor.js"
37
37
  import * as MergeStrategy from "./channel/mergeStrategy.js"
@@ -48,7 +48,7 @@ import * as pull from "./stream/pull.js"
48
48
  import * as SinkEndReason from "./stream/sinkEndReason.js"
49
49
  import * as ZipAllState from "./stream/zipAllState.js"
50
50
  import * as ZipChunksState from "./stream/zipChunksState.js"
51
- import * as _take from "./take.js"
51
+ import * as InternalTake from "./take.js"
52
52
 
53
53
  /** @internal */
54
54
  const StreamSymbolKey = "effect/Stream"
@@ -109,9 +109,9 @@ export const accumulateChunks = <A, E, R>(self: Stream.Stream<A, E, R>): Stream.
109
109
  }
110
110
 
111
111
  /** @internal */
112
- export const acquireRelease = <A, E, R, R2, _>(
112
+ export const acquireRelease = <A, E, R, R2, X>(
113
113
  acquire: Effect.Effect<A, E, R>,
114
- release: (resource: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<_, never, R2>
114
+ release: (resource: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<X, never, R2>
115
115
  ): Stream.Stream<A, E, R | R2> => scoped(Effect.acquireRelease(acquire, release))
116
116
 
117
117
  /** @internal */
@@ -133,21 +133,21 @@ export const aggregate = dual<
133
133
 
134
134
  /** @internal */
135
135
  export const aggregateWithin = dual<
136
- <B, A, A2, E2, R2, R3, C>(
136
+ <B, A, A2, E2, R2, C, R3>(
137
137
  sink: Sink.Sink<B, A | A2, A2, E2, R2>,
138
- schedule: Schedule.Schedule<R3, Option.Option<B>, C>
138
+ schedule: Schedule.Schedule<C, Option.Option<B>, R3>
139
139
  ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E2 | E, R2 | R3 | R>,
140
- <A, E, R, B, A2, E2, R2, R3, C>(
140
+ <A, E, R, B, A2, E2, R2, C, R3>(
141
141
  self: Stream.Stream<A, E, R>,
142
142
  sink: Sink.Sink<B, A | A2, A2, E2, R2>,
143
- schedule: Schedule.Schedule<R3, Option.Option<B>, C>
143
+ schedule: Schedule.Schedule<C, Option.Option<B>, R3>
144
144
  ) => Stream.Stream<B, E2 | E, R2 | R3 | R>
145
145
  >(
146
146
  3,
147
- <A, E, R, B, A2, E2, R2, R3, C>(
147
+ <A, E, R, B, A2, E2, R2, C, R3>(
148
148
  self: Stream.Stream<A, E, R>,
149
149
  sink: Sink.Sink<B, A | A2, A2, E2, R2>,
150
- schedule: Schedule.Schedule<R3, Option.Option<B>, C>
150
+ schedule: Schedule.Schedule<C, Option.Option<B>, R3>
151
151
  ): Stream.Stream<B, E2 | E, R2 | R3 | R> =>
152
152
  filterMap(
153
153
  aggregateWithinEither(self, sink, schedule),
@@ -161,22 +161,22 @@ export const aggregateWithin = dual<
161
161
 
162
162
  /** @internal */
163
163
  export const aggregateWithinEither = dual<
164
- <B, A, A2, E2, R2, R3, C>(
164
+ <B, A, A2, E2, R2, C, R3>(
165
165
  sink: Sink.Sink<B, A | A2, A2, E2, R2>,
166
- schedule: Schedule.Schedule<R3, Option.Option<B>, C>
167
- ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<Either.Either<C, B>, E2 | E, R2 | R3 | R>,
168
- <A, E, R, B, A2, E2, R2, R3, C>(
166
+ schedule: Schedule.Schedule<C, Option.Option<B>, R3>
167
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<Either.Either<B, C>, E2 | E, R2 | R3 | R>,
168
+ <A, E, R, B, A2, E2, R2, C, R3>(
169
169
  self: Stream.Stream<A, E, R>,
170
170
  sink: Sink.Sink<B, A | A2, A2, E2, R2>,
171
- schedule: Schedule.Schedule<R3, Option.Option<B>, C>
172
- ) => Stream.Stream<Either.Either<C, B>, E2 | E, R2 | R3 | R>
171
+ schedule: Schedule.Schedule<C, Option.Option<B>, R3>
172
+ ) => Stream.Stream<Either.Either<B, C>, E2 | E, R2 | R3 | R>
173
173
  >(
174
174
  3,
175
- <A, E, R, B, A2, E2, R2, R3, C>(
175
+ <A, E, R, B, A2, E2, R2, C, R3>(
176
176
  self: Stream.Stream<A, E, R>,
177
177
  sink: Sink.Sink<B, A | A2, A2, E2, R2>,
178
- schedule: Schedule.Schedule<R3, Option.Option<B>, C>
179
- ): Stream.Stream<Either.Either<C, B>, E2 | E, R2 | R3 | R> => {
178
+ schedule: Schedule.Schedule<C, Option.Option<B>, R3>
179
+ ): Stream.Stream<Either.Either<B, C>, E2 | E, R2 | R3 | R> => {
180
180
  const layer = Effect.all([
181
181
  Handoff.make<HandoffSignal.HandoffSignal<A, E | E2>>(),
182
182
  Ref.make<SinkEndReason.SinkEndReason>(SinkEndReason.ScheduleEnd),
@@ -284,7 +284,7 @@ export const aggregateWithinEither = dual<
284
284
  sinkFiber: Fiber.RuntimeFiber<readonly [Chunk.Chunk<Chunk.Chunk<A | A2>>, B], E | E2>,
285
285
  scheduleFiber: Fiber.RuntimeFiber<C, Option.Option<never>>,
286
286
  scope: Scope.Scope
287
- ): Channel.Channel<Chunk.Chunk<Either.Either<C, B>>, unknown, E | E2, unknown, unknown, unknown, R2 | R3> => {
287
+ ): Channel.Channel<Chunk.Chunk<Either.Either<B, C>>, unknown, E | E2, unknown, unknown, unknown, R2 | R3> => {
288
288
  const forkSink = pipe(
289
289
  Ref.set(consumed, false),
290
290
  Effect.zipRight(Ref.set(endAfterEmit, false)),
@@ -302,7 +302,7 @@ export const aggregateWithinEither = dual<
302
302
  leftovers: Chunk.Chunk<Chunk.Chunk<A | A2>>,
303
303
  b: B,
304
304
  c: Option.Option<C>
305
- ): Channel.Channel<Chunk.Chunk<Either.Either<C, B>>, unknown, E | E2, unknown, unknown, unknown, R2 | R3> =>
305
+ ): Channel.Channel<Chunk.Chunk<Either.Either<B, C>>, unknown, E | E2, unknown, unknown, unknown, R2 | R3> =>
306
306
  pipe(
307
307
  Ref.set(sinkLeftovers, Chunk.flatten(leftovers)),
308
308
  Effect.zipRight(
@@ -319,8 +319,8 @@ export const aggregateWithinEither = dual<
319
319
  const toWrite = pipe(
320
320
  c,
321
321
  Option.match({
322
- onNone: (): Chunk.Chunk<Either.Either<C, B>> => Chunk.of(Either.right(b)),
323
- onSome: (c): Chunk.Chunk<Either.Either<C, B>> =>
322
+ onNone: (): Chunk.Chunk<Either.Either<B, C>> => Chunk.of(Either.right(b)),
323
+ onSome: (c): Chunk.Chunk<Either.Either<B, C>> =>
324
324
  Chunk.make(Either.right(b), Either.left(c))
325
325
  })
326
326
  )
@@ -340,7 +340,7 @@ export const aggregateWithinEither = dual<
340
340
  Ref.get(consumed),
341
341
  Effect.map((wasConsumed) =>
342
342
  wasConsumed ?
343
- core.write(Chunk.of<Either.Either<C, B>>(Either.right(b))) :
343
+ core.write(Chunk.of<Either.Either<B, C>>(Either.right(b))) :
344
344
  core.unit
345
345
  ),
346
346
  channel.unwrap
@@ -456,18 +456,62 @@ export const aggregateWithinEither = dual<
456
456
  /** @internal */
457
457
  export const as = dual<
458
458
  <B>(value: B) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>,
459
- <R, E, A, B>(self: Stream.Stream<A, E, R>, value: B) => Stream.Stream<B, E, R>
460
- >(2, <R, E, A, B>(self: Stream.Stream<A, E, R>, value: B): Stream.Stream<B, E, R> => map(self, () => value))
459
+ <A, E, R, B>(self: Stream.Stream<A, E, R>, value: B) => Stream.Stream<B, E, R>
460
+ >(2, <A, E, R, B>(self: Stream.Stream<A, E, R>, value: B): Stream.Stream<B, E, R> => map(self, () => value))
461
461
 
462
462
  /** @internal */
463
463
  export const _async = <A, E = never, R = never>(
464
- register: (emit: Emit.Emit<R, E, A, void>) => void,
464
+ register: (
465
+ emit: Emit.Emit<R, E, A, void>
466
+ ) => Effect.Effect<void, never, R> | void,
465
467
  outputBuffer = 16
466
468
  ): Stream.Stream<A, E, R> =>
467
- asyncOption((cb) => {
468
- register(cb)
469
- return Option.none()
470
- }, outputBuffer)
469
+ Effect.acquireRelease(
470
+ Queue.bounded<Take.Take<A, E>>(outputBuffer),
471
+ (queue) => Queue.shutdown(queue)
472
+ ).pipe(
473
+ Effect.flatMap((output) =>
474
+ Effect.runtime<R>().pipe(
475
+ Effect.flatMap((runtime) =>
476
+ Effect.sync(() => {
477
+ const runPromiseExit = Runtime.runPromiseExit(runtime)
478
+ const canceler = register(emit.make<R, E, A, void>((resume) =>
479
+ InternalTake.fromPull(resume).pipe(
480
+ Effect.flatMap((take) => Queue.offer(output, take)),
481
+ Effect.asUnit,
482
+ runPromiseExit
483
+ ).then((exit) => {
484
+ if (Exit.isFailure(exit)) {
485
+ if (!Cause.isInterrupted(exit.cause)) {
486
+ throw Cause.squash(exit.cause)
487
+ }
488
+ }
489
+ })
490
+ ))
491
+ return canceler
492
+ })
493
+ ),
494
+ Effect.map((value) => {
495
+ const loop: Channel.Channel<Chunk.Chunk<A>, unknown, E, unknown, void, unknown> = Queue.take(output).pipe(
496
+ Effect.flatMap((take) => InternalTake.done(take)),
497
+ Effect.match({
498
+ onFailure: (maybeError) =>
499
+ core.fromEffect(Queue.shutdown(output)).pipe(
500
+ channel.zipRight(Option.match(maybeError, {
501
+ onNone: () => core.unit,
502
+ onSome: (error) => core.fail(error)
503
+ }))
504
+ ),
505
+ onSuccess: (chunk) => core.write(chunk).pipe(core.flatMap(() => loop))
506
+ }),
507
+ channel.unwrap
508
+ )
509
+ return fromChannel(loop).pipe(ensuring(value ?? Effect.unit))
510
+ })
511
+ )
512
+ ),
513
+ unwrapScoped
514
+ )
471
515
 
472
516
  /** @internal */
473
517
  export const asyncEffect = <A, E = never, R = never>(
@@ -487,7 +531,7 @@ export const asyncEffect = <A, E = never, R = never>(
487
531
  register(
488
532
  emit.make((k) =>
489
533
  pipe(
490
- _take.fromPull(k),
534
+ InternalTake.fromPull(k),
491
535
  Effect.flatMap((take) => Queue.offer(output, take)),
492
536
  Effect.asUnit,
493
537
  Runtime.runPromiseExit(runtime)
@@ -503,7 +547,7 @@ export const asyncEffect = <A, E = never, R = never>(
503
547
  Effect.map(() => {
504
548
  const loop: Channel.Channel<Chunk.Chunk<A>, unknown, E, unknown, void, unknown> = pipe(
505
549
  Queue.take(output),
506
- Effect.flatMap(_take.done),
550
+ Effect.flatMap(InternalTake.done),
507
551
  Effect.match({
508
552
  onFailure: (maybeError) =>
509
553
  pipe(
@@ -524,84 +568,6 @@ export const asyncEffect = <A, E = never, R = never>(
524
568
  fromChannel
525
569
  )
526
570
 
527
- /** @internal */
528
- export const asyncInterrupt = <A, E = never, R = never>(
529
- register: (
530
- emit: Emit.Emit<R, E, A, void>
531
- ) => Either.Either<Effect.Effect<unknown, never, R>, Stream.Stream<A, E, R>>,
532
- outputBuffer = 16
533
- ): Stream.Stream<A, E, R> =>
534
- pipe(
535
- Effect.acquireRelease(
536
- Queue.bounded<Take.Take<A, E>>(outputBuffer),
537
- (queue) => Queue.shutdown(queue)
538
- ),
539
- Effect.flatMap((output) =>
540
- pipe(
541
- Effect.runtime<R>(),
542
- Effect.flatMap((runtime) =>
543
- pipe(
544
- Effect.sync(() =>
545
- register(
546
- emit.make((k) =>
547
- pipe(
548
- _take.fromPull(k),
549
- Effect.flatMap((take) => Queue.offer(output, take)),
550
- Effect.asUnit,
551
- Runtime.runPromiseExit(runtime)
552
- ).then((exit) => {
553
- if (Exit.isFailure(exit)) {
554
- if (!Cause.isInterrupted(exit.cause)) {
555
- throw Cause.squash(exit.cause)
556
- }
557
- }
558
- })
559
- )
560
- )
561
- ),
562
- Effect.map(Either.match({
563
- onLeft: (canceler) => {
564
- const loop: Channel.Channel<Chunk.Chunk<A>, unknown, E, unknown, void, unknown> = pipe(
565
- Queue.take(output),
566
- Effect.flatMap(_take.done),
567
- Effect.match({
568
- onFailure: (maybeError) =>
569
- channel.zipRight(
570
- core.fromEffect(Queue.shutdown(output)),
571
- Option.match(maybeError, {
572
- onNone: () => core.unit,
573
- onSome: core.fail
574
- })
575
- ),
576
- onSuccess: (chunk) => pipe(core.write(chunk), core.flatMap(() => loop))
577
- }),
578
- channel.unwrap
579
- )
580
- return pipe(fromChannel(loop), ensuring(canceler))
581
- },
582
- onRight: (stream) => unwrap(pipe(Queue.shutdown(output), Effect.as(stream)))
583
- }))
584
- )
585
- )
586
- )
587
- ),
588
- unwrapScoped
589
- )
590
-
591
- /** @internal */
592
- export const asyncOption = <A, E = never, R = never>(
593
- register: (emit: Emit.Emit<R, E, A, void>) => Option.Option<Stream.Stream<A, E, R>>,
594
- outputBuffer = 16
595
- ): Stream.Stream<A, E, R> =>
596
- asyncInterrupt(
597
- (emit) =>
598
- Option.match(register(emit), {
599
- onNone: () => Either.left(Effect.unit),
600
- onSome: Either.right
601
- }),
602
- outputBuffer
603
- )
604
-
605
571
  /** @internal */
606
572
  export const asyncScoped = <A, E = never, R = never>(
607
573
  register: (emit: Emit.Emit<R, E, A, void>) => Effect.Effect<unknown, E, R | Scope.Scope>,
@@ -620,7 +586,7 @@ export const asyncScoped = <A, E = never, R = never>(
620
586
  register(
621
587
  emit.make((k) =>
622
588
  pipe(
623
- _take.fromPull(k),
589
+ InternalTake.fromPull(k),
624
590
  Effect.flatMap((take) => Queue.offer(output, take)),
625
591
  Effect.asUnit,
626
592
  Runtime.runPromiseExit(runtime)
@@ -642,7 +608,7 @@ export const asyncScoped = <A, E = never, R = never>(
642
608
  pull.end() :
643
609
  pipe(
644
610
  Queue.take(output),
645
- Effect.flatMap(_take.done),
611
+ Effect.flatMap(InternalTake.done),
646
612
  Effect.onError(() =>
647
613
  pipe(
648
614
  Ref.set(ref, true),
@@ -666,15 +632,15 @@ export const branchAfter = dual<
666
632
  <A, A2, E2, R2>(
667
633
  n: number,
668
634
  f: (input: Chunk.Chunk<A>) => Stream.Stream<A2, E2, R2>
669
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
670
- <A, E, R, R2, E2, A2>(
635
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
636
+ <A, E, R, A2, E2, R2>(
671
637
  self: Stream.Stream<A, E, R>,
672
638
  n: number,
673
639
  f: (input: Chunk.Chunk<A>) => Stream.Stream<A2, E2, R2>
674
640
  ) => Stream.Stream<A2, E2 | E, R2 | R>
675
641
  >(
676
642
  3,
677
- <A, E, R, R2, E2, A2>(
643
+ <A, E, R, A2, E2, R2>(
678
644
  self: Stream.Stream<A, E, R>,
679
645
  n: number,
680
646
  f: (input: Chunk.Chunk<A>) => Stream.Stream<A2, E2, R2>
@@ -884,7 +850,7 @@ export const bufferChunks = dual<
884
850
  Effect.map(queue, (queue) => {
885
851
  const process: Channel.Channel<Chunk.Chunk<A>, unknown, E, unknown, void, unknown> = pipe(
886
852
  core.fromEffect(Queue.take(queue)),
887
- core.flatMap(_take.match({
853
+ core.flatMap(InternalTake.match({
888
854
  onEnd: () => core.unit,
889
855
  onFailure: core.failCause,
890
856
  onSuccess: (value) => pipe(core.write(value), core.flatMap(() => process))
@@ -947,7 +913,7 @@ const bufferUnbounded = <A, E, R>(self: Stream.Stream<A, E, R>): Stream.Stream<A
947
913
  Effect.map(queue, (queue) => {
948
914
  const process: Channel.Channel<Chunk.Chunk<A>, unknown, E, unknown, void, unknown> = pipe(
949
915
  core.fromEffect(Queue.take(queue)),
950
- core.flatMap(_take.match({
916
+ core.flatMap(InternalTake.match({
951
917
  onEnd: () => core.unit,
952
918
  onFailure: core.failCause,
953
919
  onSuccess: (value) => core.flatMap(core.write(value), () => process)
@@ -989,7 +955,7 @@ const bufferSignal = <A, E, R>(
989
955
  Effect.flatMap(
990
956
  (deferred) =>
991
957
  pipe(
992
- Queue.offer(queue, [_take.chunk(input), deferred] as const),
958
+ Queue.offer(queue, [InternalTake.chunk(input), deferred] as const),
993
959
  Effect.flatMap((added) => pipe(Ref.set(ref, deferred), Effect.when(() => added)))
994
960
  )
995
961
  ),
@@ -997,8 +963,8 @@ const bufferSignal = <A, E, R>(
997
963
  core.fromEffect,
998
964
  core.flatMap(() => producer(queue, ref))
999
965
  ),
1000
- onFailure: (error) => terminate(_take.failCause(error)),
1001
- onDone: () => terminate(_take.end)
966
+ onFailure: (error) => terminate(InternalTake.failCause(error)),
967
+ onDone: () => terminate(InternalTake.end)
1002
968
  })
1003
969
  }
1004
970
  const consumer = (
@@ -1009,7 +975,7 @@ const bufferSignal = <A, E, R>(
1009
975
  core.flatMap(([take, deferred]) =>
1010
976
  channel.zipRight(
1011
977
  core.fromEffect(Deferred.succeed(deferred, void 0)),
1012
- _take.match(take, {
978
+ InternalTake.match(take, {
1013
979
  onEnd: () => core.unit,
1014
980
  onFailure: core.failCause,
1015
981
  onSuccess: (value) => pipe(core.write(value), core.flatMap(() => process))
@@ -1048,14 +1014,14 @@ const bufferSignal = <A, E, R>(
1048
1014
 
1049
1015
  /** @internal */
1050
1016
  export const catchAll = dual<
1051
- <E, R2, E2, A2>(
1017
+ <E, A2, E2, R2>(
1052
1018
  f: (error: E) => Stream.Stream<A2, E2, R2>
1053
- ) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2, R2 | R>,
1054
- <R, A, E, R2, E2, A2>(
1019
+ ) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2, R2 | R>,
1020
+ <A, E, R, A2, E2, R2>(
1055
1021
  self: Stream.Stream<A, E, R>,
1056
1022
  f: (error: E) => Stream.Stream<A2, E2, R2>
1057
1023
  ) => Stream.Stream<A2 | A, E2, R2 | R>
1058
- >(2, <R, A, E, R2, E2, A2>(
1024
+ >(2, <A, E, R, A2, E2, R2>(
1059
1025
  self: Stream.Stream<A, E, R>,
1060
1026
  f: (error: E) => Stream.Stream<A2, E2, R2>
1061
1027
  ): Stream.Stream<A2 | A, E2, R2 | R> =>
@@ -1067,16 +1033,16 @@ export const catchAll = dual<
1067
1033
 
1068
1034
  /** @internal */
1069
1035
  export const catchAllCause = dual<
1070
- <E, R2, E2, A2>(
1036
+ <E, A2, E2, R2>(
1071
1037
  f: (cause: Cause.Cause<E>) => Stream.Stream<A2, E2, R2>
1072
- ) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2, R2 | R>,
1073
- <R, A, E, R2, E2, A2>(
1038
+ ) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2, R2 | R>,
1039
+ <A, E, R, A2, E2, R2>(
1074
1040
  self: Stream.Stream<A, E, R>,
1075
1041
  f: (cause: Cause.Cause<E>) => Stream.Stream<A2, E2, R2>
1076
1042
  ) => Stream.Stream<A2 | A, E2, R2 | R>
1077
1043
  >(
1078
1044
  2,
1079
- <R, A, E, R2, E2, A2>(
1045
+ <A, E, R, A2, E2, R2>(
1080
1046
  self: Stream.Stream<A, E, R>,
1081
1047
  f: (cause: Cause.Cause<E>) => Stream.Stream<A2, E2, R2>
1082
1048
  ): Stream.Stream<A | A2, E2, R | R2> =>
@@ -1085,16 +1051,16 @@ export const catchAllCause = dual<
1085
1051
 
1086
1052
  /** @internal */
1087
1053
  export const catchSome = dual<
1088
- <E, R2, E2, A2>(
1054
+ <E, A2, E2, R2>(
1089
1055
  pf: (error: E) => Option.Option<Stream.Stream<A2, E2, R2>>
1090
- ) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E | E2, R2 | R>,
1091
- <R, A, E, R2, E2, A2>(
1056
+ ) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E | E2, R2 | R>,
1057
+ <A, E, R, A2, E2, R2>(
1092
1058
  self: Stream.Stream<A, E, R>,
1093
1059
  pf: (error: E) => Option.Option<Stream.Stream<A2, E2, R2>>
1094
1060
  ) => Stream.Stream<A2 | A, E | E2, R2 | R>
1095
1061
  >(
1096
1062
  2,
1097
- <R, A, E, R2, E2, A2>(
1063
+ <A, E, R, A2, E2, R2>(
1098
1064
  self: Stream.Stream<A, E, R>,
1099
1065
  pf: (error: E) => Option.Option<Stream.Stream<A2, E2, R2>>
1100
1066
  ): Stream.Stream<A2 | A, E | E2, R2 | R> =>
@@ -1103,16 +1069,16 @@ export const catchSome = dual<
1103
1069
 
1104
1070
  /** @internal */
1105
1071
  export const catchSomeCause = dual<
1106
- <E, R2, E2, A2>(
1072
+ <E, A2, E2, R2>(
1107
1073
  pf: (cause: Cause.Cause<E>) => Option.Option<Stream.Stream<A2, E2, R2>>
1108
- ) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E | E2, R2 | R>,
1109
- <R, A, E, R2, E2, A2>(
1074
+ ) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E | E2, R2 | R>,
1075
+ <A, E, R, A2, E2, R2>(
1110
1076
  self: Stream.Stream<A, E, R>,
1111
1077
  pf: (cause: Cause.Cause<E>) => Option.Option<Stream.Stream<A2, E2, R2>>
1112
1078
  ) => Stream.Stream<A2 | A, E | E2, R2 | R>
1113
1079
  >(
1114
1080
  2,
1115
- <R, A, E, R2, E2, A2>(
1081
+ <A, E, R, A2, E2, R2>(
1116
1082
  self: Stream.Stream<A, E, R>,
1117
1083
  pf: (cause: Cause.Cause<E>) => Option.Option<Stream.Stream<A2, E2, R2>>
1118
1084
  ): Stream.Stream<A2 | A, E | E2, R2 | R> =>
@@ -1121,11 +1087,11 @@ export const catchSomeCause = dual<
1121
1087
 
1122
1088
  /* @internal */
1123
1089
  export const catchTag = dual<
1124
- <K extends E["_tag"] & string, E extends { _tag: string }, R1, E1, A1>(
1090
+ <K extends E["_tag"] & string, E extends { _tag: string }, A1, E1, R1>(
1125
1091
  k: K,
1126
1092
  f: (e: Extract<E, { _tag: K }>) => Stream.Stream<A1, E1, R1>
1127
- ) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A | A1, Exclude<E, { _tag: K }> | E1, R | R1>,
1128
- <R, E extends { _tag: string }, A, K extends E["_tag"] & string, R1, E1, A1>(
1093
+ ) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A | A1, Exclude<E, { _tag: K }> | E1, R | R1>,
1094
+ <A, E extends { _tag: string }, R, K extends E["_tag"] & string, A1, E1, R1>(
1129
1095
  self: Stream.Stream<A, E, R>,
1130
1096
  k: K,
1131
1097
  f: (e: Extract<E, { _tag: K }>) => Stream.Stream<A1, E1, R1>
@@ -1147,7 +1113,7 @@ export const catchTags: {
1147
1113
  }
1148
1114
  >(
1149
1115
  cases: Cases
1150
- ): <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<
1116
+ ): <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<
1151
1117
  | A
1152
1118
  | {
1153
1119
  [K in keyof Cases]: Cases[K] extends
@@ -1168,9 +1134,9 @@ export const catchTags: {
1168
1134
  }[keyof Cases]
1169
1135
  >
1170
1136
  <
1171
- R,
1172
- E extends { _tag: string },
1173
1137
  A,
1138
+ E extends { _tag: string },
1139
+ R,
1174
1140
  Cases extends {
1175
1141
  [K in E["_tag"]]+?: (error: Extract<E, { _tag: K }>) => Stream.Stream<any, any, any>
1176
1142
  }
@@ -1212,7 +1178,7 @@ export const changes = <A, E, R>(self: Stream.Stream<A, E, R>): Stream.Stream<A,
1212
1178
 
1213
1179
  /** @internal */
1214
1180
  export const changesWith = dual<
1215
- <A>(f: (x: A, y: A) => boolean) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>,
1181
+ <A>(f: (x: A, y: A) => boolean) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>,
1216
1182
  <A, E, R>(self: Stream.Stream<A, E, R>, f: (x: A, y: A) => boolean) => Stream.Stream<A, E, R>
1217
1183
  >(2, <A, E, R>(self: Stream.Stream<A, E, R>, f: (x: A, y: A) => boolean): Stream.Stream<A, E, R> => {
1218
1184
  const writer = (
@@ -1243,16 +1209,16 @@ export const changesWith = dual<
1243
1209
 
1244
1210
  /** @internal */
1245
1211
  export const changesWithEffect = dual<
1246
- <A, R2, E2>(
1212
+ <A, E2, R2>(
1247
1213
  f: (x: A, y: A) => Effect.Effect<boolean, E2, R2>
1248
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
1249
- <R, E, A, R2, E2>(
1214
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
1215
+ <A, E, R, E2, R2>(
1250
1216
  self: Stream.Stream<A, E, R>,
1251
1217
  f: (x: A, y: A) => Effect.Effect<boolean, E2, R2>
1252
1218
  ) => Stream.Stream<A, E2 | E, R2 | R>
1253
1219
  >(
1254
1220
  2,
1255
- <R, E, A, R2, E2>(
1221
+ <A, E, R, E2, R2>(
1256
1222
  self: Stream.Stream<A, E, R>,
1257
1223
  f: (x: A, y: A) => Effect.Effect<boolean, E2, R2>
1258
1224
  ): Stream.Stream<A, E2 | E, R2 | R> => {
@@ -1302,16 +1268,16 @@ export const chunks = <A, E, R>(self: Stream.Stream<A, E, R>): Stream.Stream<Chu
1302
1268
 
1303
1269
  /** @internal */
1304
1270
  export const chunksWith = dual<
1305
- <R, E, A, R2, E2, A2>(
1271
+ <A, E, R, A2, E2, R2>(
1306
1272
  f: (stream: Stream.Stream<Chunk.Chunk<A>, E, R>) => Stream.Stream<Chunk.Chunk<A2>, E2, R2>
1307
1273
  ) => (self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E | E2, R | R2>,
1308
- <R, E, A, R2, E2, A2>(
1274
+ <A, E, R, A2, E2, R2>(
1309
1275
  self: Stream.Stream<A, E, R>,
1310
1276
  f: (stream: Stream.Stream<Chunk.Chunk<A>, E, R>) => Stream.Stream<Chunk.Chunk<A2>, E2, R2>
1311
1277
  ) => Stream.Stream<A2, E | E2, R | R2>
1312
1278
  >(
1313
1279
  2,
1314
- <R, E, A, R2, E2, A2>(
1280
+ <A, E, R, A2, E2, R2>(
1315
1281
  self: Stream.Stream<A, E, R>,
1316
1282
  f: (stream: Stream.Stream<Chunk.Chunk<A>, E, R>) => Stream.Stream<Chunk.Chunk<A2>, E2, R2>
1317
1283
  ): Stream.Stream<A2, E | E2, R | R2> => flattenChunks(f(chunks(self)))
@@ -1325,7 +1291,7 @@ const unsome = <A, E, R>(effect: Effect.Effect<A, Option.Option<E>, R>): Effect.
1325
1291
 
1326
1292
  /** @internal */
1327
1293
  export const combine = dual<
1328
- <R2, E2, A2, S, R3, E, A, R4, R5, A3>(
1294
+ <A2, E2, R2, S, R3, E, A, R4, R5, A3>(
1329
1295
  that: Stream.Stream<A2, E2, R2>,
1330
1296
  s: S,
1331
1297
  f: (
@@ -1334,7 +1300,7 @@ export const combine = dual<
1334
1300
  pullRight: Effect.Effect<A2, Option.Option<E2>, R4>
1335
1301
  ) => Effect.Effect<Exit.Exit<readonly [A3, S], Option.Option<E2 | E>>, never, R5>
1336
1302
  ) => <R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R3 | R4 | R5 | R>,
1337
- <R, R2, E2, A2, S, R3, E, A, R4, R5, A3>(
1303
+ <R, A2, E2, R2, S, R3, E, A, R4, R5, A3>(
1338
1304
  self: Stream.Stream<A, E, R>,
1339
1305
  that: Stream.Stream<A2, E2, R2>,
1340
1306
  s: S,
@@ -1344,7 +1310,7 @@ export const combine = dual<
1344
1310
  pullRight: Effect.Effect<A2, Option.Option<E2>, R4>
1345
1311
  ) => Effect.Effect<Exit.Exit<readonly [A3, S], Option.Option<E2 | E>>, never, R5>
1346
1312
  ) => Stream.Stream<A3, E2 | E, R2 | R3 | R4 | R5 | R>
1347
- >(4, <R, R2, E2, A2, S, R3, E, A, R4, R5, A3>(
1313
+ >(4, <R, A2, E2, R2, S, R3, E, A, R4, R5, A3>(
1348
1314
  self: Stream.Stream<A, E, R>,
1349
1315
  that: Stream.Stream<A2, E2, R2>,
1350
1316
  s: S,
@@ -1429,7 +1395,7 @@ export const combine = dual<
1429
1395
 
1430
1396
  /** @internal */
1431
1397
  export const combineChunks = dual<
1432
- <R2, E2, A2, S, R3, E, A, R4, R5, A3>(
1398
+ <A2, E2, R2, S, R3, E, A, R4, R5, A3>(
1433
1399
  that: Stream.Stream<A2, E2, R2>,
1434
1400
  s: S,
1435
1401
  f: (
@@ -1438,7 +1404,7 @@ export const combineChunks = dual<
1438
1404
  pullRight: Effect.Effect<Chunk.Chunk<A2>, Option.Option<E2>, R4>
1439
1405
  ) => Effect.Effect<Exit.Exit<readonly [Chunk.Chunk<A3>, S], Option.Option<E2 | E>>, never, R5>
1440
1406
  ) => <R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R3 | R4 | R5 | R>,
1441
- <R, R2, E2, A2, S, R3, E, A, R4, R5, A3>(
1407
+ <R, A2, E2, R2, S, R3, E, A, R4, R5, A3>(
1442
1408
  self: Stream.Stream<A, E, R>,
1443
1409
  that: Stream.Stream<A2, E2, R2>,
1444
1410
  s: S,
@@ -1448,7 +1414,7 @@ export const combineChunks = dual<
1448
1414
  pullRight: Effect.Effect<Chunk.Chunk<A2>, Option.Option<E2>, R4>
1449
1415
  ) => Effect.Effect<Exit.Exit<readonly [Chunk.Chunk<A3>, S], Option.Option<E2 | E>>, never, R5>
1450
1416
  ) => Stream.Stream<A3, E2 | E, R2 | R3 | R4 | R5 | R>
1451
- >(4, <R, R2, E2, A2, S, R3, E, A, R4, R5, A3>(
1417
+ >(4, <R, A2, E2, R2, S, R3, E, A, R4, R5, A3>(
1452
1418
  self: Stream.Stream<A, E, R>,
1453
1419
  that: Stream.Stream<A2, E2, R2>,
1454
1420
  s: S,
@@ -1469,7 +1435,7 @@ export const combineChunks = dual<
1469
1435
  core.flatMap(
1470
1436
  core.fromEffect(pipe(
1471
1437
  handoff,
1472
- Handoff.offer<Take.Take<Elem, Err>>(_take.chunk(input))
1438
+ Handoff.offer<Take.Take<Elem, Err>>(InternalTake.chunk(input))
1473
1439
  )),
1474
1440
  () => producer(handoff, latch)
1475
1441
  ),
@@ -1477,11 +1443,11 @@ export const combineChunks = dual<
1477
1443
  core.fromEffect(
1478
1444
  Handoff.offer<Take.Take<Elem, Err>>(
1479
1445
  handoff,
1480
- _take.failCause(cause)
1446
+ InternalTake.failCause(cause)
1481
1447
  )
1482
1448
  ),
1483
1449
  onDone: (): Channel.Channel<never, Chunk.Chunk<Elem>, never, Err, unknown, unknown, R> =>
1484
- core.fromEffect(Handoff.offer<Take.Take<Elem, Err>>(handoff, _take.end))
1450
+ core.fromEffect(Handoff.offer<Take.Take<Elem, Err>>(handoff, InternalTake.end))
1485
1451
  })
1486
1452
  )
1487
1453
  return new StreamImpl(
@@ -1515,7 +1481,7 @@ export const combineChunks = dual<
1515
1481
  Effect.zipRight(
1516
1482
  pipe(
1517
1483
  Handoff.take(left),
1518
- Effect.flatMap(_take.done)
1484
+ Effect.flatMap(InternalTake.done)
1519
1485
  )
1520
1486
  )
1521
1487
  )
@@ -1525,7 +1491,7 @@ export const combineChunks = dual<
1525
1491
  Effect.zipRight(
1526
1492
  pipe(
1527
1493
  Handoff.take(right),
1528
- Effect.flatMap(_take.done)
1494
+ Effect.flatMap(InternalTake.done)
1529
1495
  )
1530
1496
  )
1531
1497
  )
@@ -1538,16 +1504,16 @@ export const combineChunks = dual<
1538
1504
 
1539
1505
  /** @internal */
1540
1506
  export const concat = dual<
1541
- <R2, E2, A2>(
1507
+ <A2, E2, R2>(
1542
1508
  that: Stream.Stream<A2, E2, R2>
1543
1509
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2 | E, R2 | R>,
1544
- <R, E, A, R2, E2, A2>(
1510
+ <A, E, R, A2, E2, R2>(
1545
1511
  self: Stream.Stream<A, E, R>,
1546
1512
  that: Stream.Stream<A2, E2, R2>
1547
1513
  ) => Stream.Stream<A2 | A, E2 | E, R2 | R>
1548
1514
  >(
1549
1515
  2,
1550
- <R, E, A, R2, E2, A2>(
1516
+ <A, E, R, A2, E2, R2>(
1551
1517
  self: Stream.Stream<A, E, R>,
1552
1518
  that: Stream.Stream<A2, E2, R2>
1553
1519
  ): Stream.Stream<A2 | A, E2 | E, R2 | R> =>
@@ -1560,16 +1526,16 @@ export const concatAll = <A, E, R>(streams: Chunk.Chunk<Stream.Stream<A, E, R>>)
1560
1526
 
1561
1527
  /** @internal */
1562
1528
  export const cross = dual<
1563
- <R2, E2, A2>(
1529
+ <A2, E2, R2>(
1564
1530
  that: Stream.Stream<A2, E2, R2>
1565
1531
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<[A, A2], E2 | E, R2 | R>,
1566
- <R, E, A, R2, E2, A2>(
1532
+ <A, E, R, A2, E2, R2>(
1567
1533
  self: Stream.Stream<A, E, R>,
1568
1534
  that: Stream.Stream<A2, E2, R2>
1569
1535
  ) => Stream.Stream<[A, A2], E2 | E, R2 | R>
1570
1536
  >(
1571
1537
  2,
1572
- <R, E, A, R2, E2, A2>(
1538
+ <A, E, R, A2, E2, R2>(
1573
1539
  self: Stream.Stream<A, E, R>,
1574
1540
  that: Stream.Stream<A2, E2, R2>
1575
1541
  ): Stream.Stream<[A, A2], E2 | E, R2 | R> => pipe(self, crossWith(that, (a, a2) => [a, a2]))
@@ -1577,16 +1543,16 @@ export const cross = dual<
1577
1543
 
1578
1544
  /** @internal */
1579
1545
  export const crossLeft = dual<
1580
- <R2, E2, A2>(
1546
+ <A2, E2, R2>(
1581
1547
  that: Stream.Stream<A2, E2, R2>
1582
1548
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
1583
- <R, E, A, R2, E2, A2>(
1549
+ <A, E, R, A2, E2, R2>(
1584
1550
  self: Stream.Stream<A, E, R>,
1585
1551
  that: Stream.Stream<A2, E2, R2>
1586
1552
  ) => Stream.Stream<A, E2 | E, R2 | R>
1587
1553
  >(
1588
1554
  2,
1589
- <R, E, A, R2, E2, A2>(
1555
+ <A, E, R, A2, E2, R2>(
1590
1556
  self: Stream.Stream<A, E, R>,
1591
1557
  that: Stream.Stream<A2, E2, R2>
1592
1558
  ): Stream.Stream<A, E2 | E, R2 | R> => pipe(self, crossWith(that, (a, _) => a))
@@ -1594,16 +1560,16 @@ export const crossLeft = dual<
1594
1560
 
1595
1561
  /** @internal */
1596
1562
  export const crossRight = dual<
1597
- <R2, E2, A2>(
1563
+ <A2, E2, R2>(
1598
1564
  that: Stream.Stream<A2, E2, R2>
1599
1565
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
1600
- <R, E, A, R2, E2, A2>(
1566
+ <A, E, R, A2, E2, R2>(
1601
1567
  self: Stream.Stream<A, E, R>,
1602
1568
  that: Stream.Stream<A2, E2, R2>
1603
1569
  ) => Stream.Stream<A2, E2 | E, R2 | R>
1604
1570
  >(
1605
1571
  2,
1606
- <R, E, A, R2, E2, A2>(
1572
+ <A, E, R, A2, E2, R2>(
1607
1573
  self: Stream.Stream<A, E, R>,
1608
1574
  that: Stream.Stream<A2, E2, R2>
1609
1575
  ): Stream.Stream<A2, E2 | E, R2 | R> => flatMap(self, () => that)
@@ -1611,18 +1577,18 @@ export const crossRight = dual<
1611
1577
 
1612
1578
  /** @internal */
1613
1579
  export const crossWith = dual<
1614
- <R2, E2, B, A, C>(
1580
+ <B, E2, R2, A, C>(
1615
1581
  that: Stream.Stream<B, E2, R2>,
1616
1582
  f: (a: A, b: B) => C
1617
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<C, E2 | E, R2 | R>,
1618
- <R, E, R2, E2, B, A, C>(
1583
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<C, E2 | E, R2 | R>,
1584
+ <A, E, R, B, E2, R2, C>(
1619
1585
  self: Stream.Stream<A, E, R>,
1620
1586
  that: Stream.Stream<B, E2, R2>,
1621
1587
  f: (a: A, b: B) => C
1622
1588
  ) => Stream.Stream<C, E2 | E, R2 | R>
1623
1589
  >(
1624
1590
  3,
1625
- <R, E, R2, E2, B, A, C>(
1591
+ <A, E, R, B, E2, R2, C>(
1626
1592
  self: Stream.Stream<A, E, R>,
1627
1593
  that: Stream.Stream<B, E2, R2>,
1628
1594
  f: (a: A, b: B) => C
@@ -1793,14 +1759,14 @@ export const distributedWith = dual<
1793
1759
  readonly maximumLag: number
1794
1760
  readonly decide: (a: A) => Effect.Effect<Predicate<number>>
1795
1761
  }
1796
- ) => <R, E>(
1762
+ ) => <E, R>(
1797
1763
  self: Stream.Stream<A, E, R>
1798
1764
  ) => Effect.Effect<
1799
1765
  Stream.Stream.DynamicTuple<Queue.Dequeue<Exit.Exit<A, Option.Option<E>>>, N>,
1800
1766
  never,
1801
1767
  Scope.Scope | R
1802
1768
  >,
1803
- <R, E, N extends number, A>(
1769
+ <A, E, R, N extends number>(
1804
1770
  self: Stream.Stream<A, E, R>,
1805
1771
  options: {
1806
1772
  readonly size: N
@@ -1814,7 +1780,7 @@ export const distributedWith = dual<
1814
1780
  >
1815
1781
  >(
1816
1782
  2,
1817
- <R, E, N extends number, A>(
1783
+ <A, E, R, N extends number>(
1818
1784
  self: Stream.Stream<A, E, R>,
1819
1785
  options: {
1820
1786
  readonly size: N
@@ -1883,19 +1849,19 @@ const newDistributedWithDynamicId = () => {
1883
1849
 
1884
1850
  /** @internal */
1885
1851
  export const distributedWithDynamic = dual<
1886
- <E, A, _>(
1852
+ <A>(
1887
1853
  options: {
1888
1854
  readonly maximumLag: number
1889
1855
  readonly decide: (a: A) => Effect.Effect<Predicate<number>>
1890
1856
  }
1891
- ) => <R>(
1857
+ ) => <E, R>(
1892
1858
  self: Stream.Stream<A, E, R>
1893
1859
  ) => Effect.Effect<
1894
1860
  Effect.Effect<[number, Queue.Dequeue<Exit.Exit<A, Option.Option<E>>>]>,
1895
1861
  never,
1896
1862
  Scope.Scope | R
1897
1863
  >,
1898
- <R, E, A, _>(
1864
+ <A, E, R>(
1899
1865
  self: Stream.Stream<A, E, R>,
1900
1866
  options: {
1901
1867
  readonly maximumLag: number
@@ -1906,7 +1872,7 @@ export const distributedWithDynamic = dual<
1906
1872
  never,
1907
1873
  Scope.Scope | R
1908
1874
  >
1909
- >(2, <R, E, A, _>(
1875
+ >(2, <A, E, R>(
1910
1876
  self: Stream.Stream<A, E, R>,
1911
1877
  options: {
1912
1878
  readonly maximumLag: number
@@ -1920,10 +1886,10 @@ export const distributedWithDynamic = dual<
1920
1886
 
1921
1887
  /** @internal */
1922
1888
  export const distributedWithDynamicCallback = dual<
1923
- <E, A, _>(
1889
+ <A, E, X>(
1924
1890
  maximumLag: number,
1925
1891
  decide: (a: A) => Effect.Effect<Predicate<number>>,
1926
- done: (exit: Exit.Exit<never, Option.Option<E>>) => Effect.Effect<_>
1892
+ done: (exit: Exit.Exit<never, Option.Option<E>>) => Effect.Effect<X>
1927
1893
  ) => <R>(
1928
1894
  self: Stream.Stream<A, E, R>
1929
1895
  ) => Effect.Effect<
@@ -1931,21 +1897,21 @@ export const distributedWithDynamicCallback = dual<
1931
1897
  never,
1932
1898
  Scope.Scope | R
1933
1899
  >,
1934
- <R, E, A, _>(
1900
+ <A, E, R, X>(
1935
1901
  self: Stream.Stream<A, E, R>,
1936
1902
  maximumLag: number,
1937
1903
  decide: (a: A) => Effect.Effect<Predicate<number>>,
1938
- done: (exit: Exit.Exit<never, Option.Option<E>>) => Effect.Effect<_>
1904
+ done: (exit: Exit.Exit<never, Option.Option<E>>) => Effect.Effect<X>
1939
1905
  ) => Effect.Effect<
1940
1906
  Effect.Effect<[number, Queue.Dequeue<Exit.Exit<A, Option.Option<E>>>]>,
1941
1907
  never,
1942
1908
  Scope.Scope | R
1943
1909
  >
1944
- >(4, <R, E, A, _>(
1910
+ >(4, <A, E, R, X>(
1945
1911
  self: Stream.Stream<A, E, R>,
1946
1912
  maximumLag: number,
1947
1913
  decide: (a: A) => Effect.Effect<Predicate<number>>,
1948
- done: (exit: Exit.Exit<never, Option.Option<E>>) => Effect.Effect<_>
1914
+ done: (exit: Exit.Exit<never, Option.Option<E>>) => Effect.Effect<X>
1949
1915
  ): Effect.Effect<
1950
1916
  Effect.Effect<[number, Queue.Dequeue<Exit.Exit<A, Option.Option<E>>>]>,
1951
1917
  never,
@@ -2081,16 +2047,16 @@ export const drain = <A, E, R>(self: Stream.Stream<A, E, R>): Stream.Stream<neve
2081
2047
 
2082
2048
  /** @internal */
2083
2049
  export const drainFork = dual<
2084
- <R2, E2, A2>(
2050
+ <A2, E2, R2>(
2085
2051
  that: Stream.Stream<A2, E2, R2>
2086
2052
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
2087
- <R, E, A, R2, E2, A2>(
2053
+ <A, E, R, A2, E2, R2>(
2088
2054
  self: Stream.Stream<A, E, R>,
2089
2055
  that: Stream.Stream<A2, E2, R2>
2090
2056
  ) => Stream.Stream<A, E2 | E, R2 | R>
2091
2057
  >(
2092
2058
  2,
2093
- <R, E, A, R2, E2, A2>(
2059
+ <A, E, R, A2, E2, R2>(
2094
2060
  self: Stream.Stream<A, E, R>,
2095
2061
  that: Stream.Stream<A2, E2, R2>
2096
2062
  ): Stream.Stream<A, E2 | E, R2 | R> =>
@@ -2168,7 +2134,7 @@ export const dropRight = dual<
2168
2134
 
2169
2135
  /** @internal */
2170
2136
  export const dropUntil = dual<
2171
- <A>(predicate: Predicate<NoInfer<A>>) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>,
2137
+ <A>(predicate: Predicate<NoInfer<A>>) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>,
2172
2138
  <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>) => Stream.Stream<A, E, R>
2173
2139
  >(
2174
2140
  2,
@@ -2178,16 +2144,16 @@ export const dropUntil = dual<
2178
2144
 
2179
2145
  /** @internal */
2180
2146
  export const dropUntilEffect = dual<
2181
- <A, R2, E2>(
2147
+ <A, E2, R2>(
2182
2148
  predicate: (a: NoInfer<A>) => Effect.Effect<boolean, E2, R2>
2183
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
2184
- <R, E, A, R2, E2>(
2149
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
2150
+ <A, E, R, E2, R2>(
2185
2151
  self: Stream.Stream<A, E, R>,
2186
2152
  predicate: (a: NoInfer<A>) => Effect.Effect<boolean, E2, R2>
2187
2153
  ) => Stream.Stream<A, E2 | E, R2 | R>
2188
2154
  >(
2189
2155
  2,
2190
- <R, E, A, R2, E2>(
2156
+ <A, E, R, E2, R2>(
2191
2157
  self: Stream.Stream<A, E, R>,
2192
2158
  predicate: (a: NoInfer<A>) => Effect.Effect<boolean, E2, R2>
2193
2159
  ): Stream.Stream<A, E2 | E, R2 | R> => {
@@ -2217,7 +2183,7 @@ export const dropUntilEffect = dual<
2217
2183
 
2218
2184
  /** @internal */
2219
2185
  export const dropWhile = dual<
2220
- <A>(predicate: Predicate<NoInfer<A>>) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>,
2186
+ <A>(predicate: Predicate<NoInfer<A>>) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>,
2221
2187
  <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>) => Stream.Stream<A, E, R>
2222
2188
  >(2, <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>): Stream.Stream<A, E, R> => {
2223
2189
  const loop: Channel.Channel<Chunk.Chunk<A>, Chunk.Chunk<A>, never, never, unknown, unknown> = core.readWith({
@@ -2239,16 +2205,16 @@ export const dropWhile = dual<
2239
2205
 
2240
2206
  /** @internal */
2241
2207
  export const dropWhileEffect = dual<
2242
- <A, R2, E2>(
2208
+ <A, E2, R2>(
2243
2209
  predicate: (a: NoInfer<A>) => Effect.Effect<boolean, E2, R2>
2244
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
2245
- <R, E, A, R2, E2>(
2210
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
2211
+ <A, E, R, E2, R2>(
2246
2212
  self: Stream.Stream<A, E, R>,
2247
2213
  predicate: (a: A) => Effect.Effect<boolean, E2, R2>
2248
2214
  ) => Stream.Stream<A, E2 | E, R2 | R>
2249
2215
  >(
2250
2216
  2,
2251
- <R, E, A, R2, E2>(
2217
+ <A, E, R, E2, R2>(
2252
2218
  self: Stream.Stream<A, E, R>,
2253
2219
  predicate: (a: A) => Effect.Effect<boolean, E2, R2>
2254
2220
  ): Stream.Stream<A, E2 | E, R2 | R> => {
@@ -2280,7 +2246,7 @@ export const dropWhileEffect = dual<
2280
2246
  )
2281
2247
 
2282
2248
  /** @internal */
2283
- export const either = <A, E, R>(self: Stream.Stream<A, E, R>): Stream.Stream<Either.Either<E, A>, never, R> =>
2249
+ export const either = <A, E, R>(self: Stream.Stream<A, E, R>): Stream.Stream<Either.Either<A, E>, never, R> =>
2284
2250
  pipe(self, map(Either.right), catchAll((error) => make(Either.left(error))))
2285
2251
 
2286
2252
  /** @internal */
@@ -2288,13 +2254,13 @@ export const empty: Stream.Stream<never> = new StreamImpl(core.write(Chunk.empty
2288
2254
 
2289
2255
  /** @internal */
2290
2256
  export const ensuring = dual<
2291
- <R2, _>(
2292
- finalizer: Effect.Effect<_, never, R2>
2257
+ <X, R2>(
2258
+ finalizer: Effect.Effect<X, never, R2>
2293
2259
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R2 | R>,
2294
- <R, E, A, R2, _>(self: Stream.Stream<A, E, R>, finalizer: Effect.Effect<_, never, R2>) => Stream.Stream<A, E, R2 | R>
2260
+ <A, E, R, X, R2>(self: Stream.Stream<A, E, R>, finalizer: Effect.Effect<X, never, R2>) => Stream.Stream<A, E, R2 | R>
2295
2261
  >(
2296
2262
  2,
2297
- <R, E, A, R2, _>(self: Stream.Stream<A, E, R>, finalizer: Effect.Effect<_, never, R2>): Stream.Stream<A, E, R2 | R> =>
2263
+ <A, E, R, X, R2>(self: Stream.Stream<A, E, R>, finalizer: Effect.Effect<X, never, R2>): Stream.Stream<A, E, R2 | R> =>
2298
2264
  new StreamImpl(pipe(toChannel(self), channel.ensuring(finalizer)))
2299
2265
  )
2300
2266
 
@@ -2302,8 +2268,8 @@ export const ensuring = dual<
2302
2268
  export const ensuringWith = dual<
2303
2269
  <E, R2>(
2304
2270
  finalizer: (exit: Exit.Exit<unknown, E>) => Effect.Effect<unknown, never, R2>
2305
- ) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R | R2>,
2306
- <R, E, A, R2>(
2271
+ ) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R | R2>,
2272
+ <A, E, R, R2>(
2307
2273
  self: Stream.Stream<A, E, R>,
2308
2274
  finalizer: (exit: Exit.Exit<unknown, E>) => Effect.Effect<unknown, never, R2>
2309
2275
  ) => Stream.Stream<A, E, R | R2>
@@ -2317,17 +2283,17 @@ export const contextWith = <R, A>(f: (env: Context.Context<R>) => A): Stream.Str
2317
2283
  pipe(context<R>(), map(f))
2318
2284
 
2319
2285
  /** @internal */
2320
- export const contextWithEffect = <R0, R, E, A>(
2286
+ export const contextWithEffect = <R0, A, E, R>(
2321
2287
  f: (env: Context.Context<R0>) => Effect.Effect<A, E, R>
2322
2288
  ): Stream.Stream<A, E, R0 | R> => pipe(context<R0>(), mapEffectSequential(f))
2323
2289
 
2324
2290
  /** @internal */
2325
- export const contextWithStream = <R0, R, E, A>(
2291
+ export const contextWithStream = <R0, A, E, R>(
2326
2292
  f: (env: Context.Context<R0>) => Stream.Stream<A, E, R>
2327
2293
  ): Stream.Stream<A, E, R0 | R> => pipe(context<R0>(), flatMap(f))
2328
2294
 
2329
2295
  /** @internal */
2330
- export const execute = <R, E, _>(effect: Effect.Effect<_, E, R>): Stream.Stream<never, E, R> =>
2296
+ export const execute = <X, E, R>(effect: Effect.Effect<X, E, R>): Stream.Stream<never, E, R> =>
2331
2297
  drain(fromEffect(effect))
2332
2298
 
2333
2299
  /** @internal */
@@ -2348,9 +2314,9 @@ export const failCauseSync = <E>(evaluate: LazyArg<Cause.Cause<E>>): Stream.Stre
2348
2314
  export const filter: {
2349
2315
  <A, B extends A>(
2350
2316
  refinement: Refinement<NoInfer<A>, B>
2351
- ): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>
2352
- <A, B extends A>(predicate: Predicate<B>): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>
2353
- <R, E, A, B extends A>(self: Stream.Stream<A, E, R>, refinement: Refinement<A, B>): Stream.Stream<B, E, R>
2317
+ ): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>
2318
+ <A, B extends A>(predicate: Predicate<B>): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>
2319
+ <A, E, R, B extends A>(self: Stream.Stream<A, E, R>, refinement: Refinement<A, B>): Stream.Stream<B, E, R>
2354
2320
  <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>): Stream.Stream<A, E, R>
2355
2321
  } = dual(
2356
2322
  2,
@@ -2359,16 +2325,16 @@ export const filter: {
2359
2325
 
2360
2326
  /** @internal */
2361
2327
  export const filterEffect = dual<
2362
- <A, R2, E2>(
2328
+ <A, E2, R2>(
2363
2329
  f: (a: NoInfer<A>) => Effect.Effect<boolean, E2, R2>
2364
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
2365
- <R, E, A, R2, E2>(
2330
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
2331
+ <A, E, R, E2, R2>(
2366
2332
  self: Stream.Stream<A, E, R>,
2367
2333
  f: (a: A) => Effect.Effect<boolean, E2, R2>
2368
2334
  ) => Stream.Stream<A, E2 | E, R2 | R>
2369
2335
  >(
2370
2336
  2,
2371
- <R, E, A, R2, E2>(
2337
+ <A, E, R, E2, R2>(
2372
2338
  self: Stream.Stream<A, E, R>,
2373
2339
  f: (a: A) => Effect.Effect<boolean, E2, R2>
2374
2340
  ): Stream.Stream<A, E2 | E, R2 | R> => {
@@ -2402,26 +2368,26 @@ export const filterEffect = dual<
2402
2368
 
2403
2369
  /** @internal */
2404
2370
  export const filterMap = dual<
2405
- <A, B>(pf: (a: A) => Option.Option<B>) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>,
2406
- <R, E, A, B>(self: Stream.Stream<A, E, R>, pf: (a: A) => Option.Option<B>) => Stream.Stream<B, E, R>
2371
+ <A, B>(pf: (a: A) => Option.Option<B>) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>,
2372
+ <A, E, R, B>(self: Stream.Stream<A, E, R>, pf: (a: A) => Option.Option<B>) => Stream.Stream<B, E, R>
2407
2373
  >(
2408
2374
  2,
2409
- <R, E, A, B>(self: Stream.Stream<A, E, R>, pf: (a: A) => Option.Option<B>): Stream.Stream<B, E, R> =>
2375
+ <A, E, R, B>(self: Stream.Stream<A, E, R>, pf: (a: A) => Option.Option<B>): Stream.Stream<B, E, R> =>
2410
2376
  mapChunks(self, Chunk.filterMap(pf))
2411
2377
  )
2412
2378
 
2413
2379
  /** @internal */
2414
2380
  export const filterMapEffect = dual<
2415
- <A, R2, E2, A2>(
2381
+ <A, A2, E2, R2>(
2416
2382
  pf: (a: A) => Option.Option<Effect.Effect<A2, E2, R2>>
2417
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
2418
- <R, E, A, R2, E2, A2>(
2383
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
2384
+ <A, E, R, A2, E2, R2>(
2419
2385
  self: Stream.Stream<A, E, R>,
2420
2386
  pf: (a: A) => Option.Option<Effect.Effect<A2, E2, R2>>
2421
2387
  ) => Stream.Stream<A2, E2 | E, R2 | R>
2422
2388
  >(
2423
2389
  2,
2424
- <R, E, A, R2, E2, A2>(
2390
+ <A, E, R, A2, E2, R2>(
2425
2391
  self: Stream.Stream<A, E, R>,
2426
2392
  pf: (a: A) => Option.Option<Effect.Effect<A2, E2, R2>>
2427
2393
  ): Stream.Stream<A2, E | E2, R | R2> =>
@@ -2455,11 +2421,11 @@ export const filterMapEffect = dual<
2455
2421
  export const filterMapWhile = dual<
2456
2422
  <A, A2>(
2457
2423
  pf: (a: A) => Option.Option<A2>
2458
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E, R>,
2459
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, pf: (a: A) => Option.Option<A2>) => Stream.Stream<A2, E, R>
2424
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E, R>,
2425
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, pf: (a: A) => Option.Option<A2>) => Stream.Stream<A2, E, R>
2460
2426
  >(
2461
2427
  2,
2462
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, pf: (a: A) => Option.Option<A2>) => {
2428
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, pf: (a: A) => Option.Option<A2>) => {
2463
2429
  const loop: Channel.Channel<Chunk.Chunk<A2>, Chunk.Chunk<A>, E, E, unknown, unknown> = core.readWith({
2464
2430
  onInput: (input: Chunk.Chunk<A>) => {
2465
2431
  const mapped = Chunk.filterMapWhile(input, pf)
@@ -2477,16 +2443,16 @@ export const filterMapWhile = dual<
2477
2443
 
2478
2444
  /** @internal */
2479
2445
  export const filterMapWhileEffect = dual<
2480
- <A, R2, E2, A2>(
2446
+ <A, A2, E2, R2>(
2481
2447
  pf: (a: A) => Option.Option<Effect.Effect<A2, E2, R2>>
2482
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
2483
- <R, E, A, R2, E2, A2>(
2448
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
2449
+ <A, E, R, A2, E2, R2>(
2484
2450
  self: Stream.Stream<A, E, R>,
2485
2451
  pf: (a: A) => Option.Option<Effect.Effect<A2, E2, R2>>
2486
2452
  ) => Stream.Stream<A2, E2 | E, R2 | R>
2487
2453
  >(
2488
2454
  2,
2489
- <R, E, A, R2, E2, A2>(
2455
+ <A, E, R, A2, E2, R2>(
2490
2456
  self: Stream.Stream<A, E, R>,
2491
2457
  pf: (a: A) => Option.Option<Effect.Effect<A2, E2, R2>>
2492
2458
  ): Stream.Stream<A2, E | E2, R | R2> =>
@@ -2517,16 +2483,16 @@ export const filterMapWhileEffect = dual<
2517
2483
  )
2518
2484
 
2519
2485
  /** @internal */
2520
- export const finalizer = <R, _>(finalizer: Effect.Effect<_, never, R>): Stream.Stream<void, never, R> =>
2486
+ export const finalizer = <R, X>(finalizer: Effect.Effect<X, never, R>): Stream.Stream<void, never, R> =>
2521
2487
  acquireRelease(Effect.unit, () => finalizer)
2522
2488
 
2523
2489
  /** @internal */
2524
2490
  export const find: {
2525
2491
  <A, B extends A>(
2526
2492
  refinement: Refinement<NoInfer<A>, B>
2527
- ): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>
2528
- <A>(predicate: Predicate<NoInfer<A>>): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>
2529
- <R, E, A, B extends A>(self: Stream.Stream<A, E, R>, refinement: Refinement<A, B>): Stream.Stream<B, E, R>
2493
+ ): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>
2494
+ <A>(predicate: Predicate<NoInfer<A>>): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>
2495
+ <A, E, R, B extends A>(self: Stream.Stream<A, E, R>, refinement: Refinement<A, B>): Stream.Stream<B, E, R>
2530
2496
  <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>): Stream.Stream<A, E, R>
2531
2497
  } = dual(2, <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>): Stream.Stream<A, E, R> => {
2532
2498
  const loop: Channel.Channel<Chunk.Chunk<A>, Chunk.Chunk<A>, E, E, unknown, unknown, R> = core.readWith({
@@ -2543,16 +2509,16 @@ export const find: {
2543
2509
 
2544
2510
  /** @internal */
2545
2511
  export const findEffect: {
2546
- <A, R2, E2>(
2512
+ <A, E2, R2>(
2547
2513
  predicate: (a: NoInfer<A>) => Effect.Effect<boolean, E2, R2>
2548
- ): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>
2549
- <R, E, A, R2, E2>(
2514
+ ): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>
2515
+ <A, E, R, E2, R2>(
2550
2516
  self: Stream.Stream<A, E, R>,
2551
2517
  predicate: (a: NoInfer<A>) => Effect.Effect<boolean, E2, R2>
2552
2518
  ): Stream.Stream<A, E | E2, R | R2>
2553
2519
  } = dual(
2554
2520
  2,
2555
- <R, E, A, R2, E2>(
2521
+ <A, E, R, E2, R2>(
2556
2522
  self: Stream.Stream<A, E, R>,
2557
2523
  predicate: (a: NoInfer<A>) => Effect.Effect<boolean, E2, R2>
2558
2524
  ): Stream.Stream<A, E | E2, R | R2> => {
@@ -2575,15 +2541,15 @@ export const findEffect: {
2575
2541
 
2576
2542
  /** @internal */
2577
2543
  export const flatMap = dual<
2578
- <A, R2, E2, A2>(
2544
+ <A, A2, E2, R2>(
2579
2545
  f: (a: A) => Stream.Stream<A2, E2, R2>,
2580
2546
  options?: {
2581
2547
  readonly concurrency?: number | "unbounded" | undefined
2582
2548
  readonly bufferSize?: number | undefined
2583
2549
  readonly switch?: boolean | undefined
2584
2550
  }
2585
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
2586
- <R, E, A, R2, E2, A2>(
2551
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
2552
+ <A, E, R, A2, E2, R2>(
2587
2553
  self: Stream.Stream<A, E, R>,
2588
2554
  f: (a: A) => Stream.Stream<A2, E2, R2>,
2589
2555
  options?: {
@@ -2594,7 +2560,7 @@ export const flatMap = dual<
2594
2560
  ) => Stream.Stream<A2, E2 | E, R2 | R>
2595
2561
  >(
2596
2562
  (args) => isStream(args[0]),
2597
- <R, E, A, R2, E2, A2>(
2563
+ <A, E, R, A2, E2, R2>(
2598
2564
  self: Stream.Stream<A, E, R>,
2599
2565
  f: (a: A) => Stream.Stream<A2, E2, R2>,
2600
2566
  options?: {
@@ -2659,12 +2625,12 @@ export const matchConcurrency = <A>(
2659
2625
  }
2660
2626
 
2661
2627
  const flatMapParSwitchBuffer = dual<
2662
- <A, R2, E2, A2>(
2628
+ <A, A2, E2, R2>(
2663
2629
  n: number,
2664
2630
  bufferSize: number,
2665
2631
  f: (a: A) => Stream.Stream<A2, E2, R2>
2666
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
2667
- <R, E, A, R2, E2, A2>(
2632
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
2633
+ <A, E, R, A2, E2, R2>(
2668
2634
  self: Stream.Stream<A, E, R>,
2669
2635
  n: number,
2670
2636
  bufferSize: number,
@@ -2672,7 +2638,7 @@ const flatMapParSwitchBuffer = dual<
2672
2638
  ) => Stream.Stream<A2, E2 | E, R2 | R>
2673
2639
  >(
2674
2640
  4,
2675
- <R, E, A, R2, E2, A2>(
2641
+ <A, E, R, A2, E2, R2>(
2676
2642
  self: Stream.Stream<A, E, R>,
2677
2643
  n: number,
2678
2644
  bufferSize: number,
@@ -2696,10 +2662,10 @@ export const flatten = dual<
2696
2662
  (options?: {
2697
2663
  readonly concurrency?: number | "unbounded" | undefined
2698
2664
  readonly bufferSize?: number | undefined
2699
- }) => <R, E, R2, E2, A>(
2665
+ }) => <A, E2, R2, E, R>(
2700
2666
  self: Stream.Stream<Stream.Stream<A, E2, R2>, E, R>
2701
2667
  ) => Stream.Stream<A, E | E2, R | R2>,
2702
- <R, E, R2, E2, A>(
2668
+ <A, E2, R2, E, R>(
2703
2669
  self: Stream.Stream<Stream.Stream<A, E2, R2>, E, R>,
2704
2670
  options?: {
2705
2671
  readonly concurrency?: number | "unbounded" | undefined
@@ -2730,10 +2696,10 @@ export const flattenEffect = dual<
2730
2696
  readonly concurrency?: number | "unbounded" | undefined
2731
2697
  readonly unordered?: boolean | undefined
2732
2698
  }
2733
- ) => <R, E, R2, E2, A>(
2699
+ ) => <A, E2, R2, E, R>(
2734
2700
  self: Stream.Stream<Effect.Effect<A, E2, R2>, E, R>
2735
2701
  ) => Stream.Stream<A, E | E2, R | R2>,
2736
- <R, E, R2, E2, A>(
2702
+ <A, E2, R2, E, R>(
2737
2703
  self: Stream.Stream<Effect.Effect<A, E2, R2>, E, R>,
2738
2704
  options?: {
2739
2705
  readonly concurrency?: number | "unbounded" | undefined
@@ -2761,7 +2727,7 @@ export const flattenEffect = dual<
2761
2727
  )
2762
2728
 
2763
2729
  /** @internal */
2764
- export const flattenExitOption = <R, E, E2, A>(
2730
+ export const flattenExitOption = <A, E2, E, R>(
2765
2731
  self: Stream.Stream<Exit.Exit<A, Option.Option<E2>>, E, R>
2766
2732
  ): Stream.Stream<A, E | E2, R> => {
2767
2733
  const processChunk = (
@@ -2816,7 +2782,7 @@ export const flattenIterables = <A, E, R>(self: Stream.Stream<Iterable<A>, E, R>
2816
2782
  pipe(self, map(Chunk.fromIterable), flattenChunks)
2817
2783
 
2818
2784
  /** @internal */
2819
- export const flattenTake = <R, E, E2, A>(self: Stream.Stream<Take.Take<A, E2>, E, R>): Stream.Stream<A, E | E2, R> =>
2785
+ export const flattenTake = <A, E2, E, R>(self: Stream.Stream<Take.Take<A, E2>, E, R>): Stream.Stream<A, E | E2, R> =>
2820
2786
  flattenChunks(flattenExitOption(pipe(self, map((take) => take.exit))))
2821
2787
 
2822
2788
  /** @internal */
@@ -3051,7 +3017,7 @@ export const fromQueue = <A>(
3051
3017
  )
3052
3018
 
3053
3019
  /** @internal */
3054
- export const fromSchedule = <R, A>(schedule: Schedule.Schedule<R, unknown, A>): Stream.Stream<A, never, R> =>
3020
+ export const fromSchedule = <A, R>(schedule: Schedule.Schedule<A, unknown, R>): Stream.Stream<A, never, R> =>
3055
3021
  pipe(
3056
3022
  Schedule.driver(schedule),
3057
3023
  Effect.map((driver) => repeatEffectOption(driver.next(void 0))),
@@ -3133,14 +3099,14 @@ const readChunkStreamByobReader = <E>(
3133
3099
  export const groupAdjacentBy = dual<
3134
3100
  <A, K>(
3135
3101
  f: (a: A) => K
3136
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<[K, Chunk.NonEmptyChunk<A>], E, R>,
3137
- <R, E, A, K>(
3102
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<[K, Chunk.NonEmptyChunk<A>], E, R>,
3103
+ <A, E, R, K>(
3138
3104
  self: Stream.Stream<A, E, R>,
3139
3105
  f: (a: A) => K
3140
3106
  ) => Stream.Stream<[K, Chunk.NonEmptyChunk<A>], E, R>
3141
3107
  >(
3142
3108
  2,
3143
- <R, E, A, K>(
3109
+ <A, E, R, K>(
3144
3110
  self: Stream.Stream<A, E, R>,
3145
3111
  f: (a: A) => K
3146
3112
  ): Stream.Stream<[K, Chunk.NonEmptyChunk<A>], E, R> => {
@@ -3260,21 +3226,21 @@ export const groupedWithin = dual<
3260
3226
 
3261
3227
  /** @internal */
3262
3228
  export const haltWhen = dual<
3263
- <R2, E2, _>(
3264
- effect: Effect.Effect<_, E2, R2>
3229
+ <X, E2, R2>(
3230
+ effect: Effect.Effect<X, E2, R2>
3265
3231
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
3266
- <R, E, A, R2, E2, _>(
3232
+ <A, E, R, X, E2, R2>(
3267
3233
  self: Stream.Stream<A, E, R>,
3268
- effect: Effect.Effect<_, E2, R2>
3234
+ effect: Effect.Effect<X, E2, R2>
3269
3235
  ) => Stream.Stream<A, E2 | E, R2 | R>
3270
3236
  >(
3271
3237
  2,
3272
- <R, E, A, R2, E2, _>(
3238
+ <A, E, R, X, E2, R2>(
3273
3239
  self: Stream.Stream<A, E, R>,
3274
- effect: Effect.Effect<_, E2, R2>
3240
+ effect: Effect.Effect<X, E2, R2>
3275
3241
  ): Stream.Stream<A, E | E2, R | R2> => {
3276
3242
  const writer = (
3277
- fiber: Fiber.Fiber<_, E2>
3243
+ fiber: Fiber.Fiber<X, E2>
3278
3244
  ): Channel.Channel<Chunk.Chunk<A>, Chunk.Chunk<A>, E | E2, E | E2, void, unknown, R2> =>
3279
3245
  pipe(
3280
3246
  Fiber.poll(fiber),
@@ -3314,11 +3280,11 @@ export const haltAfter = dual<
3314
3280
 
3315
3281
  /** @internal */
3316
3282
  export const haltWhenDeferred = dual<
3317
- <E2, _>(deferred: Deferred.Deferred<_, E2>) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R>,
3318
- <R, E, A, E2, _>(self: Stream.Stream<A, E, R>, deferred: Deferred.Deferred<_, E2>) => Stream.Stream<A, E2 | E, R>
3283
+ <X, E2>(deferred: Deferred.Deferred<X, E2>) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R>,
3284
+ <A, E, R, X, E2>(self: Stream.Stream<A, E, R>, deferred: Deferred.Deferred<X, E2>) => Stream.Stream<A, E2 | E, R>
3319
3285
  >(
3320
3286
  2,
3321
- <R, E, A, E2, _>(self: Stream.Stream<A, E, R>, deferred: Deferred.Deferred<_, E2>): Stream.Stream<A, E | E2, R> => {
3287
+ <A, E, R, X, E2>(self: Stream.Stream<A, E, R>, deferred: Deferred.Deferred<X, E2>): Stream.Stream<A, E | E2, R> => {
3322
3288
  const writer: Channel.Channel<Chunk.Chunk<A>, Chunk.Chunk<A>, E | E2, E | E2, void, unknown, R> = pipe(
3323
3289
  Deferred.poll(deferred),
3324
3290
  Effect.map(Option.match({
@@ -3348,16 +3314,16 @@ export const identityStream = <A, E = never, R = never>(): Stream.Stream<A, E, R
3348
3314
 
3349
3315
  /** @internal */
3350
3316
  export const interleave = dual<
3351
- <R2, E2, A2>(
3317
+ <A2, E2, R2>(
3352
3318
  that: Stream.Stream<A2, E2, R2>
3353
3319
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2 | E, R2 | R>,
3354
- <R, E, A, R2, E2, A2>(
3320
+ <A, E, R, A2, E2, R2>(
3355
3321
  self: Stream.Stream<A, E, R>,
3356
3322
  that: Stream.Stream<A2, E2, R2>
3357
3323
  ) => Stream.Stream<A2 | A, E2 | E, R2 | R>
3358
3324
  >(
3359
3325
  2,
3360
- <R, E, A, R2, E2, A2>(
3326
+ <A, E, R, A2, E2, R2>(
3361
3327
  self: Stream.Stream<A, E, R>,
3362
3328
  that: Stream.Stream<A2, E2, R2>
3363
3329
  ): Stream.Stream<A2 | A, E2 | E, R2 | R> => pipe(self, interleaveWith(that, forever(make(true, false))))
@@ -3365,18 +3331,18 @@ export const interleave = dual<
3365
3331
 
3366
3332
  /** @internal */
3367
3333
  export const interleaveWith = dual<
3368
- <R2, E2, A2, R3, E3>(
3334
+ <A2, E2, R2, E3, R3>(
3369
3335
  that: Stream.Stream<A2, E2, R2>,
3370
3336
  decider: Stream.Stream<boolean, E3, R3>
3371
3337
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2 | E3 | E, R2 | R3 | R>,
3372
- <R, E, A, R2, E2, A2, R3, E3>(
3338
+ <A, E, R, A2, E2, R2, E3, R3>(
3373
3339
  self: Stream.Stream<A, E, R>,
3374
3340
  that: Stream.Stream<A2, E2, R2>,
3375
3341
  decider: Stream.Stream<boolean, E3, R3>
3376
3342
  ) => Stream.Stream<A2 | A, E2 | E3 | E, R2 | R3 | R>
3377
3343
  >(
3378
3344
  3,
3379
- <R, E, A, R2, E2, A2, R3, E3>(
3345
+ <A, E, R, A2, E2, R2, E3, R3>(
3380
3346
  self: Stream.Stream<A, E, R>,
3381
3347
  that: Stream.Stream<A2, E2, R2>,
3382
3348
  decider: Stream.Stream<boolean, E3, R3>
@@ -3388,7 +3354,7 @@ export const interleaveWith = dual<
3388
3354
  onInput: (value: A | A2) =>
3389
3355
  core.flatMap(
3390
3356
  core.fromEffect(
3391
- Handoff.offer<Take.Take<A | A2, E | E2 | E3>>(handoff, _take.of(value))
3357
+ Handoff.offer<Take.Take<A | A2, E | E2 | E3>>(handoff, InternalTake.of(value))
3392
3358
  ),
3393
3359
  () => producer(handoff)
3394
3360
  ),
@@ -3396,12 +3362,12 @@ export const interleaveWith = dual<
3396
3362
  core.fromEffect(
3397
3363
  Handoff.offer<Take.Take<A | A2, E | E2 | E3>>(
3398
3364
  handoff,
3399
- _take.failCause(cause)
3365
+ InternalTake.failCause(cause)
3400
3366
  )
3401
3367
  ),
3402
3368
  onDone: () =>
3403
3369
  core.fromEffect(
3404
- Handoff.offer<Take.Take<A | A2, E | E2 | E3>>(handoff, _take.end)
3370
+ Handoff.offer<Take.Take<A | A2, E | E2 | E3>>(handoff, InternalTake.end)
3405
3371
  )
3406
3372
  })
3407
3373
  return new StreamImpl(
@@ -3437,7 +3403,7 @@ export const interleaveWith = dual<
3437
3403
  if (bool && !leftDone) {
3438
3404
  return pipe(
3439
3405
  core.fromEffect(Handoff.take(left)),
3440
- core.flatMap(_take.match({
3406
+ core.flatMap(InternalTake.match({
3441
3407
  onEnd: () => rightDone ? core.unit : process(true, rightDone),
3442
3408
  onFailure: core.failCause,
3443
3409
  onSuccess: (chunk) => pipe(core.write(chunk), core.flatMap(() => process(leftDone, rightDone)))
@@ -3447,7 +3413,7 @@ export const interleaveWith = dual<
3447
3413
  if (!bool && !rightDone) {
3448
3414
  return pipe(
3449
3415
  core.fromEffect(Handoff.take(right)),
3450
- core.flatMap(_take.match({
3416
+ core.flatMap(InternalTake.match({
3451
3417
  onEnd: () => leftDone ? core.unit : process(leftDone, true),
3452
3418
  onFailure: core.failCause,
3453
3419
  onSuccess: (chunk) => pipe(core.write(chunk), core.flatMap(() => process(leftDone, rightDone)))
@@ -3474,8 +3440,8 @@ export const interleaveWith = dual<
3474
3440
  /** @internal */
3475
3441
  export const intersperse = dual<
3476
3442
  <A2>(element: A2) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E, R>,
3477
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, element: A2) => Stream.Stream<A2 | A, E, R>
3478
- >(2, <R, E, A, A2>(self: Stream.Stream<A, E, R>, element: A2): Stream.Stream<A2 | A, E, R> =>
3443
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, element: A2) => Stream.Stream<A2 | A, E, R>
3444
+ >(2, <A, E, R, A2>(self: Stream.Stream<A, E, R>, element: A2): Stream.Stream<A2 | A, E, R> =>
3479
3445
  new StreamImpl(
3480
3446
  pipe(
3481
3447
  toChannel(self),
@@ -3520,7 +3486,7 @@ export const intersperseAffixes = dual<
3520
3486
  readonly end: A4
3521
3487
  }
3522
3488
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A3 | A4 | A, E, R>,
3523
- <R, E, A, A2, A3, A4>(
3489
+ <A, E, R, A2, A3, A4>(
3524
3490
  self: Stream.Stream<A, E, R>,
3525
3491
  options: {
3526
3492
  readonly start: A2
@@ -3530,7 +3496,7 @@ export const intersperseAffixes = dual<
3530
3496
  ) => Stream.Stream<A2 | A3 | A4 | A, E, R>
3531
3497
  >(
3532
3498
  2,
3533
- <R, E, A, A2, A3, A4>(
3499
+ <A, E, R, A2, A3, A4>(
3534
3500
  self: Stream.Stream<A, E, R>,
3535
3501
  { end, middle, start }: {
3536
3502
  readonly start: A2
@@ -3557,28 +3523,28 @@ export const interruptAfter = dual<
3557
3523
 
3558
3524
  /** @internal */
3559
3525
  export const interruptWhen = dual<
3560
- <R2, E2, _>(
3561
- effect: Effect.Effect<_, E2, R2>
3526
+ <X, E2, R2>(
3527
+ effect: Effect.Effect<X, E2, R2>
3562
3528
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
3563
- <R, E, A, R2, E2, _>(
3529
+ <A, E, R, X, E2, R2>(
3564
3530
  self: Stream.Stream<A, E, R>,
3565
- effect: Effect.Effect<_, E2, R2>
3531
+ effect: Effect.Effect<X, E2, R2>
3566
3532
  ) => Stream.Stream<A, E2 | E, R2 | R>
3567
3533
  >(
3568
3534
  2,
3569
- <R, E, A, R2, E2, _>(
3535
+ <A, E, R, X, E2, R2>(
3570
3536
  self: Stream.Stream<A, E, R>,
3571
- effect: Effect.Effect<_, E2, R2>
3537
+ effect: Effect.Effect<X, E2, R2>
3572
3538
  ): Stream.Stream<A, E | E2, R | R2> => new StreamImpl(pipe(toChannel(self), channel.interruptWhen(effect)))
3573
3539
  )
3574
3540
 
3575
3541
  /** @internal */
3576
3542
  export const interruptWhenDeferred = dual<
3577
- <E2, _>(deferred: Deferred.Deferred<_, E2>) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R>,
3578
- <R, E, A, E2, _>(self: Stream.Stream<A, E, R>, deferred: Deferred.Deferred<_, E2>) => Stream.Stream<A, E2 | E, R>
3543
+ <X, E2>(deferred: Deferred.Deferred<X, E2>) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R>,
3544
+ <A, E, R, X, E2>(self: Stream.Stream<A, E, R>, deferred: Deferred.Deferred<X, E2>) => Stream.Stream<A, E2 | E, R>
3579
3545
  >(
3580
3546
  2,
3581
- <R, E, A, E2, _>(self: Stream.Stream<A, E, R>, deferred: Deferred.Deferred<_, E2>): Stream.Stream<A, E2 | E, R> =>
3547
+ <A, E, R, X, E2>(self: Stream.Stream<A, E, R>, deferred: Deferred.Deferred<X, E2>): Stream.Stream<A, E2 | E, R> =>
3582
3548
  new StreamImpl(pipe(toChannel(self), channel.interruptWhenDeferred(deferred)))
3583
3549
  )
3584
3550
 
@@ -3591,11 +3557,11 @@ export const make = <As extends Array<any>>(...as: As): Stream.Stream<As[number]
3591
3557
 
3592
3558
  /** @internal */
3593
3559
  export const map = dual<
3594
- <A, B>(f: (a: A) => B) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>,
3595
- <R, E, A, B>(self: Stream.Stream<A, E, R>, f: (a: A) => B) => Stream.Stream<B, E, R>
3560
+ <A, B>(f: (a: A) => B) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>,
3561
+ <A, E, R, B>(self: Stream.Stream<A, E, R>, f: (a: A) => B) => Stream.Stream<B, E, R>
3596
3562
  >(
3597
3563
  2,
3598
- <R, E, A, B>(self: Stream.Stream<A, E, R>, f: (a: A) => B): Stream.Stream<B, E, R> =>
3564
+ <A, E, R, B>(self: Stream.Stream<A, E, R>, f: (a: A) => B): Stream.Stream<B, E, R> =>
3599
3565
  new StreamImpl(pipe(toChannel(self), channel.mapOut(Chunk.map(f))))
3600
3566
  )
3601
3567
 
@@ -3604,11 +3570,11 @@ export const mapAccum = dual<
3604
3570
  <S, A, A2>(
3605
3571
  s: S,
3606
3572
  f: (s: S, a: A) => readonly [S, A2]
3607
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E, R>,
3608
- <R, E, S, A, A2>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => readonly [S, A2]) => Stream.Stream<A2, E, R>
3573
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E, R>,
3574
+ <A, E, R, S, A2>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => readonly [S, A2]) => Stream.Stream<A2, E, R>
3609
3575
  >(
3610
3576
  3,
3611
- <R, E, S, A, A2>(
3577
+ <A, E, R, S, A2>(
3612
3578
  self: Stream.Stream<A, E, R>,
3613
3579
  s: S,
3614
3580
  f: (s: S, a: A) => readonly [S, A2]
@@ -3634,15 +3600,15 @@ export const mapAccumEffect = dual<
3634
3600
  <S, A, A2, E2, R2>(
3635
3601
  s: S,
3636
3602
  f: (s: S, a: A) => Effect.Effect<readonly [S, A2], E2, R2>
3637
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3638
- <R, E, A, S, A2, E2, R2>(
3603
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3604
+ <A, E, R, S, A2, E2, R2>(
3639
3605
  self: Stream.Stream<A, E, R>,
3640
3606
  s: S,
3641
3607
  f: (s: S, a: A) => Effect.Effect<readonly [S, A2], E2, R2>
3642
3608
  ) => Stream.Stream<A2, E2 | E, R2 | R>
3643
3609
  >(
3644
3610
  3,
3645
- <R, E, A, S, A2, E2, R2>(
3611
+ <A, E, R, S, A2, E2, R2>(
3646
3612
  self: Stream.Stream<A, E, R>,
3647
3613
  s: S,
3648
3614
  f: (s: S, a: A) => Effect.Effect<readonly [S, A2], E2, R2>
@@ -3695,7 +3661,7 @@ export const mapBoth = dual<
3695
3661
  readonly onSuccess: (a: A) => A2
3696
3662
  }
3697
3663
  ) => <R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2, R>,
3698
- <R, E, E2, A, A2>(
3664
+ <A, E, R, E2, A2>(
3699
3665
  self: Stream.Stream<A, E, R>,
3700
3666
  options: {
3701
3667
  readonly onFailure: (e: E) => E2
@@ -3704,7 +3670,7 @@ export const mapBoth = dual<
3704
3670
  ) => Stream.Stream<A2, E2, R>
3705
3671
  >(
3706
3672
  2,
3707
- <R, E, E2, A, A2>(
3673
+ <A, E, R, E2, A2>(
3708
3674
  self: Stream.Stream<A, E, R>,
3709
3675
  options: {
3710
3676
  readonly onFailure: (e: E) => E2
@@ -3718,25 +3684,25 @@ export const mapChunks = dual<
3718
3684
  <A, B>(
3719
3685
  f: (chunk: Chunk.Chunk<A>) => Chunk.Chunk<B>
3720
3686
  ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>,
3721
- <R, E, A, B>(self: Stream.Stream<A, E, R>, f: (chunk: Chunk.Chunk<A>) => Chunk.Chunk<B>) => Stream.Stream<B, E, R>
3687
+ <A, E, R, B>(self: Stream.Stream<A, E, R>, f: (chunk: Chunk.Chunk<A>) => Chunk.Chunk<B>) => Stream.Stream<B, E, R>
3722
3688
  >(
3723
3689
  2,
3724
- <R, E, A, B>(self: Stream.Stream<A, E, R>, f: (chunk: Chunk.Chunk<A>) => Chunk.Chunk<B>): Stream.Stream<B, E, R> =>
3690
+ <A, E, R, B>(self: Stream.Stream<A, E, R>, f: (chunk: Chunk.Chunk<A>) => Chunk.Chunk<B>): Stream.Stream<B, E, R> =>
3725
3691
  new StreamImpl(pipe(toChannel(self), channel.mapOut(f)))
3726
3692
  )
3727
3693
 
3728
3694
  /** @internal */
3729
3695
  export const mapChunksEffect = dual<
3730
- <A, R2, E2, B>(
3696
+ <A, B, E2, R2>(
3731
3697
  f: (chunk: Chunk.Chunk<A>) => Effect.Effect<Chunk.Chunk<B>, E2, R2>
3732
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E2 | E, R2 | R>,
3733
- <R, E, A, R2, E2, B>(
3698
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E2 | E, R2 | R>,
3699
+ <A, E, R, B, E2, R2>(
3734
3700
  self: Stream.Stream<A, E, R>,
3735
3701
  f: (chunk: Chunk.Chunk<A>) => Effect.Effect<Chunk.Chunk<B>, E2, R2>
3736
3702
  ) => Stream.Stream<B, E2 | E, R2 | R>
3737
3703
  >(
3738
3704
  2,
3739
- <R, E, A, R2, E2, B>(
3705
+ <A, E, R, B, E2, R2>(
3740
3706
  self: Stream.Stream<A, E, R>,
3741
3707
  f: (chunk: Chunk.Chunk<A>) => Effect.Effect<Chunk.Chunk<B>, E2, R2>
3742
3708
  ): Stream.Stream<B, E2 | E, R2 | R> => new StreamImpl(pipe(toChannel(self), channel.mapOutEffect(f)))
@@ -3744,36 +3710,36 @@ export const mapChunksEffect = dual<
3744
3710
 
3745
3711
  /** @internal */
3746
3712
  export const mapConcat = dual<
3747
- <A, A2>(f: (a: A) => Iterable<A2>) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E, R>,
3748
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, f: (a: A) => Iterable<A2>) => Stream.Stream<A2, E, R>
3713
+ <A, A2>(f: (a: A) => Iterable<A2>) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E, R>,
3714
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, f: (a: A) => Iterable<A2>) => Stream.Stream<A2, E, R>
3749
3715
  >(
3750
3716
  2,
3751
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, f: (a: A) => Iterable<A2>): Stream.Stream<A2, E, R> =>
3717
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, f: (a: A) => Iterable<A2>): Stream.Stream<A2, E, R> =>
3752
3718
  pipe(self, mapConcatChunk((a) => Chunk.fromIterable(f(a))))
3753
3719
  )
3754
3720
 
3755
3721
  /** @internal */
3756
3722
  export const mapConcatChunk = dual<
3757
- <A, A2>(f: (a: A) => Chunk.Chunk<A2>) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E, R>,
3758
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, f: (a: A) => Chunk.Chunk<A2>) => Stream.Stream<A2, E, R>
3723
+ <A, A2>(f: (a: A) => Chunk.Chunk<A2>) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E, R>,
3724
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, f: (a: A) => Chunk.Chunk<A2>) => Stream.Stream<A2, E, R>
3759
3725
  >(
3760
3726
  2,
3761
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, f: (a: A) => Chunk.Chunk<A2>): Stream.Stream<A2, E, R> =>
3727
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, f: (a: A) => Chunk.Chunk<A2>): Stream.Stream<A2, E, R> =>
3762
3728
  pipe(self, mapChunks(Chunk.flatMap(f)))
3763
3729
  )
3764
3730
 
3765
3731
  /** @internal */
3766
3732
  export const mapConcatChunkEffect = dual<
3767
- <A, R2, E2, A2>(
3733
+ <A, A2, E2, R2>(
3768
3734
  f: (a: A) => Effect.Effect<Chunk.Chunk<A2>, E2, R2>
3769
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3770
- <R, E, A, R2, E2, A2>(
3735
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3736
+ <A, E, R, A2, E2, R2>(
3771
3737
  self: Stream.Stream<A, E, R>,
3772
3738
  f: (a: A) => Effect.Effect<Chunk.Chunk<A2>, E2, R2>
3773
3739
  ) => Stream.Stream<A2, E2 | E, R2 | R>
3774
3740
  >(
3775
3741
  2,
3776
- <R, E, A, R2, E2, A2>(
3742
+ <A, E, R, A2, E2, R2>(
3777
3743
  self: Stream.Stream<A, E, R>,
3778
3744
  f: (a: A) => Effect.Effect<Chunk.Chunk<A2>, E2, R2>
3779
3745
  ): Stream.Stream<A2, E | E2, R | R2> => pipe(self, mapEffectSequential(f), mapConcatChunk(identity))
@@ -3781,16 +3747,16 @@ export const mapConcatChunkEffect = dual<
3781
3747
 
3782
3748
  /** @internal */
3783
3749
  export const mapConcatEffect = dual<
3784
- <A, R2, E2, A2>(
3750
+ <A, A2, E2, R2>(
3785
3751
  f: (a: A) => Effect.Effect<Iterable<A2>, E2, R2>
3786
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3787
- <R, E, A, R2, E2, A2>(
3752
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3753
+ <A, E, R, A2, E2, R2>(
3788
3754
  self: Stream.Stream<A, E, R>,
3789
3755
  f: (a: A) => Effect.Effect<Iterable<A2>, E2, R2>
3790
3756
  ) => Stream.Stream<A2, E2 | E, R2 | R>
3791
3757
  >(
3792
3758
  2,
3793
- <R, E, A, R2, E2, A2>(
3759
+ <A, E, R, A2, E2, R2>(
3794
3760
  self: Stream.Stream<A, E, R>,
3795
3761
  f: (a: A) => Effect.Effect<Iterable<A2>, E2, R2>
3796
3762
  ): Stream.Stream<A2, E | E2, R | R2> =>
@@ -3799,16 +3765,16 @@ export const mapConcatEffect = dual<
3799
3765
 
3800
3766
  /** @internal */
3801
3767
  export const mapEffectSequential = dual<
3802
- <A, R2, E2, A2>(
3768
+ <A, A2, E2, R2>(
3803
3769
  f: (a: A) => Effect.Effect<A2, E2, R2>
3804
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3805
- <R, E, A, R2, E2, A2>(
3770
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3771
+ <A, E, R, A2, E2, R2>(
3806
3772
  self: Stream.Stream<A, E, R>,
3807
3773
  f: (a: A) => Effect.Effect<A2, E2, R2>
3808
3774
  ) => Stream.Stream<A2, E2 | E, R2 | R>
3809
3775
  >(
3810
3776
  2,
3811
- <R, E, A, R2, E2, A2>(
3777
+ <A, E, R, A2, E2, R2>(
3812
3778
  self: Stream.Stream<A, E, R>,
3813
3779
  f: (a: A) => Effect.Effect<A2, E2, R2>
3814
3780
  ): Stream.Stream<A2, E | E2, R | R2> => {
@@ -3842,18 +3808,18 @@ export const mapEffectSequential = dual<
3842
3808
 
3843
3809
  /** @internal */
3844
3810
  export const mapEffectPar = dual<
3845
- <A, R2, E2, A2>(
3811
+ <A, A2, E2, R2>(
3846
3812
  n: number,
3847
3813
  f: (a: A) => Effect.Effect<A2, E2, R2>
3848
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3849
- <R, E, A, R2, E2, A2>(
3814
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3815
+ <A, E, R, A2, E2, R2>(
3850
3816
  self: Stream.Stream<A, E, R>,
3851
3817
  n: number,
3852
3818
  f: (a: A) => Effect.Effect<A2, E2, R2>
3853
3819
  ) => Stream.Stream<A2, E2 | E, R2 | R>
3854
3820
  >(
3855
3821
  3,
3856
- <R, E, A, R2, E2, A2>(
3822
+ <A, E, R, A2, E2, R2>(
3857
3823
  self: Stream.Stream<A, E, R>,
3858
3824
  n: number,
3859
3825
  f: (a: A) => Effect.Effect<A2, E2, R2>
@@ -3870,11 +3836,11 @@ export const mapEffectPar = dual<
3870
3836
 
3871
3837
  /** @internal */
3872
3838
  export const mapError = dual<
3873
- <E, E2>(f: (error: E) => E2) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2, R>,
3874
- <R, A, E, E2>(self: Stream.Stream<A, E, R>, f: (error: E) => E2) => Stream.Stream<A, E2, R>
3839
+ <E, E2>(f: (error: E) => E2) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2, R>,
3840
+ <A, E, R, E2>(self: Stream.Stream<A, E, R>, f: (error: E) => E2) => Stream.Stream<A, E2, R>
3875
3841
  >(
3876
3842
  2,
3877
- <R, A, E, E2>(self: Stream.Stream<A, E, R>, f: (error: E) => E2): Stream.Stream<A, E2, R> =>
3843
+ <A, E, R, E2>(self: Stream.Stream<A, E, R>, f: (error: E) => E2): Stream.Stream<A, E2, R> =>
3878
3844
  new StreamImpl(pipe(toChannel(self), channel.mapError(f)))
3879
3845
  )
3880
3846
 
@@ -3882,23 +3848,23 @@ export const mapError = dual<
3882
3848
  export const mapErrorCause = dual<
3883
3849
  <E, E2>(
3884
3850
  f: (cause: Cause.Cause<E>) => Cause.Cause<E2>
3885
- ) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2, R>,
3886
- <R, A, E, E2>(self: Stream.Stream<A, E, R>, f: (cause: Cause.Cause<E>) => Cause.Cause<E2>) => Stream.Stream<A, E2, R>
3851
+ ) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2, R>,
3852
+ <A, E, R, E2>(self: Stream.Stream<A, E, R>, f: (cause: Cause.Cause<E>) => Cause.Cause<E2>) => Stream.Stream<A, E2, R>
3887
3853
  >(
3888
3854
  2,
3889
- <R, A, E, E2>(self: Stream.Stream<A, E, R>, f: (cause: Cause.Cause<E>) => Cause.Cause<E2>): Stream.Stream<A, E2, R> =>
3855
+ <A, E, R, E2>(self: Stream.Stream<A, E, R>, f: (cause: Cause.Cause<E>) => Cause.Cause<E2>): Stream.Stream<A, E2, R> =>
3890
3856
  new StreamImpl(pipe(toChannel(self), channel.mapErrorCause(f)))
3891
3857
  )
3892
3858
 
3893
3859
  /** @internal */
3894
3860
  export const merge = dual<
3895
- <R2, E2, A2>(
3861
+ <A2, E2, R2>(
3896
3862
  that: Stream.Stream<A2, E2, R2>,
3897
3863
  options?: {
3898
3864
  readonly haltStrategy?: HaltStrategy.HaltStrategyInput | undefined
3899
3865
  }
3900
3866
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2 | E, R2 | R>,
3901
- <R, E, A, R2, E2, A2>(
3867
+ <A, E, R, A2, E2, R2>(
3902
3868
  self: Stream.Stream<A, E, R>,
3903
3869
  that: Stream.Stream<A2, E2, R2>,
3904
3870
  options?: {
@@ -3907,7 +3873,7 @@ export const merge = dual<
3907
3873
  ) => Stream.Stream<A2 | A, E2 | E, R2 | R>
3908
3874
  >(
3909
3875
  (args) => isStream(args[1]),
3910
- <R, E, A, R2, E2, A2>(
3876
+ <A, E, R, A2, E2, R2>(
3911
3877
  self: Stream.Stream<A, E, R>,
3912
3878
  that: Stream.Stream<A2, E2, R2>,
3913
3879
  options?: {
@@ -3935,34 +3901,34 @@ export const mergeAll = dual<
3935
3901
 
3936
3902
  /** @internal */
3937
3903
  export const mergeEither = dual<
3938
- <R2, E2, A2>(
3904
+ <A2, E2, R2>(
3939
3905
  that: Stream.Stream<A2, E2, R2>
3940
- ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<Either.Either<A, A2>, E2 | E, R2 | R>,
3941
- <R, E, A, R2, E2, A2>(
3906
+ ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<Either.Either<A2, A>, E2 | E, R2 | R>,
3907
+ <A, E, R, A2, E2, R2>(
3942
3908
  self: Stream.Stream<A, E, R>,
3943
3909
  that: Stream.Stream<A2, E2, R2>
3944
- ) => Stream.Stream<Either.Either<A, A2>, E2 | E, R2 | R>
3910
+ ) => Stream.Stream<Either.Either<A2, A>, E2 | E, R2 | R>
3945
3911
  >(
3946
3912
  2,
3947
- <R, E, A, R2, E2, A2>(
3913
+ <A, E, R, A2, E2, R2>(
3948
3914
  self: Stream.Stream<A, E, R>,
3949
3915
  that: Stream.Stream<A2, E2, R2>
3950
- ): Stream.Stream<Either.Either<A, A2>, E2 | E, R2 | R> =>
3916
+ ): Stream.Stream<Either.Either<A2, A>, E2 | E, R2 | R> =>
3951
3917
  mergeWith(self, that, { onSelf: Either.left, onOther: Either.right })
3952
3918
  )
3953
3919
 
3954
3920
  /** @internal */
3955
3921
  export const mergeLeft = dual<
3956
- <R2, E2, A2>(
3922
+ <A2, E2, R2>(
3957
3923
  that: Stream.Stream<A2, E2, R2>
3958
3924
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
3959
- <R, E, A, R2, E2, A2>(
3925
+ <A, E, R, A2, E2, R2>(
3960
3926
  self: Stream.Stream<A, E, R>,
3961
3927
  that: Stream.Stream<A2, E2, R2>
3962
3928
  ) => Stream.Stream<A, E2 | E, R2 | R>
3963
3929
  >(
3964
3930
  2,
3965
- <R, E, A, R2, E2, A2>(
3931
+ <A, E, R, A2, E2, R2>(
3966
3932
  self: Stream.Stream<A, E, R>,
3967
3933
  that: Stream.Stream<A2, E2, R2>
3968
3934
  ): Stream.Stream<A, E | E2, R | R2> => pipe(self, merge(drain(that)))
@@ -3970,16 +3936,16 @@ export const mergeLeft = dual<
3970
3936
 
3971
3937
  /** @internal */
3972
3938
  export const mergeRight = dual<
3973
- <R2, E2, A2>(
3939
+ <A2, E2, R2>(
3974
3940
  that: Stream.Stream<A2, E2, R2>
3975
3941
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
3976
- <R, E, A, R2, E2, A2>(
3942
+ <A, E, R, A2, E2, R2>(
3977
3943
  self: Stream.Stream<A, E, R>,
3978
3944
  that: Stream.Stream<A2, E2, R2>
3979
3945
  ) => Stream.Stream<A2, E2 | E, R2 | R>
3980
3946
  >(
3981
3947
  2,
3982
- <R, E, A, R2, E2, A2>(
3948
+ <A, E, R, A2, E2, R2>(
3983
3949
  self: Stream.Stream<A, E, R>,
3984
3950
  that: Stream.Stream<A2, E2, R2>
3985
3951
  ): Stream.Stream<A2, E | E2, R | R2> => pipe(drain(self), merge(that))
@@ -3987,15 +3953,15 @@ export const mergeRight = dual<
3987
3953
 
3988
3954
  /** @internal */
3989
3955
  export const mergeWith = dual<
3990
- <R2, E2, A2, A, A3, A4>(
3956
+ <A2, E2, R2, A, A3, A4>(
3991
3957
  other: Stream.Stream<A2, E2, R2>,
3992
3958
  options: {
3993
3959
  readonly onSelf: (a: A) => A3
3994
3960
  readonly onOther: (a2: A2) => A4
3995
3961
  readonly haltStrategy?: HaltStrategy.HaltStrategyInput | undefined
3996
3962
  }
3997
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3 | A4, E2 | E, R2 | R>,
3998
- <R, E, R2, E2, A2, A, A3, A4>(
3963
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3 | A4, E2 | E, R2 | R>,
3964
+ <A, E, R, A2, E2, R2, A3, A4>(
3999
3965
  self: Stream.Stream<A, E, R>,
4000
3966
  other: Stream.Stream<A2, E2, R2>,
4001
3967
  options: {
@@ -4006,7 +3972,7 @@ export const mergeWith = dual<
4006
3972
  ) => Stream.Stream<A3 | A4, E2 | E, R2 | R>
4007
3973
  >(
4008
3974
  3,
4009
- <R, E, R2, E2, A2, A, A3, A4>(
3975
+ <A, E, R, A2, E2, R2, A3, A4>(
4010
3976
  self: Stream.Stream<A, E, R>,
4011
3977
  other: Stream.Stream<A2, E2, R2>,
4012
3978
  options: {
@@ -4035,7 +4001,7 @@ export const mergeWith = dual<
4035
4001
  )
4036
4002
 
4037
4003
  /** @internal */
4038
- export const mkString = <R, E>(self: Stream.Stream<string, E, R>): Effect.Effect<string, E, R> =>
4004
+ export const mkString = <E, R>(self: Stream.Stream<string, E, R>): Effect.Effect<string, E, R> =>
4039
4005
  run(self, _sink.mkString)
4040
4006
 
4041
4007
  /** @internal */
@@ -4043,36 +4009,36 @@ export const never: Stream.Stream<never> = fromEffect(Effect.never)
4043
4009
 
4044
4010
  /** @internal */
4045
4011
  export const onError = dual<
4046
- <E, R2, _>(
4047
- cleanup: (cause: Cause.Cause<E>) => Effect.Effect<_, never, R2>
4048
- ) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R2 | R>,
4049
- <R, A, E, R2, _>(
4012
+ <E, X, R2>(
4013
+ cleanup: (cause: Cause.Cause<E>) => Effect.Effect<X, never, R2>
4014
+ ) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R2 | R>,
4015
+ <A, E, R, X, R2>(
4050
4016
  self: Stream.Stream<A, E, R>,
4051
- cleanup: (cause: Cause.Cause<E>) => Effect.Effect<_, never, R2>
4017
+ cleanup: (cause: Cause.Cause<E>) => Effect.Effect<X, never, R2>
4052
4018
  ) => Stream.Stream<A, E, R2 | R>
4053
4019
  >(
4054
4020
  2,
4055
- <R, A, E, R2, _>(
4021
+ <A, E, R, X, R2>(
4056
4022
  self: Stream.Stream<A, E, R>,
4057
- cleanup: (cause: Cause.Cause<E>) => Effect.Effect<_, never, R2>
4023
+ cleanup: (cause: Cause.Cause<E>) => Effect.Effect<X, never, R2>
4058
4024
  ): Stream.Stream<A, E, R | R2> =>
4059
4025
  pipe(self, catchAllCause((cause) => fromEffect(pipe(cleanup(cause), Effect.zipRight(Effect.failCause(cause))))))
4060
4026
  )
4061
4027
 
4062
4028
  /** @internal */
4063
4029
  export const onDone = dual<
4064
- <R2, _>(
4065
- cleanup: () => Effect.Effect<_, never, R2>
4030
+ <X, R2>(
4031
+ cleanup: () => Effect.Effect<X, never, R2>
4066
4032
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R2 | R>,
4067
- <R, E, A, R2, _>(
4033
+ <A, E, R, X, R2>(
4068
4034
  self: Stream.Stream<A, E, R>,
4069
- cleanup: () => Effect.Effect<_, never, R2>
4035
+ cleanup: () => Effect.Effect<X, never, R2>
4070
4036
  ) => Stream.Stream<A, E, R2 | R>
4071
4037
  >(
4072
4038
  2,
4073
- <R, E, A, R2, _>(
4039
+ <A, E, R, X, R2>(
4074
4040
  self: Stream.Stream<A, E, R>,
4075
- cleanup: () => Effect.Effect<_, never, R2>
4041
+ cleanup: () => Effect.Effect<X, never, R2>
4076
4042
  ): Stream.Stream<A, E, R | R2> =>
4077
4043
  new StreamImpl<A, E, R | R2>(
4078
4044
  pipe(toChannel(self), core.ensuringWith((exit) => Exit.isSuccess(exit) ? cleanup() : Effect.unit))
@@ -4085,26 +4051,26 @@ export const orDie = <A, E, R>(self: Stream.Stream<A, E, R>): Stream.Stream<A, n
4085
4051
 
4086
4052
  /** @internal */
4087
4053
  export const orDieWith = dual<
4088
- <E>(f: (e: E) => unknown) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, never, R>,
4089
- <R, A, E>(self: Stream.Stream<A, E, R>, f: (e: E) => unknown) => Stream.Stream<A, never, R>
4054
+ <E>(f: (e: E) => unknown) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, never, R>,
4055
+ <A, E, R>(self: Stream.Stream<A, E, R>, f: (e: E) => unknown) => Stream.Stream<A, never, R>
4090
4056
  >(
4091
4057
  2,
4092
- <R, A, E>(self: Stream.Stream<A, E, R>, f: (e: E) => unknown): Stream.Stream<A, never, R> =>
4058
+ <A, E, R>(self: Stream.Stream<A, E, R>, f: (e: E) => unknown): Stream.Stream<A, never, R> =>
4093
4059
  new StreamImpl(pipe(toChannel(self), channel.orDieWith(f)))
4094
4060
  )
4095
4061
 
4096
4062
  /** @internal */
4097
4063
  export const orElse = dual<
4098
- <R2, E2, A2>(
4064
+ <A2, E2, R2>(
4099
4065
  that: LazyArg<Stream.Stream<A2, E2, R2>>
4100
4066
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2, R2 | R>,
4101
- <R, E, A, R2, E2, A2>(
4067
+ <A, E, R, A2, E2, R2>(
4102
4068
  self: Stream.Stream<A, E, R>,
4103
4069
  that: LazyArg<Stream.Stream<A2, E2, R2>>
4104
4070
  ) => Stream.Stream<A2 | A, E2, R2 | R>
4105
4071
  >(
4106
4072
  2,
4107
- <R, E, A, R2, E2, A2>(
4073
+ <A, E, R, A2, E2, R2>(
4108
4074
  self: Stream.Stream<A, E, R>,
4109
4075
  that: LazyArg<Stream.Stream<A2, E2, R2>>
4110
4076
  ): Stream.Stream<A2 | A, E2, R2 | R> =>
@@ -4113,64 +4079,64 @@ export const orElse = dual<
4113
4079
 
4114
4080
  /** @internal */
4115
4081
  export const orElseEither = dual<
4116
- <R2, E2, A2>(
4082
+ <A2, E2, R2>(
4117
4083
  that: LazyArg<Stream.Stream<A2, E2, R2>>
4118
- ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<Either.Either<A, A2>, E2, R2 | R>,
4119
- <R, E, A, R2, E2, A2>(
4084
+ ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<Either.Either<A2, A>, E2, R2 | R>,
4085
+ <A, E, R, A2, E2, R2>(
4120
4086
  self: Stream.Stream<A, E, R>,
4121
4087
  that: LazyArg<Stream.Stream<A2, E2, R2>>
4122
- ) => Stream.Stream<Either.Either<A, A2>, E2, R2 | R>
4088
+ ) => Stream.Stream<Either.Either<A2, A>, E2, R2 | R>
4123
4089
  >(
4124
4090
  2,
4125
- <R, E, A, R2, E2, A2>(
4091
+ <A, E, R, A2, E2, R2>(
4126
4092
  self: Stream.Stream<A, E, R>,
4127
4093
  that: LazyArg<Stream.Stream<A2, E2, R2>>
4128
- ): Stream.Stream<Either.Either<A, A2>, E2, R2 | R> =>
4094
+ ): Stream.Stream<Either.Either<A2, A>, E2, R2 | R> =>
4129
4095
  pipe(self, map(Either.left), orElse(() => pipe(that(), map(Either.right))))
4130
4096
  )
4131
4097
 
4132
4098
  /** @internal */
4133
4099
  export const orElseFail = dual<
4134
4100
  <E2>(error: LazyArg<E2>) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2, R>,
4135
- <R, E, A, E2>(self: Stream.Stream<A, E, R>, error: LazyArg<E2>) => Stream.Stream<A, E2, R>
4101
+ <A, E, R, E2>(self: Stream.Stream<A, E, R>, error: LazyArg<E2>) => Stream.Stream<A, E2, R>
4136
4102
  >(
4137
4103
  2,
4138
- <R, E, A, E2>(self: Stream.Stream<A, E, R>, error: LazyArg<E2>): Stream.Stream<A, E2, R> =>
4104
+ <A, E, R, E2>(self: Stream.Stream<A, E, R>, error: LazyArg<E2>): Stream.Stream<A, E2, R> =>
4139
4105
  pipe(self, orElse(() => failSync(error)))
4140
4106
  )
4141
4107
 
4142
4108
  /** @internal */
4143
4109
  export const orElseIfEmpty = dual<
4144
4110
  <A2>(element: LazyArg<A2>) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E, R>,
4145
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, element: LazyArg<A2>) => Stream.Stream<A2 | A, E, R>
4111
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, element: LazyArg<A2>) => Stream.Stream<A2 | A, E, R>
4146
4112
  >(
4147
4113
  2,
4148
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, element: LazyArg<A2>): Stream.Stream<A | A2, E, R> =>
4114
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, element: LazyArg<A2>): Stream.Stream<A | A2, E, R> =>
4149
4115
  pipe(self, orElseIfEmptyChunk(() => Chunk.of(element())))
4150
4116
  )
4151
4117
 
4152
4118
  /** @internal */
4153
4119
  export const orElseIfEmptyChunk = dual<
4154
4120
  <A2>(chunk: LazyArg<Chunk.Chunk<A2>>) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E, R>,
4155
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, chunk: LazyArg<Chunk.Chunk<A2>>) => Stream.Stream<A2 | A, E, R>
4121
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, chunk: LazyArg<Chunk.Chunk<A2>>) => Stream.Stream<A2 | A, E, R>
4156
4122
  >(
4157
4123
  2,
4158
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, chunk: LazyArg<Chunk.Chunk<A2>>): Stream.Stream<A | A2, E, R> =>
4124
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, chunk: LazyArg<Chunk.Chunk<A2>>): Stream.Stream<A | A2, E, R> =>
4159
4125
  pipe(self, orElseIfEmptyStream(() => new StreamImpl(core.write(chunk()))))
4160
4126
  )
4161
4127
 
4162
4128
  /** @internal */
4163
4129
  export const orElseIfEmptyStream = dual<
4164
- <R2, E2, A2>(
4130
+ <A2, E2, R2>(
4165
4131
  stream: LazyArg<Stream.Stream<A2, E2, R2>>
4166
4132
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2 | E, R2 | R>,
4167
- <R, E, A, R2, E2, A2>(
4133
+ <A, E, R, A2, E2, R2>(
4168
4134
  self: Stream.Stream<A, E, R>,
4169
4135
  stream: LazyArg<Stream.Stream<A2, E2, R2>>
4170
4136
  ) => Stream.Stream<A2 | A, E2 | E, R2 | R>
4171
4137
  >(
4172
4138
  2,
4173
- <R, E, A, R2, E2, A2>(
4139
+ <A, E, R, A2, E2, R2>(
4174
4140
  self: Stream.Stream<A, E, R>,
4175
4141
  stream: LazyArg<Stream.Stream<A2, E2, R2>>
4176
4142
  ): Stream.Stream<A2 | A, E2 | E, R2 | R> => {
@@ -4196,10 +4162,10 @@ export const orElseIfEmptyStream = dual<
4196
4162
  /** @internal */
4197
4163
  export const orElseSucceed = dual<
4198
4164
  <A2>(value: LazyArg<A2>) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, never, R>,
4199
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, value: LazyArg<A2>) => Stream.Stream<A2 | A, never, R>
4165
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, value: LazyArg<A2>) => Stream.Stream<A2 | A, never, R>
4200
4166
  >(
4201
4167
  2,
4202
- <R, E, A, A2>(self: Stream.Stream<A, E, R>, value: LazyArg<A2>): Stream.Stream<A2 | A, never, R> =>
4168
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, value: LazyArg<A2>): Stream.Stream<A2 | A, never, R> =>
4203
4169
  pipe(self, orElse(() => sync(value)))
4204
4170
  )
4205
4171
 
@@ -4226,7 +4192,7 @@ export const paginateChunk = <S, A>(
4226
4192
  }
4227
4193
 
4228
4194
  /** @internal */
4229
- export const paginateChunkEffect = <S, R, E, A>(
4195
+ export const paginateChunkEffect = <S, A, E, R>(
4230
4196
  s: S,
4231
4197
  f: (s: S) => Effect.Effect<readonly [Chunk.Chunk<A>, Option.Option<S>], E, R>
4232
4198
  ): Stream.Stream<A, E, R> => {
@@ -4242,7 +4208,7 @@ export const paginateChunkEffect = <S, R, E, A>(
4242
4208
  }
4243
4209
 
4244
4210
  /** @internal */
4245
- export const paginateEffect = <S, R, E, A>(
4211
+ export const paginateEffect = <S, A, E, R>(
4246
4212
  s: S,
4247
4213
  f: (s: S) => Effect.Effect<readonly [A, Option.Option<S>], E, R>
4248
4214
  ): Stream.Stream<A, E, R> =>
@@ -4369,7 +4335,7 @@ export const partition: {
4369
4335
  options?: {
4370
4336
  bufferSize?: number | undefined
4371
4337
  }
4372
- ): <R, E>(
4338
+ ): <E, R>(
4373
4339
  self: Stream.Stream<C, E, R>
4374
4340
  ) => Effect.Effect<
4375
4341
  [excluded: Stream.Stream<Exclude<C, B>, E>, satisfying: Stream.Stream<B, E>],
@@ -4381,10 +4347,10 @@ export const partition: {
4381
4347
  options?: {
4382
4348
  bufferSize?: number | undefined
4383
4349
  }
4384
- ): <R, E>(
4350
+ ): <E, R>(
4385
4351
  self: Stream.Stream<A, E, R>
4386
4352
  ) => Effect.Effect<[excluded: Stream.Stream<A, E>, satisfying: Stream.Stream<A, E>], E, Scope.Scope | R>
4387
- <R, E, C extends A, B extends A, A = C>(
4353
+ <C extends A, E, R, B extends A, A = C>(
4388
4354
  self: Stream.Stream<C, E, R>,
4389
4355
  refinement: Refinement<A, B>,
4390
4356
  options?: {
@@ -4424,21 +4390,21 @@ export const partition: {
4424
4390
 
4425
4391
  /** @internal */
4426
4392
  export const partitionEither = dual<
4427
- <A, R2, E2, A2, A3>(
4428
- predicate: (a: NoInfer<A>) => Effect.Effect<Either.Either<A2, A3>, E2, R2>,
4393
+ <A, A3, A2, E2, R2>(
4394
+ predicate: (a: NoInfer<A>) => Effect.Effect<Either.Either<A3, A2>, E2, R2>,
4429
4395
  options?: {
4430
4396
  readonly bufferSize?: number | undefined
4431
4397
  }
4432
- ) => <R, E>(
4398
+ ) => <E, R>(
4433
4399
  self: Stream.Stream<A, E, R>
4434
4400
  ) => Effect.Effect<
4435
4401
  [left: Stream.Stream<A2, E2 | E>, right: Stream.Stream<A3, E2 | E>],
4436
4402
  E2 | E,
4437
4403
  Scope.Scope | R2 | R
4438
4404
  >,
4439
- <R, E, A, R2, E2, A2, A3>(
4405
+ <A, E, R, A3, A2, E2, R2>(
4440
4406
  self: Stream.Stream<A, E, R>,
4441
- predicate: (a: A) => Effect.Effect<Either.Either<A2, A3>, E2, R2>,
4407
+ predicate: (a: A) => Effect.Effect<Either.Either<A3, A2>, E2, R2>,
4442
4408
  options?: {
4443
4409
  readonly bufferSize?: number | undefined
4444
4410
  }
@@ -4449,9 +4415,9 @@ export const partitionEither = dual<
4449
4415
  >
4450
4416
  >(
4451
4417
  (args) => typeof args[1] === "function",
4452
- <R, E, A, R2, E2, A2, A3>(
4418
+ <A, E, R, A3, A2, E2, R2>(
4453
4419
  self: Stream.Stream<A, E, R>,
4454
- predicate: (a: A) => Effect.Effect<Either.Either<A2, A3>, E2, R2>,
4420
+ predicate: (a: A) => Effect.Effect<Either.Either<A3, A2>, E2, R2>,
4455
4421
  options?: {
4456
4422
  readonly bufferSize?: number | undefined
4457
4423
  }
@@ -4548,7 +4514,7 @@ export const pipeThroughChannelOrFail = dual<
4548
4514
  /** @internal */
4549
4515
  export const prepend = dual<
4550
4516
  <B>(values: Chunk.Chunk<B>) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A | B, E, R>,
4551
- <R, E, A, B>(self: Stream.Stream<A, E, R>, values: Chunk.Chunk<B>) => Stream.Stream<A | B, E, R>
4517
+ <A, E, R, B>(self: Stream.Stream<A, E, R>, values: Chunk.Chunk<B>) => Stream.Stream<A | B, E, R>
4552
4518
  >(2, (self, values) =>
4553
4519
  new StreamImpl(
4554
4520
  channel.zipRight(
@@ -4596,14 +4562,14 @@ export const provideService = dual<
4596
4562
  tag: T,
4597
4563
  resource: Context.Tag.Service<T>
4598
4564
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, Exclude<R, Context.Tag.Identifier<T>>>,
4599
- <R, E, A, T extends Context.Tag<any, any>>(
4565
+ <A, E, R, T extends Context.Tag<any, any>>(
4600
4566
  self: Stream.Stream<A, E, R>,
4601
4567
  tag: T,
4602
4568
  resource: Context.Tag.Service<T>
4603
4569
  ) => Stream.Stream<A, E, Exclude<R, Context.Tag.Identifier<T>>>
4604
4570
  >(
4605
4571
  3,
4606
- <R, E, A, T extends Context.Tag<any, any>>(
4572
+ <A, E, R, T extends Context.Tag<any, any>>(
4607
4573
  self: Stream.Stream<A, E, R>,
4608
4574
  tag: T,
4609
4575
  resource: Context.Tag.Service<T>
@@ -4612,18 +4578,18 @@ export const provideService = dual<
4612
4578
 
4613
4579
  /** @internal */
4614
4580
  export const provideServiceEffect = dual<
4615
- <T extends Context.Tag<any, any>, R2, E2>(
4581
+ <T extends Context.Tag<any, any>, E2, R2>(
4616
4582
  tag: T,
4617
4583
  effect: Effect.Effect<Context.Tag.Service<T>, E2, R2>
4618
4584
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | Exclude<R, Context.Tag.Identifier<T>>>,
4619
- <R, E, A, T extends Context.Tag<any, any>, R2, E2>(
4585
+ <A, E, R, T extends Context.Tag<any, any>, E2, R2>(
4620
4586
  self: Stream.Stream<A, E, R>,
4621
4587
  tag: T,
4622
4588
  effect: Effect.Effect<Context.Tag.Service<T>, E2, R2>
4623
4589
  ) => Stream.Stream<A, E2 | E, R2 | Exclude<R, Context.Tag.Identifier<T>>>
4624
4590
  >(
4625
4591
  3,
4626
- <R, E, A, T extends Context.Tag<any, any>, R2, E2>(
4592
+ <A, E, R, T extends Context.Tag<any, any>, E2, R2>(
4627
4593
  self: Stream.Stream<A, E, R>,
4628
4594
  tag: T,
4629
4595
  effect: Effect.Effect<Context.Tag.Service<T>, E2, R2>
@@ -4632,18 +4598,18 @@ export const provideServiceEffect = dual<
4632
4598
 
4633
4599
  /** @internal */
4634
4600
  export const provideServiceStream = dual<
4635
- <T extends Context.Tag<any, any>, R2, E2>(
4601
+ <T extends Context.Tag<any, any>, E2, R2>(
4636
4602
  tag: T,
4637
4603
  stream: Stream.Stream<Context.Tag.Service<T>, E2, R2>
4638
4604
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | Exclude<R, Context.Tag.Identifier<T>>>,
4639
- <R, E, A, T extends Context.Tag<any, any>, R2, E2>(
4605
+ <A, E, R, T extends Context.Tag<any, any>, E2, R2>(
4640
4606
  self: Stream.Stream<A, E, R>,
4641
4607
  tag: T,
4642
4608
  stream: Stream.Stream<Context.Tag.Service<T>, E2, R2>
4643
4609
  ) => Stream.Stream<A, E2 | E, R2 | Exclude<R, Context.Tag.Identifier<T>>>
4644
4610
  >(
4645
4611
  3,
4646
- <R, E, A, T extends Context.Tag<any, any>, R2, E2>(
4612
+ <A, E, R, T extends Context.Tag<any, any>, E2, R2>(
4647
4613
  self: Stream.Stream<A, E, R>,
4648
4614
  tag: T,
4649
4615
  stream: Stream.Stream<Context.Tag.Service<T>, E2, R2>
@@ -4678,13 +4644,13 @@ export const provideSomeLayer = dual<
4678
4644
  <RIn, E2, ROut>(
4679
4645
  layer: Layer.Layer<ROut, E2, RIn>
4680
4646
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, RIn | Exclude<R, ROut>>,
4681
- <R, E, A, RIn, E2, ROut>(
4647
+ <A, E, R, RIn, E2, ROut>(
4682
4648
  self: Stream.Stream<A, E, R>,
4683
4649
  layer: Layer.Layer<ROut, E2, RIn>
4684
4650
  ) => Stream.Stream<A, E2 | E, RIn | Exclude<R, ROut>>
4685
4651
  >(
4686
4652
  2,
4687
- <R, E, A, RIn, E2, ROut>(
4653
+ <A, E, R, RIn, E2, ROut>(
4688
4654
  self: Stream.Stream<A, E, R>,
4689
4655
  layer: Layer.Layer<ROut, E2, RIn>
4690
4656
  ): Stream.Stream<A, E2 | E, RIn | Exclude<R, ROut>> =>
@@ -4802,11 +4768,11 @@ class StreamRechunker<out A, in out E> {
4802
4768
 
4803
4769
  /** @internal */
4804
4770
  export const refineOrDie = dual<
4805
- <E, E2>(pf: (error: E) => Option.Option<E2>) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2, R>,
4806
- <R, A, E, E2>(self: Stream.Stream<A, E, R>, pf: (error: E) => Option.Option<E2>) => Stream.Stream<A, E2, R>
4771
+ <E, E2>(pf: (error: E) => Option.Option<E2>) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2, R>,
4772
+ <A, E, R, E2>(self: Stream.Stream<A, E, R>, pf: (error: E) => Option.Option<E2>) => Stream.Stream<A, E2, R>
4807
4773
  >(
4808
4774
  2,
4809
- <R, A, E, E2>(self: Stream.Stream<A, E, R>, pf: (error: E) => Option.Option<E2>): Stream.Stream<A, E2, R> =>
4775
+ <A, E, R, E2>(self: Stream.Stream<A, E, R>, pf: (error: E) => Option.Option<E2>): Stream.Stream<A, E2, R> =>
4810
4776
  pipe(self, refineOrDieWith(pf, identity))
4811
4777
  )
4812
4778
 
@@ -4815,15 +4781,15 @@ export const refineOrDieWith = dual<
4815
4781
  <E, E2>(
4816
4782
  pf: (error: E) => Option.Option<E2>,
4817
4783
  f: (error: E) => unknown
4818
- ) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2, R>,
4819
- <R, A, E, E2>(
4784
+ ) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2, R>,
4785
+ <A, E, R, E2>(
4820
4786
  self: Stream.Stream<A, E, R>,
4821
4787
  pf: (error: E) => Option.Option<E2>,
4822
4788
  f: (error: E) => unknown
4823
4789
  ) => Stream.Stream<A, E2, R>
4824
4790
  >(
4825
4791
  3,
4826
- <R, A, E, E2>(
4792
+ <A, E, R, E2>(
4827
4793
  self: Stream.Stream<A, E, R>,
4828
4794
  pf: (error: E) => Option.Option<E2>,
4829
4795
  f: (error: E) => unknown
@@ -4839,18 +4805,18 @@ export const refineOrDieWith = dual<
4839
4805
 
4840
4806
  /** @internal */
4841
4807
  export const repeat = dual<
4842
- <R2, B>(
4843
- schedule: Schedule.Schedule<R2, unknown, B>
4808
+ <B, R2>(
4809
+ schedule: Schedule.Schedule<B, unknown, R2>
4844
4810
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R2 | R>,
4845
- <R, E, A, R2, B>(
4811
+ <A, E, R, B, R2>(
4846
4812
  self: Stream.Stream<A, E, R>,
4847
- schedule: Schedule.Schedule<R2, unknown, B>
4813
+ schedule: Schedule.Schedule<B, unknown, R2>
4848
4814
  ) => Stream.Stream<A, E, R2 | R>
4849
4815
  >(
4850
4816
  2,
4851
- <R, E, A, R2, B>(
4817
+ <A, E, R, B, R2>(
4852
4818
  self: Stream.Stream<A, E, R>,
4853
- schedule: Schedule.Schedule<R2, unknown, B>
4819
+ schedule: Schedule.Schedule<B, unknown, R2>
4854
4820
  ): Stream.Stream<A, E, R | R2> =>
4855
4821
  filterMap(
4856
4822
  repeatEither(self, schedule),
@@ -4889,39 +4855,39 @@ export const repeatEffectOption = <A, E, R>(effect: Effect.Effect<A, Option.Opti
4889
4855
 
4890
4856
  /** @internal */
4891
4857
  export const repeatEither = dual<
4892
- <R2, B>(
4893
- schedule: Schedule.Schedule<R2, unknown, B>
4894
- ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<Either.Either<B, A>, E, R2 | R>,
4895
- <R, E, A, R2, B>(
4858
+ <B, R2>(
4859
+ schedule: Schedule.Schedule<B, unknown, R2>
4860
+ ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<Either.Either<A, B>, E, R2 | R>,
4861
+ <A, E, R, B, R2>(
4896
4862
  self: Stream.Stream<A, E, R>,
4897
- schedule: Schedule.Schedule<R2, unknown, B>
4898
- ) => Stream.Stream<Either.Either<B, A>, E, R2 | R>
4863
+ schedule: Schedule.Schedule<B, unknown, R2>
4864
+ ) => Stream.Stream<Either.Either<A, B>, E, R2 | R>
4899
4865
  >(
4900
4866
  2,
4901
- <R, E, A, R2, B>(
4867
+ <A, E, R, B, R2>(
4902
4868
  self: Stream.Stream<A, E, R>,
4903
- schedule: Schedule.Schedule<R2, unknown, B>
4904
- ): Stream.Stream<Either.Either<B, A>, E, R2 | R> =>
4869
+ schedule: Schedule.Schedule<B, unknown, R2>
4870
+ ): Stream.Stream<Either.Either<A, B>, E, R2 | R> =>
4905
4871
  repeatWith(self, schedule, {
4906
- onElement: (a): Either.Either<B, A> => Either.right(a),
4872
+ onElement: (a): Either.Either<A, B> => Either.right(a),
4907
4873
  onSchedule: Either.left
4908
4874
  })
4909
4875
  )
4910
4876
 
4911
4877
  /** @internal */
4912
4878
  export const repeatElements = dual<
4913
- <R2, B>(
4914
- schedule: Schedule.Schedule<R2, unknown, B>
4879
+ <B, R2>(
4880
+ schedule: Schedule.Schedule<B, unknown, R2>
4915
4881
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R2 | R>,
4916
- <R, E, A, R2, B>(
4882
+ <A, E, R, B, R2>(
4917
4883
  self: Stream.Stream<A, E, R>,
4918
- schedule: Schedule.Schedule<R2, unknown, B>
4884
+ schedule: Schedule.Schedule<B, unknown, R2>
4919
4885
  ) => Stream.Stream<A, E, R2 | R>
4920
4886
  >(
4921
4887
  2,
4922
- <R, E, A, R2, B>(
4888
+ <A, E, R, B, R2>(
4923
4889
  self: Stream.Stream<A, E, R>,
4924
- schedule: Schedule.Schedule<R2, unknown, B>
4890
+ schedule: Schedule.Schedule<B, unknown, R2>
4925
4891
  ): Stream.Stream<A, E, R | R2> =>
4926
4892
  filterMap(
4927
4893
  repeatElementsWith(self, schedule, { onElement: (a) => Option.some(a), onSchedule: Option.none }),
@@ -4931,16 +4897,16 @@ export const repeatElements = dual<
4931
4897
 
4932
4898
  /** @internal */
4933
4899
  export const repeatElementsWith = dual<
4934
- <R2, B, A, C>(
4935
- schedule: Schedule.Schedule<R2, unknown, B>,
4900
+ <B, R2, A, C>(
4901
+ schedule: Schedule.Schedule<B, unknown, R2>,
4936
4902
  options: {
4937
4903
  readonly onElement: (a: A) => C
4938
4904
  readonly onSchedule: (b: B) => C
4939
4905
  }
4940
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<C, E, R2 | R>,
4941
- <R, E, R2, B, A, C>(
4906
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<C, E, R2 | R>,
4907
+ <A, E, R, B, R2, C>(
4942
4908
  self: Stream.Stream<A, E, R>,
4943
- schedule: Schedule.Schedule<R2, unknown, B>,
4909
+ schedule: Schedule.Schedule<B, unknown, R2>,
4944
4910
  options: {
4945
4911
  readonly onElement: (a: A) => C
4946
4912
  readonly onSchedule: (b: B) => C
@@ -4948,9 +4914,9 @@ export const repeatElementsWith = dual<
4948
4914
  ) => Stream.Stream<C, E, R2 | R>
4949
4915
  >(
4950
4916
  3,
4951
- <R, E, R2, B, A, C>(
4917
+ <A, E, R, B, R2, C>(
4952
4918
  self: Stream.Stream<A, E, R>,
4953
- schedule: Schedule.Schedule<R2, unknown, B>,
4919
+ schedule: Schedule.Schedule<B, unknown, R2>,
4954
4920
  options: {
4955
4921
  readonly onElement: (a: A) => C
4956
4922
  readonly onSchedule: (b: B) => C
@@ -5020,16 +4986,16 @@ export const repeatValue = <A>(value: A): Stream.Stream<A> =>
5020
4986
 
5021
4987
  /** @internal */
5022
4988
  export const repeatWith = dual<
5023
- <R2, B, A, C>(
5024
- schedule: Schedule.Schedule<R2, unknown, B>,
4989
+ <B, R2, A, C>(
4990
+ schedule: Schedule.Schedule<B, unknown, R2>,
5025
4991
  options: {
5026
4992
  readonly onElement: (a: A) => C
5027
4993
  readonly onSchedule: (b: B) => C
5028
4994
  }
5029
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<C, E, R2 | R>,
5030
- <R, E, R2, B, A, C>(
4995
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<C, E, R2 | R>,
4996
+ <A, E, R, B, R2, C>(
5031
4997
  self: Stream.Stream<A, E, R>,
5032
- schedule: Schedule.Schedule<R2, unknown, B>,
4998
+ schedule: Schedule.Schedule<B, unknown, R2>,
5033
4999
  options: {
5034
5000
  readonly onElement: (a: A) => C
5035
5001
  readonly onSchedule: (b: B) => C
@@ -5037,9 +5003,9 @@ export const repeatWith = dual<
5037
5003
  ) => Stream.Stream<C, E, R2 | R>
5038
5004
  >(
5039
5005
  3,
5040
- <R, E, R2, B, A, C>(
5006
+ <A, E, R, B, R2, C>(
5041
5007
  self: Stream.Stream<A, E, R>,
5042
- schedule: Schedule.Schedule<R2, unknown, B>,
5008
+ schedule: Schedule.Schedule<B, unknown, R2>,
5043
5009
  options: {
5044
5010
  readonly onElement: (a: A) => C
5045
5011
  readonly onSchedule: (b: B) => C
@@ -5073,16 +5039,15 @@ export const repeatWith = dual<
5073
5039
  }
5074
5040
  )
5075
5041
 
5076
- /** @internal */
5077
- export const repeatWithSchedule = <R, A, _>(
5042
+ const repeatWithSchedule = <A, R, X>(
5078
5043
  value: A,
5079
- schedule: Schedule.Schedule<R, A, _>
5044
+ schedule: Schedule.Schedule<X, A, R>
5080
5045
  ): Stream.Stream<A, never, R> => repeatEffectWithSchedule(Effect.succeed(value), schedule)
5081
5046
 
5082
5047
  /** @internal */
5083
- export const repeatEffectWithSchedule = <R, E, A, A0 extends A, R2, _>(
5048
+ export const repeatEffectWithSchedule = <A, E, R, X, A0 extends A, R2>(
5084
5049
  effect: Effect.Effect<A, E, R>,
5085
- schedule: Schedule.Schedule<R2, A0, _>
5050
+ schedule: Schedule.Schedule<X, A0, R2>
5086
5051
  ): Stream.Stream<A, E, R | R2> =>
5087
5052
  flatMap(
5088
5053
  fromEffect(Effect.zip(effect, Schedule.driver(schedule))),
@@ -5099,18 +5064,18 @@ export const repeatEffectWithSchedule = <R, E, A, A0 extends A, R2, _>(
5099
5064
 
5100
5065
  /** @internal */
5101
5066
  export const retry = dual<
5102
- <R2, E, E0 extends E, _>(
5103
- schedule: Schedule.Schedule<R2, E0, _>
5104
- ) => <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R2 | R>,
5105
- <R, A, R2, E, E0 extends E, _>(
5067
+ <E0 extends E, R2, E, X>(
5068
+ schedule: Schedule.Schedule<X, E0, R2>
5069
+ ) => <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R2 | R>,
5070
+ <A, E, R, X, E0 extends E, R2>(
5106
5071
  self: Stream.Stream<A, E, R>,
5107
- schedule: Schedule.Schedule<R2, E0, _>
5072
+ schedule: Schedule.Schedule<X, E0, R2>
5108
5073
  ) => Stream.Stream<A, E, R2 | R>
5109
5074
  >(
5110
5075
  2,
5111
- <R, A, R2, E, E0 extends E, _>(
5076
+ <A, E, R, X, E0 extends E, R2>(
5112
5077
  self: Stream.Stream<A, E, R>,
5113
- schedule: Schedule.Schedule<R2, E0, _>
5078
+ schedule: Schedule.Schedule<X, E0, R2>
5114
5079
  ): Stream.Stream<A, E, R | R2> =>
5115
5080
  unwrap(
5116
5081
  Effect.map(Schedule.driver(schedule), (driver) => {
@@ -5155,26 +5120,26 @@ export const runDrain = <A, E, R>(self: Stream.Stream<A, E, R>): Effect.Effect<v
5155
5120
 
5156
5121
  /** @internal */
5157
5122
  export const runFold = dual<
5158
- <S, A>(s: S, f: (s: S, a: A) => S) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E, R>,
5159
- <R, E, S, A>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S) => Effect.Effect<S, E, R>
5123
+ <S, A>(s: S, f: (s: S, a: A) => S) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E, R>,
5124
+ <A, E, R, S>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S) => Effect.Effect<S, E, R>
5160
5125
  >(
5161
5126
  3,
5162
- <R, E, S, A>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S): Effect.Effect<S, E, R> =>
5127
+ <A, E, R, S>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S): Effect.Effect<S, E, R> =>
5163
5128
  pipe(self, runFoldWhileScoped(s, constTrue, f), Effect.scoped)
5164
5129
  )
5165
5130
 
5166
5131
  /** @internal */
5167
5132
  export const runFoldEffect = dual<
5168
- <S, A, R2, E2>(
5133
+ <S, A, E2, R2>(
5169
5134
  s: S,
5170
5135
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
5171
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E2 | E, R2 | R>,
5172
- <R, E, S, A, R2, E2>(
5136
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E2 | E, R2 | R>,
5137
+ <A, E, R, S, E2, R2>(
5173
5138
  self: Stream.Stream<A, E, R>,
5174
5139
  s: S,
5175
5140
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
5176
5141
  ) => Effect.Effect<S, E2 | E, R2 | R>
5177
- >(3, <R, E, S, A, R2, E2>(
5142
+ >(3, <A, E, R, S, E2, R2>(
5178
5143
  self: Stream.Stream<A, E, R>,
5179
5144
  s: S,
5180
5145
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
@@ -5182,26 +5147,26 @@ export const runFoldEffect = dual<
5182
5147
 
5183
5148
  /** @internal */
5184
5149
  export const runFoldScoped = dual<
5185
- <S, A>(s: S, f: (s: S, a: A) => S) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E, Scope.Scope | R>,
5186
- <R, E, S, A>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S) => Effect.Effect<S, E, Scope.Scope | R>
5150
+ <S, A>(s: S, f: (s: S, a: A) => S) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E, Scope.Scope | R>,
5151
+ <A, E, R, S>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S) => Effect.Effect<S, E, Scope.Scope | R>
5187
5152
  >(
5188
5153
  3,
5189
- <R, E, S, A>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S): Effect.Effect<S, E, Scope.Scope | R> =>
5154
+ <A, E, R, S>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S): Effect.Effect<S, E, Scope.Scope | R> =>
5190
5155
  pipe(self, runFoldWhileScoped(s, constTrue, f))
5191
5156
  )
5192
5157
 
5193
5158
  /** @internal */
5194
5159
  export const runFoldScopedEffect = dual<
5195
- <S, A, R2, E2>(
5160
+ <S, A, E2, R2>(
5196
5161
  s: S,
5197
5162
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
5198
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E2 | E, Scope.Scope | R2 | R>,
5199
- <R, E, S, A, R2, E2>(
5163
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E2 | E, Scope.Scope | R2 | R>,
5164
+ <A, E, R, S, E2, R2>(
5200
5165
  self: Stream.Stream<A, E, R>,
5201
5166
  s: S,
5202
5167
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
5203
5168
  ) => Effect.Effect<S, E2 | E, Scope.Scope | R2 | R>
5204
- >(3, <R, E, S, A, R2, E2>(
5169
+ >(3, <A, E, R, S, E2, R2>(
5205
5170
  self: Stream.Stream<A, E, R>,
5206
5171
  s: S,
5207
5172
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
@@ -5213,9 +5178,9 @@ export const runFoldWhile = dual<
5213
5178
  s: S,
5214
5179
  cont: Predicate<S>,
5215
5180
  f: (s: S, a: A) => S
5216
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E, R>,
5217
- <R, E, S, A>(self: Stream.Stream<A, E, R>, s: S, cont: Predicate<S>, f: (s: S, a: A) => S) => Effect.Effect<S, E, R>
5218
- >(4, <R, E, S, A>(
5181
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E, R>,
5182
+ <A, E, R, S>(self: Stream.Stream<A, E, R>, s: S, cont: Predicate<S>, f: (s: S, a: A) => S) => Effect.Effect<S, E, R>
5183
+ >(4, <A, E, R, S>(
5219
5184
  self: Stream.Stream<A, E, R>,
5220
5185
  s: S,
5221
5186
  cont: Predicate<S>,
@@ -5224,18 +5189,18 @@ export const runFoldWhile = dual<
5224
5189
 
5225
5190
  /** @internal */
5226
5191
  export const runFoldWhileEffect = dual<
5227
- <S, A, R2, E2>(
5192
+ <S, A, E2, R2>(
5228
5193
  s: S,
5229
5194
  cont: Predicate<S>,
5230
5195
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
5231
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E2 | E, R2 | R>,
5232
- <R, E, S, A, R2, E2>(
5196
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E2 | E, R2 | R>,
5197
+ <A, E, R, S, E2, R2>(
5233
5198
  self: Stream.Stream<A, E, R>,
5234
5199
  s: S,
5235
5200
  cont: Predicate<S>,
5236
5201
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
5237
5202
  ) => Effect.Effect<S, E2 | E, R2 | R>
5238
- >(4, <R, E, S, A, R2, E2>(
5203
+ >(4, <A, E, R, S, E2, R2>(
5239
5204
  self: Stream.Stream<A, E, R>,
5240
5205
  s: S,
5241
5206
  cont: Predicate<S>,
@@ -5248,14 +5213,14 @@ export const runFoldWhileScoped = dual<
5248
5213
  s: S,
5249
5214
  cont: Predicate<S>,
5250
5215
  f: (s: S, a: A) => S
5251
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E, Scope.Scope | R>,
5252
- <R, E, S, A>(
5216
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E, Scope.Scope | R>,
5217
+ <A, E, R, S>(
5253
5218
  self: Stream.Stream<A, E, R>,
5254
5219
  s: S,
5255
5220
  cont: Predicate<S>,
5256
5221
  f: (s: S, a: A) => S
5257
5222
  ) => Effect.Effect<S, E, Scope.Scope | R>
5258
- >(4, <R, E, S, A>(
5223
+ >(4, <A, E, R, S>(
5259
5224
  self: Stream.Stream<A, E, R>,
5260
5225
  s: S,
5261
5226
  cont: Predicate<S>,
@@ -5264,18 +5229,18 @@ export const runFoldWhileScoped = dual<
5264
5229
 
5265
5230
  /** @internal */
5266
5231
  export const runFoldWhileScopedEffect = dual<
5267
- <S, A, R2, E2>(
5232
+ <S, A, E2, R2>(
5268
5233
  s: S,
5269
5234
  cont: Predicate<S>,
5270
5235
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
5271
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E2 | E, Scope.Scope | R2 | R>,
5272
- <R, E, S, A, R2, E2>(
5236
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<S, E2 | E, Scope.Scope | R2 | R>,
5237
+ <A, E, R, S, E2, R2>(
5273
5238
  self: Stream.Stream<A, E, R>,
5274
5239
  s: S,
5275
5240
  cont: Predicate<S>,
5276
5241
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
5277
5242
  ) => Effect.Effect<S, E2 | E, Scope.Scope | R2 | R>
5278
- >(4, <R, E, S, A, R2, E2>(
5243
+ >(4, <A, E, R, S, E2, R2>(
5279
5244
  self: Stream.Stream<A, E, R>,
5280
5245
  s: S,
5281
5246
  cont: Predicate<S>,
@@ -5284,84 +5249,84 @@ export const runFoldWhileScopedEffect = dual<
5284
5249
 
5285
5250
  /** @internal */
5286
5251
  export const runForEach = dual<
5287
- <A, R2, E2, _>(
5288
- f: (a: A) => Effect.Effect<_, E2, R2>
5289
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, R2 | R>,
5290
- <R, E, A, R2, E2, _>(
5252
+ <A, X, E2, R2>(
5253
+ f: (a: A) => Effect.Effect<X, E2, R2>
5254
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, R2 | R>,
5255
+ <A, E, R, X, E2, R2>(
5291
5256
  self: Stream.Stream<A, E, R>,
5292
- f: (a: A) => Effect.Effect<_, E2, R2>
5257
+ f: (a: A) => Effect.Effect<X, E2, R2>
5293
5258
  ) => Effect.Effect<void, E2 | E, R2 | R>
5294
- >(2, <R, E, A, R2, E2, _>(
5259
+ >(2, <A, E, R, X, E2, R2>(
5295
5260
  self: Stream.Stream<A, E, R>,
5296
- f: (a: A) => Effect.Effect<_, E2, R2>
5261
+ f: (a: A) => Effect.Effect<X, E2, R2>
5297
5262
  ): Effect.Effect<void, E2 | E, R2 | R> => pipe(self, run(_sink.forEach(f))))
5298
5263
 
5299
5264
  /** @internal */
5300
5265
  export const runForEachChunk = dual<
5301
- <A, R2, E2, _>(
5302
- f: (a: Chunk.Chunk<A>) => Effect.Effect<_, E2, R2>
5303
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, R2 | R>,
5304
- <R, E, A, R2, E2, _>(
5266
+ <A, X, E2, R2>(
5267
+ f: (a: Chunk.Chunk<A>) => Effect.Effect<X, E2, R2>
5268
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, R2 | R>,
5269
+ <A, E, R, X, E2, R2>(
5305
5270
  self: Stream.Stream<A, E, R>,
5306
- f: (a: Chunk.Chunk<A>) => Effect.Effect<_, E2, R2>
5271
+ f: (a: Chunk.Chunk<A>) => Effect.Effect<X, E2, R2>
5307
5272
  ) => Effect.Effect<void, E2 | E, R2 | R>
5308
- >(2, <R, E, A, R2, E2, _>(
5273
+ >(2, <A, E, R, X, E2, R2>(
5309
5274
  self: Stream.Stream<A, E, R>,
5310
- f: (a: Chunk.Chunk<A>) => Effect.Effect<_, E2, R2>
5275
+ f: (a: Chunk.Chunk<A>) => Effect.Effect<X, E2, R2>
5311
5276
  ): Effect.Effect<void, E2 | E, R2 | R> => pipe(self, run(_sink.forEachChunk(f))))
5312
5277
 
5313
5278
  /** @internal */
5314
5279
  export const runForEachChunkScoped = dual<
5315
- <A, R2, E2, _>(
5316
- f: (a: Chunk.Chunk<A>) => Effect.Effect<_, E2, R2>
5317
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, Scope.Scope | R2 | R>,
5318
- <R, E, A, R2, E2, _>(
5280
+ <A, X, E2, R2>(
5281
+ f: (a: Chunk.Chunk<A>) => Effect.Effect<X, E2, R2>
5282
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, Scope.Scope | R2 | R>,
5283
+ <A, E, R, X, E2, R2>(
5319
5284
  self: Stream.Stream<A, E, R>,
5320
- f: (a: Chunk.Chunk<A>) => Effect.Effect<_, E2, R2>
5285
+ f: (a: Chunk.Chunk<A>) => Effect.Effect<X, E2, R2>
5321
5286
  ) => Effect.Effect<void, E2 | E, Scope.Scope | R2 | R>
5322
- >(2, <R, E, A, R2, E2, _>(
5287
+ >(2, <A, E, R, X, E2, R2>(
5323
5288
  self: Stream.Stream<A, E, R>,
5324
- f: (a: Chunk.Chunk<A>) => Effect.Effect<_, E2, R2>
5289
+ f: (a: Chunk.Chunk<A>) => Effect.Effect<X, E2, R2>
5325
5290
  ): Effect.Effect<void, E2 | E, Scope.Scope | R2 | R> => pipe(self, runScoped(_sink.forEachChunk(f))))
5326
5291
 
5327
5292
  /** @internal */
5328
5293
  export const runForEachScoped = dual<
5329
- <A, R2, E2, _>(
5330
- f: (a: A) => Effect.Effect<_, E2, R2>
5331
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, R2 | R | Scope.Scope>,
5332
- <R, E, A, R2, E2, _>(
5294
+ <A, X, E2, R2>(
5295
+ f: (a: A) => Effect.Effect<X, E2, R2>
5296
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, R2 | R | Scope.Scope>,
5297
+ <A, E, R, X, E2, R2>(
5333
5298
  self: Stream.Stream<A, E, R>,
5334
- f: (a: A) => Effect.Effect<_, E2, R2>
5299
+ f: (a: A) => Effect.Effect<X, E2, R2>
5335
5300
  ) => Effect.Effect<void, E2 | E, R2 | R | Scope.Scope>
5336
- >(2, <R, E, A, R2, E2, _>(
5301
+ >(2, <A, E, R, X, E2, R2>(
5337
5302
  self: Stream.Stream<A, E, R>,
5338
- f: (a: A) => Effect.Effect<_, E2, R2>
5303
+ f: (a: A) => Effect.Effect<X, E2, R2>
5339
5304
  ): Effect.Effect<void, E2 | E, R2 | R | Scope.Scope> => pipe(self, runScoped(_sink.forEach(f))))
5340
5305
 
5341
5306
  /** @internal */
5342
5307
  export const runForEachWhile = dual<
5343
- <A, R2, E2>(
5308
+ <A, E2, R2>(
5344
5309
  f: (a: A) => Effect.Effect<boolean, E2, R2>
5345
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, R2 | R>,
5346
- <R, E, A, R2, E2>(
5310
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, R2 | R>,
5311
+ <A, E, R, E2, R2>(
5347
5312
  self: Stream.Stream<A, E, R>,
5348
5313
  f: (a: A) => Effect.Effect<boolean, E2, R2>
5349
5314
  ) => Effect.Effect<void, E2 | E, R2 | R>
5350
- >(2, <R, E, A, R2, E2>(
5315
+ >(2, <A, E, R, E2, R2>(
5351
5316
  self: Stream.Stream<A, E, R>,
5352
5317
  f: (a: A) => Effect.Effect<boolean, E2, R2>
5353
5318
  ): Effect.Effect<void, E2 | E, R2 | R> => pipe(self, run(_sink.forEachWhile(f))))
5354
5319
 
5355
5320
  /** @internal */
5356
5321
  export const runForEachWhileScoped = dual<
5357
- <A, R2, E2>(
5322
+ <A, E2, R2>(
5358
5323
  f: (a: A) => Effect.Effect<boolean, E2, R2>
5359
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, R2 | R | Scope.Scope>,
5360
- <R, E, A, R2, E2>(
5324
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Effect.Effect<void, E2 | E, R2 | R | Scope.Scope>,
5325
+ <A, E, R, E2, R2>(
5361
5326
  self: Stream.Stream<A, E, R>,
5362
5327
  f: (a: A) => Effect.Effect<boolean, E2, R2>
5363
5328
  ) => Effect.Effect<void, E2 | E, R2 | R | Scope.Scope>
5364
- >(2, <R, E, A, R2, E2>(
5329
+ >(2, <A, E, R, E2, R2>(
5365
5330
  self: Stream.Stream<A, E, R>,
5366
5331
  f: (a: A) => Effect.Effect<boolean, E2, R2>
5367
5332
  ): Effect.Effect<void, E2 | E, R2 | R | Scope.Scope> => pipe(self, runScoped(_sink.forEachWhile(f))))
@@ -5450,9 +5415,9 @@ export const runIntoQueueScoped = dual<
5450
5415
  ): Effect.Effect<void, never, Scope.Scope | R> => {
5451
5416
  const writer: Channel.Channel<Take.Take<A, E>, Chunk.Chunk<A>, never, E, unknown, unknown, R> = core
5452
5417
  .readWithCause({
5453
- onInput: (input: Chunk.Chunk<A>) => core.flatMap(core.write(_take.chunk(input)), () => writer),
5454
- onFailure: (cause) => core.write(_take.failCause(cause)),
5455
- onDone: () => core.write(_take.end)
5418
+ onInput: (input: Chunk.Chunk<A>) => core.flatMap(core.write(InternalTake.chunk(input)), () => writer),
5419
+ onFailure: (cause) => core.write(InternalTake.failCause(cause)),
5420
+ onDone: () => core.write(InternalTake.end)
5456
5421
  })
5457
5422
  return pipe(
5458
5423
  core.pipeTo(toChannel(self), writer),
@@ -5488,41 +5453,41 @@ export const runScoped = dual<
5488
5453
  ))
5489
5454
 
5490
5455
  /** @internal */
5491
- export const runSum = <R, E>(self: Stream.Stream<number, E, R>): Effect.Effect<number, E, R> =>
5456
+ export const runSum = <E, R>(self: Stream.Stream<number, E, R>): Effect.Effect<number, E, R> =>
5492
5457
  pipe(self, run(_sink.sum))
5493
5458
 
5494
5459
  /** @internal */
5495
5460
  export const scan = dual<
5496
- <S, A>(s: S, f: (s: S, a: A) => S) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<S, E, R>,
5497
- <R, E, S, A>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S) => Stream.Stream<S, E, R>
5461
+ <S, A>(s: S, f: (s: S, a: A) => S) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<S, E, R>,
5462
+ <A, E, R, S>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S) => Stream.Stream<S, E, R>
5498
5463
  >(
5499
5464
  3,
5500
- <R, E, S, A>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S): Stream.Stream<S, E, R> =>
5465
+ <A, E, R, S>(self: Stream.Stream<A, E, R>, s: S, f: (s: S, a: A) => S): Stream.Stream<S, E, R> =>
5501
5466
  pipe(self, scanEffect(s, (s, a) => Effect.succeed(f(s, a))))
5502
5467
  )
5503
5468
 
5504
5469
  /** @internal */
5505
5470
  export const scanReduce = dual<
5506
- <A2, A>(f: (a2: A2 | A, a: A) => A2) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E, R>,
5507
- <R, E, A2, A>(self: Stream.Stream<A, E, R>, f: (a2: A2 | A, a: A) => A2) => Stream.Stream<A2 | A, E, R>
5471
+ <A2, A>(f: (a2: A2 | A, a: A) => A2) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E, R>,
5472
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, f: (a2: A2 | A, a: A) => A2) => Stream.Stream<A2 | A, E, R>
5508
5473
  >(
5509
5474
  2,
5510
- <R, E, A2, A>(self: Stream.Stream<A, E, R>, f: (a2: A | A2, a: A) => A2): Stream.Stream<A | A2, E, R> =>
5475
+ <A, E, R, A2>(self: Stream.Stream<A, E, R>, f: (a2: A | A2, a: A) => A2): Stream.Stream<A | A2, E, R> =>
5511
5476
  pipe(self, scanReduceEffect((a2, a) => Effect.succeed(f(a2, a))))
5512
5477
  )
5513
5478
 
5514
5479
  /** @internal */
5515
5480
  export const scanReduceEffect = dual<
5516
- <A2, A, R2, E2>(
5481
+ <A2, A, E2, R2>(
5517
5482
  f: (a2: A2 | A, a: A) => Effect.Effect<A2 | A, E2, R2>
5518
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2 | E, R2 | R>,
5519
- <R, E, A2, A, R2, E2>(
5483
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2 | E, R2 | R>,
5484
+ <A, E, R, A2, E2, R2>(
5520
5485
  self: Stream.Stream<A, E, R>,
5521
5486
  f: (a2: A2 | A, a: A) => Effect.Effect<A2 | A, E2, R2>
5522
5487
  ) => Stream.Stream<A2 | A, E2 | E, R2 | R>
5523
5488
  >(
5524
5489
  2,
5525
- <R, E, A2, A, R2, E2>(
5490
+ <A, E, R, A2, E2, R2>(
5526
5491
  self: Stream.Stream<A, E, R>,
5527
5492
  f: (a2: A | A2, a: A) => Effect.Effect<A2 | A, E2, R2>
5528
5493
  ): Stream.Stream<A2 | A, E2 | E, R2 | R> =>
@@ -5546,18 +5511,18 @@ export const scanReduceEffect = dual<
5546
5511
 
5547
5512
  /** @internal */
5548
5513
  export const schedule = dual<
5549
- <R2, A, A0 extends A, _>(
5550
- schedule: Schedule.Schedule<R2, A0, _>
5551
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R2 | R>,
5552
- <R, E, R2, A, A0 extends A, _>(
5514
+ <X, A0 extends A, R2, A>(
5515
+ schedule: Schedule.Schedule<X, A0, R2>
5516
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R2 | R>,
5517
+ <A, E, R, X, A0 extends A, R2>(
5553
5518
  self: Stream.Stream<A, E, R>,
5554
- schedule: Schedule.Schedule<R2, A0, _>
5519
+ schedule: Schedule.Schedule<X, A0, R2>
5555
5520
  ) => Stream.Stream<A, E, R2 | R>
5556
5521
  >(
5557
5522
  2,
5558
- <R, E, R2, A, A0 extends A, _>(
5523
+ <A, E, R, X, A0 extends A, R2>(
5559
5524
  self: Stream.Stream<A, E, R>,
5560
- schedule: Schedule.Schedule<R2, A0, _>
5525
+ schedule: Schedule.Schedule<X, A0, R2>
5561
5526
  ): Stream.Stream<A, E, R | R2> =>
5562
5527
  filterMap(
5563
5528
  scheduleWith(self, schedule, { onElement: Option.some, onSchedule: Option.none }),
@@ -5567,16 +5532,16 @@ export const schedule = dual<
5567
5532
 
5568
5533
  /** @internal */
5569
5534
  export const scheduleWith = dual<
5570
- <R2, A, A0 extends A, B, C>(
5571
- schedule: Schedule.Schedule<R2, A0, B>,
5535
+ <B, A0 extends A, R2, A, C>(
5536
+ schedule: Schedule.Schedule<B, A0, R2>,
5572
5537
  options: {
5573
5538
  readonly onElement: (a: A) => C
5574
5539
  readonly onSchedule: (b: B) => C
5575
5540
  }
5576
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<C, E, R2 | R>,
5577
- <R, E, R2, A, A0 extends A, B, C>(
5541
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<C, E, R2 | R>,
5542
+ <A, E, R, B, A0 extends A, R2, C>(
5578
5543
  self: Stream.Stream<A, E, R>,
5579
- schedule: Schedule.Schedule<R2, A0, B>,
5544
+ schedule: Schedule.Schedule<B, A0, R2>,
5580
5545
  options: {
5581
5546
  readonly onElement: (a: A) => C
5582
5547
  readonly onSchedule: (b: B) => C
@@ -5584,16 +5549,16 @@ export const scheduleWith = dual<
5584
5549
  ) => Stream.Stream<C, E, R2 | R>
5585
5550
  >(
5586
5551
  3,
5587
- <R, E, R2, A, A0 extends A, B, C>(
5552
+ <A, E, R, B, A0 extends A, R2, C>(
5588
5553
  self: Stream.Stream<A, E, R>,
5589
- schedule: Schedule.Schedule<R2, A0, B>,
5554
+ schedule: Schedule.Schedule<B, A0, R2>,
5590
5555
  options: {
5591
5556
  readonly onElement: (a: A) => C
5592
5557
  readonly onSchedule: (b: B) => C
5593
5558
  }
5594
5559
  ): Stream.Stream<C, E, R | R2> => {
5595
5560
  const loop = (
5596
- driver: Schedule.ScheduleDriver<R2, A0, B>,
5561
+ driver: Schedule.ScheduleDriver<B, A0, R2>,
5597
5562
  iterator: Iterator<A>
5598
5563
  ): Channel.Channel<Chunk.Chunk<C>, Chunk.Chunk<A>, E, E, unknown, unknown, R2> => {
5599
5564
  const next = iterator.next()
@@ -5642,18 +5607,18 @@ export const scheduleWith = dual<
5642
5607
 
5643
5608
  /** @internal */
5644
5609
  export const scanEffect = dual<
5645
- <S, A, R2, E2>(
5610
+ <S, A, E2, R2>(
5646
5611
  s: S,
5647
5612
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
5648
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<S, E2 | E, R2 | R>,
5649
- <R, E, S, A, R2, E2>(
5613
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<S, E2 | E, R2 | R>,
5614
+ <A, E, R, S, E2, R2>(
5650
5615
  self: Stream.Stream<A, E, R>,
5651
5616
  s: S,
5652
5617
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
5653
5618
  ) => Stream.Stream<S, E2 | E, R2 | R>
5654
5619
  >(
5655
5620
  3,
5656
- <R, E, S, A, R2, E2>(
5621
+ <A, E, R, S, E2, R2>(
5657
5622
  self: Stream.Stream<A, E, R>,
5658
5623
  s: S,
5659
5624
  f: (s: S, a: A) => Effect.Effect<S, E2, R2>
@@ -5684,20 +5649,20 @@ export const some = <A, E, R>(self: Stream.Stream<Option.Option<A>, E, R>): Stre
5684
5649
  /** @internal */
5685
5650
  export const someOrElse = dual<
5686
5651
  <A2>(fallback: LazyArg<A2>) => <A, E, R>(self: Stream.Stream<Option.Option<A>, E, R>) => Stream.Stream<A2 | A, E, R>,
5687
- <R, E, A, A2>(self: Stream.Stream<Option.Option<A>, E, R>, fallback: LazyArg<A2>) => Stream.Stream<A2 | A, E, R>
5652
+ <A, E, R, A2>(self: Stream.Stream<Option.Option<A>, E, R>, fallback: LazyArg<A2>) => Stream.Stream<A2 | A, E, R>
5688
5653
  >(
5689
5654
  2,
5690
- <R, E, A, A2>(self: Stream.Stream<Option.Option<A>, E, R>, fallback: LazyArg<A2>): Stream.Stream<A | A2, E, R> =>
5655
+ <A, E, R, A2>(self: Stream.Stream<Option.Option<A>, E, R>, fallback: LazyArg<A2>): Stream.Stream<A | A2, E, R> =>
5691
5656
  pipe(self, map(Option.getOrElse(fallback)))
5692
5657
  )
5693
5658
 
5694
5659
  /** @internal */
5695
5660
  export const someOrFail = dual<
5696
5661
  <E2>(error: LazyArg<E2>) => <A, E, R>(self: Stream.Stream<Option.Option<A>, E, R>) => Stream.Stream<A, E2 | E, R>,
5697
- <R, E, A, E2>(self: Stream.Stream<Option.Option<A>, E, R>, error: LazyArg<E2>) => Stream.Stream<A, E2 | E, R>
5662
+ <A, E, R, E2>(self: Stream.Stream<Option.Option<A>, E, R>, error: LazyArg<E2>) => Stream.Stream<A, E2 | E, R>
5698
5663
  >(
5699
5664
  2,
5700
- <R, E, A, E2>(self: Stream.Stream<Option.Option<A>, E, R>, error: LazyArg<E2>): Stream.Stream<A, E | E2, R> =>
5665
+ <A, E, R, E2>(self: Stream.Stream<Option.Option<A>, E, R>, error: LazyArg<E2>): Stream.Stream<A, E | E2, R> =>
5701
5666
  mapEffectSequential(
5702
5667
  self,
5703
5668
  Option.match({
@@ -5782,7 +5747,7 @@ export const slidingSize = dual<
5782
5747
 
5783
5748
  /** @internal */
5784
5749
  export const split = dual<
5785
- <A>(predicate: Predicate<NoInfer<A>>) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<Chunk.Chunk<A>, E, R>,
5750
+ <A>(predicate: Predicate<NoInfer<A>>) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<Chunk.Chunk<A>, E, R>,
5786
5751
  <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>) => Stream.Stream<Chunk.Chunk<A>, E, R>
5787
5752
  >(2, <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>): Stream.Stream<Chunk.Chunk<A>, E, R> => {
5788
5753
  const split = (
@@ -5822,7 +5787,7 @@ export const split = dual<
5822
5787
 
5823
5788
  /** @internal */
5824
5789
  export const splitOnChunk = dual<
5825
- <A>(delimiter: Chunk.Chunk<A>) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<Chunk.Chunk<A>, E, R>,
5790
+ <A>(delimiter: Chunk.Chunk<A>) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<Chunk.Chunk<A>, E, R>,
5826
5791
  <A, E, R>(self: Stream.Stream<A, E, R>, delimiter: Chunk.Chunk<A>) => Stream.Stream<Chunk.Chunk<A>, E, R>
5827
5792
  >(2, <A, E, R>(self: Stream.Stream<A, E, R>, delimiter: Chunk.Chunk<A>): Stream.Stream<Chunk.Chunk<A>, E, R> => {
5828
5793
  const next = (
@@ -5880,7 +5845,7 @@ export const splitOnChunk = dual<
5880
5845
  })
5881
5846
 
5882
5847
  /** @internal */
5883
- export const splitLines = <R, E>(self: Stream.Stream<string, E, R>): Stream.Stream<string, E, R> =>
5848
+ export const splitLines = <E, R>(self: Stream.Stream<string, E, R>): Stream.Stream<string, E, R> =>
5884
5849
  suspend(() => {
5885
5850
  let stringBuilder = ""
5886
5851
  let midCRLF = false
@@ -6034,7 +5999,7 @@ export const takeRight = dual<
6034
5999
 
6035
6000
  /** @internal */
6036
6001
  export const takeUntil: {
6037
- <A>(predicate: Predicate<NoInfer<A>>): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>
6002
+ <A>(predicate: Predicate<NoInfer<A>>): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>
6038
6003
  <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>): Stream.Stream<A, E, R>
6039
6004
  } = dual(2, <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>): Stream.Stream<A, E, R> => {
6040
6005
  const loop: Channel.Channel<Chunk.Chunk<A>, Chunk.Chunk<A>, never, never, unknown, unknown> = core.readWith({
@@ -6054,16 +6019,16 @@ export const takeUntil: {
6054
6019
 
6055
6020
  /** @internal */
6056
6021
  export const takeUntilEffect: {
6057
- <A, R2, E2>(
6022
+ <A, E2, R2>(
6058
6023
  predicate: (a: NoInfer<A>) => Effect.Effect<boolean, E2, R2>
6059
- ): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>
6060
- <R, E, A, R2, E2>(
6024
+ ): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>
6025
+ <A, E, R, E2, R2>(
6061
6026
  self: Stream.Stream<A, E, R>,
6062
6027
  predicate: (a: A) => Effect.Effect<boolean, E2, R2>
6063
6028
  ): Stream.Stream<A, E | E2, R | R2>
6064
6029
  } = dual(
6065
6030
  2,
6066
- <R, E, A, R2, E2>(
6031
+ <A, E, R, E2, R2>(
6067
6032
  self: Stream.Stream<A, E, R>,
6068
6033
  predicate: (a: A) => Effect.Effect<boolean, E2, R2>
6069
6034
  ): Stream.Stream<A, E | E2, R | R2> => {
@@ -6099,9 +6064,9 @@ export const takeUntilEffect: {
6099
6064
  export const takeWhile: {
6100
6065
  <A, B extends A>(
6101
6066
  refinement: Refinement<NoInfer<A>, B>
6102
- ): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>
6103
- <A>(predicate: Predicate<NoInfer<A>>): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>
6104
- <R, E, A, B extends A>(self: Stream.Stream<A, E, R>, refinement: Refinement<A, B>): Stream.Stream<B, E, R>
6067
+ ): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E, R>
6068
+ <A>(predicate: Predicate<NoInfer<A>>): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>
6069
+ <A, E, R, B extends A>(self: Stream.Stream<A, E, R>, refinement: Refinement<A, B>): Stream.Stream<B, E, R>
6105
6070
  <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>): Stream.Stream<A, E, R>
6106
6071
  } = dual(2, <A, E, R>(self: Stream.Stream<A, E, R>, predicate: Predicate<A>): Stream.Stream<A, E, R> => {
6107
6072
  const loop: Channel.Channel<Chunk.Chunk<A>, Chunk.Chunk<A>, never, never, unknown, unknown> = core.readWith({
@@ -6121,30 +6086,30 @@ export const takeWhile: {
6121
6086
 
6122
6087
  /** @internal */
6123
6088
  export const tap: {
6124
- <A, R2, E2, _>(
6125
- f: (a: NoInfer<A>) => Effect.Effect<_, E2, R2>
6126
- ): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>
6127
- <R, E, A, R2, E2, _>(
6089
+ <A, X, E2, R2>(
6090
+ f: (a: NoInfer<A>) => Effect.Effect<X, E2, R2>
6091
+ ): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>
6092
+ <A, E, R, X, E2, R2>(
6128
6093
  self: Stream.Stream<A, E, R>,
6129
- f: (a: NoInfer<A>) => Effect.Effect<_, E2, R2>
6094
+ f: (a: NoInfer<A>) => Effect.Effect<X, E2, R2>
6130
6095
  ): Stream.Stream<A, E | E2, R | R2>
6131
6096
  } = dual(
6132
6097
  2,
6133
- <R, E, A, R2, E2, _>(
6098
+ <A, E, R, X, E2, R2>(
6134
6099
  self: Stream.Stream<A, E, R>,
6135
- f: (a: NoInfer<A>) => Effect.Effect<_, E2, R2>
6100
+ f: (a: NoInfer<A>) => Effect.Effect<X, E2, R2>
6136
6101
  ): Stream.Stream<A, E | E2, R | R2> => mapEffectSequential(self, (a) => Effect.as(f(a), a))
6137
6102
  )
6138
6103
 
6139
6104
  /** @internal */
6140
6105
  export const tapBoth: {
6141
- <E, R2, E2, X1, A, R3, E3, X2>(
6106
+ <E, X1, E2, R2, A, X2, E3, R3>(
6142
6107
  options: {
6143
6108
  readonly onFailure: (e: NoInfer<E>) => Effect.Effect<X1, E2, R2>
6144
6109
  readonly onSuccess: (a: NoInfer<A>) => Effect.Effect<X2, E3, R3>
6145
6110
  }
6146
6111
  ): <R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E | E2 | E3, R | R2 | R3>
6147
- <R, E, A, R2, E2, X1, R3, E3, X2>(
6112
+ <A, E, R, X1, E2, R2, X2, E3, R3>(
6148
6113
  self: Stream.Stream<A, E, R>,
6149
6114
  options: {
6150
6115
  readonly onFailure: (e: NoInfer<E>) => Effect.Effect<X1, E2, R2>
@@ -6153,7 +6118,7 @@ export const tapBoth: {
6153
6118
  ): Stream.Stream<A, E | E2 | E3, R | R2 | R3>
6154
6119
  } = dual(
6155
6120
  2,
6156
- <R, E, A, R2, E2, X1, R3, E3, X2>(
6121
+ <A, E, R, X1, E2, R2, X2, E3, R3>(
6157
6122
  self: Stream.Stream<A, E, R>,
6158
6123
  options: {
6159
6124
  readonly onFailure: (e: NoInfer<E>) => Effect.Effect<X1, E2, R2>
@@ -6164,36 +6129,36 @@ export const tapBoth: {
6164
6129
 
6165
6130
  /** @internal */
6166
6131
  export const tapError: {
6167
- <E, R2, E2, _>(
6168
- f: (error: NoInfer<E>) => Effect.Effect<_, E2, R2>
6169
- ): <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E | E2, R2 | R>
6170
- <R, A, E, R2, E2, _>(
6132
+ <E, X, E2, R2>(
6133
+ f: (error: NoInfer<E>) => Effect.Effect<X, E2, R2>
6134
+ ): <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E | E2, R2 | R>
6135
+ <A, E, R, X, E2, R2>(
6171
6136
  self: Stream.Stream<A, E, R>,
6172
- f: (error: E) => Effect.Effect<_, E2, R2>
6137
+ f: (error: E) => Effect.Effect<X, E2, R2>
6173
6138
  ): Stream.Stream<A, E | E2, R | R2>
6174
6139
  } = dual(
6175
6140
  2,
6176
- <R, A, E, R2, E2, _>(
6141
+ <A, E, R, X, E2, R2>(
6177
6142
  self: Stream.Stream<A, E, R>,
6178
- f: (error: E) => Effect.Effect<_, E2, R2>
6143
+ f: (error: E) => Effect.Effect<X, E2, R2>
6179
6144
  ): Stream.Stream<A, E | E2, R | R2> =>
6180
6145
  catchAll(self, (error) => fromEffect(Effect.zipRight(f(error), Effect.fail(error))))
6181
6146
  )
6182
6147
 
6183
6148
  /** @internal */
6184
6149
  export const tapErrorCause: {
6185
- <E, R2, E2, _>(
6186
- f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<_, E2, R2>
6187
- ): <R, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E | E2, R2 | R>
6188
- <R, A, E, R2, E2, _>(
6150
+ <E, X, E2, R2>(
6151
+ f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<X, E2, R2>
6152
+ ): <A, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E | E2, R2 | R>
6153
+ <A, E, R, X, E2, R2>(
6189
6154
  self: Stream.Stream<A, E, R>,
6190
- f: (cause: Cause.Cause<E>) => Effect.Effect<_, E2, R2>
6155
+ f: (cause: Cause.Cause<E>) => Effect.Effect<X, E2, R2>
6191
6156
  ): Stream.Stream<A, E | E2, R | R2>
6192
6157
  } = dual(
6193
6158
  2,
6194
- <R, A, E, R2, E2, _>(
6159
+ <A, E, R, X, E2, R2>(
6195
6160
  self: Stream.Stream<A, E, R>,
6196
- f: (cause: Cause.Cause<E>) => Effect.Effect<_, E2, R2>
6161
+ f: (cause: Cause.Cause<E>) => Effect.Effect<X, E2, R2>
6197
6162
  ): Stream.Stream<A, E | E2, R | R2> => {
6198
6163
  const loop: Channel.Channel<Chunk.Chunk<A>, Chunk.Chunk<A>, E | E2, E, unknown, unknown, R | R2> = core
6199
6164
  .readWithCause({
@@ -6229,7 +6194,7 @@ export const tapSink = dual<
6229
6194
  .readWithCause({
6230
6195
  onInput: (chunk: Chunk.Chunk<A>) =>
6231
6196
  pipe(
6232
- core.fromEffect(Queue.offer(queue, _take.chunk(chunk))),
6197
+ core.fromEffect(Queue.offer(queue, InternalTake.chunk(chunk))),
6233
6198
  core.foldCauseChannel({
6234
6199
  onFailure: () => core.flatMap(core.write(chunk), () => channel.identityChannel()),
6235
6200
  onSuccess: () => core.flatMap(core.write(chunk), () => loop)
@@ -6237,7 +6202,7 @@ export const tapSink = dual<
6237
6202
  ) as Channel.Channel<Chunk.Chunk<A>, Chunk.Chunk<A>, E | E2, E, unknown, unknown, R2>,
6238
6203
  onFailure: (cause: Cause.Cause<E | E2>) =>
6239
6204
  pipe(
6240
- core.fromEffect(Queue.offer(queue, _take.failCause(cause))),
6205
+ core.fromEffect(Queue.offer(queue, InternalTake.failCause(cause))),
6241
6206
  core.foldCauseChannel({
6242
6207
  onFailure: () => core.failCause(cause),
6243
6208
  onSuccess: () => core.failCause(cause)
@@ -6245,7 +6210,7 @@ export const tapSink = dual<
6245
6210
  ),
6246
6211
  onDone: () =>
6247
6212
  pipe(
6248
- core.fromEffect(Queue.offer(queue, _take.end)),
6213
+ core.fromEffect(Queue.offer(queue, InternalTake.end)),
6249
6214
  core.foldCauseChannel({
6250
6215
  onFailure: () => core.unit,
6251
6216
  onSuccess: () => core.unit
@@ -6256,7 +6221,7 @@ export const tapSink = dual<
6256
6221
  new StreamImpl(pipe(
6257
6222
  core.pipeTo(toChannel(self), loop),
6258
6223
  channel.ensuring(Effect.zipRight(
6259
- Effect.forkDaemon(Queue.offer(queue, _take.end)),
6224
+ Effect.forkDaemon(Queue.offer(queue, InternalTake.end)),
6260
6225
  Deferred.await(deferred)
6261
6226
  ))
6262
6227
  )),
@@ -6284,7 +6249,7 @@ export const throttle = dual<
6284
6249
  readonly burst?: number | undefined
6285
6250
  readonly strategy?: "enforce" | "shape" | undefined
6286
6251
  }
6287
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>,
6252
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>,
6288
6253
  <A, E, R>(
6289
6254
  self: Stream.Stream<A, E, R>,
6290
6255
  options: {
@@ -6315,7 +6280,7 @@ export const throttle = dual<
6315
6280
 
6316
6281
  /** @internal */
6317
6282
  export const throttleEffect = dual<
6318
- <A, R2, E2>(
6283
+ <A, E2, R2>(
6319
6284
  options: {
6320
6285
  readonly cost: (chunk: Chunk.Chunk<A>) => Effect.Effect<number, E2, R2>
6321
6286
  readonly units: number
@@ -6323,8 +6288,8 @@ export const throttleEffect = dual<
6323
6288
  readonly burst?: number | undefined
6324
6289
  readonly strategy?: "enforce" | "shape" | undefined
6325
6290
  }
6326
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
6327
- <R, E, A, R2, E2>(
6291
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
6292
+ <A, E, R, E2, R2>(
6328
6293
  self: Stream.Stream<A, E, R>,
6329
6294
  options: {
6330
6295
  readonly cost: (chunk: Chunk.Chunk<A>) => Effect.Effect<number, E2, R2>
@@ -6336,7 +6301,7 @@ export const throttleEffect = dual<
6336
6301
  ) => Stream.Stream<A, E2 | E, R2 | R>
6337
6302
  >(
6338
6303
  2,
6339
- <R, E, A, R2, E2>(
6304
+ <A, E, R, E2, R2>(
6340
6305
  self: Stream.Stream<A, E, R>,
6341
6306
  options: {
6342
6307
  readonly cost: (chunk: Chunk.Chunk<A>) => Effect.Effect<number, E2, R2>
@@ -6353,7 +6318,7 @@ export const throttleEffect = dual<
6353
6318
  }
6354
6319
  )
6355
6320
 
6356
- const throttleEnforceEffect = <R, E, A, R2, E2>(
6321
+ const throttleEnforceEffect = <A, E, R, E2, R2>(
6357
6322
  self: Stream.Stream<A, E, R>,
6358
6323
  cost: (chunk: Chunk.Chunk<A>) => Effect.Effect<number, E2, R2>,
6359
6324
  units: number,
@@ -6396,7 +6361,7 @@ const throttleEnforceEffect = <R, E, A, R2, E2>(
6396
6361
  return new StreamImpl(pipe(toChannel(self), channel.pipeToOrFail(throttled)))
6397
6362
  }
6398
6363
 
6399
- const throttleShapeEffect = <R, E, A, R2, E2>(
6364
+ const throttleShapeEffect = <A, E, R, E2, R2>(
6400
6365
  self: Stream.Stream<A, E, R>,
6401
6366
  costFn: (chunk: Chunk.Chunk<A>) => Effect.Effect<number, E2, R2>,
6402
6367
  units: number,
@@ -6470,14 +6435,14 @@ export const timeoutFail = dual<
6470
6435
  error: LazyArg<E2>,
6471
6436
  duration: Duration.DurationInput
6472
6437
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R>,
6473
- <R, E, A, E2>(
6438
+ <A, E, R, E2>(
6474
6439
  self: Stream.Stream<A, E, R>,
6475
6440
  error: LazyArg<E2>,
6476
6441
  duration: Duration.DurationInput
6477
6442
  ) => Stream.Stream<A, E2 | E, R>
6478
6443
  >(
6479
6444
  3,
6480
- <R, E, A, E2>(
6445
+ <A, E, R, E2>(
6481
6446
  self: Stream.Stream<A, E, R>,
6482
6447
  error: LazyArg<E2>,
6483
6448
  duration: Duration.DurationInput
@@ -6490,14 +6455,14 @@ export const timeoutFailCause = dual<
6490
6455
  cause: LazyArg<Cause.Cause<E2>>,
6491
6456
  duration: Duration.DurationInput
6492
6457
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R>,
6493
- <R, E, A, E2>(
6458
+ <A, E, R, E2>(
6494
6459
  self: Stream.Stream<A, E, R>,
6495
6460
  cause: LazyArg<Cause.Cause<E2>>,
6496
6461
  duration: Duration.DurationInput
6497
6462
  ) => Stream.Stream<A, E2 | E, R>
6498
6463
  >(
6499
6464
  3,
6500
- <R, E, A, E2>(
6465
+ <A, E, R, E2>(
6501
6466
  self: Stream.Stream<A, E, R>,
6502
6467
  cause: LazyArg<Cause.Cause<E2>>,
6503
6468
  duration: Duration.DurationInput
@@ -6516,18 +6481,18 @@ export const timeoutFailCause = dual<
6516
6481
 
6517
6482
  /** @internal */
6518
6483
  export const timeoutTo = dual<
6519
- <R2, E2, A2>(
6484
+ <A2, E2, R2>(
6520
6485
  duration: Duration.DurationInput,
6521
6486
  that: Stream.Stream<A2, E2, R2>
6522
6487
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2 | A, E2 | E, R2 | R>,
6523
- <R, E, A, R2, E2, A2>(
6488
+ <A, E, R, A2, E2, R2>(
6524
6489
  self: Stream.Stream<A, E, R>,
6525
6490
  duration: Duration.DurationInput,
6526
6491
  that: Stream.Stream<A2, E2, R2>
6527
6492
  ) => Stream.Stream<A2 | A, E2 | E, R2 | R>
6528
6493
  >(
6529
6494
  3,
6530
- <R, E, A, R2, E2, A2>(
6495
+ <A, E, R, A2, E2, R2>(
6531
6496
  self: Stream.Stream<A, E, R>,
6532
6497
  duration: Duration.DurationInput,
6533
6498
  that: Stream.Stream<A2, E2, R2>
@@ -6790,7 +6755,7 @@ export const unfoldChunk = <S, A>(
6790
6755
  }
6791
6756
 
6792
6757
  /** @internal */
6793
- export const unfoldChunkEffect = <R, E, A, S>(
6758
+ export const unfoldChunkEffect = <S, A, E, R>(
6794
6759
  s: S,
6795
6760
  f: (s: S) => Effect.Effect<Option.Option<readonly [Chunk.Chunk<A>, S]>, E, R>
6796
6761
  ): Stream.Stream<A, E, R> =>
@@ -6809,7 +6774,7 @@ export const unfoldChunkEffect = <R, E, A, S>(
6809
6774
  })
6810
6775
 
6811
6776
  /** @internal */
6812
- export const unfoldEffect = <S, R, E, A>(
6777
+ export const unfoldEffect = <S, A, E, R>(
6813
6778
  s: S,
6814
6779
  f: (s: S) => Effect.Effect<Option.Option<readonly [A, S]>, E, R>
6815
6780
  ): Stream.Stream<A, E, R> =>
@@ -6819,12 +6784,12 @@ export const unfoldEffect = <S, R, E, A>(
6819
6784
  export const unit: Stream.Stream<void> = succeed(void 0)
6820
6785
 
6821
6786
  /** @internal */
6822
- export const unwrap = <R, E, R2, E2, A>(
6787
+ export const unwrap = <A, E2, R2, E, R>(
6823
6788
  effect: Effect.Effect<Stream.Stream<A, E2, R2>, E, R>
6824
6789
  ): Stream.Stream<A, E | E2, R | R2> => flatten(fromEffect(effect))
6825
6790
 
6826
6791
  /** @internal */
6827
- export const unwrapScoped = <R, E, R2, E2, A>(
6792
+ export const unwrapScoped = <A, E2, R2, E, R>(
6828
6793
  effect: Effect.Effect<Stream.Stream<A, E2, R2>, E, R>
6829
6794
  ): Stream.Stream<A, E | E2, Exclude<R, Scope.Scope> | R2> => flatten(scoped(effect))
6830
6795
 
@@ -6834,14 +6799,14 @@ export const updateService = dual<
6834
6799
  tag: T,
6835
6800
  f: (service: Context.Tag.Service<T>) => Context.Tag.Service<T>
6836
6801
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, T | R>,
6837
- <R, E, A, T extends Context.Tag<any, any>>(
6802
+ <A, E, R, T extends Context.Tag<any, any>>(
6838
6803
  self: Stream.Stream<A, E, R>,
6839
6804
  tag: T,
6840
6805
  f: (service: Context.Tag.Service<T>) => Context.Tag.Service<T>
6841
6806
  ) => Stream.Stream<A, E, T | R>
6842
6807
  >(
6843
6808
  3,
6844
- <R, E, A, T extends Context.Tag<any, any>>(
6809
+ <A, E, R, T extends Context.Tag<any, any>>(
6845
6810
  self: Stream.Stream<A, E, R>,
6846
6811
  tag: T,
6847
6812
  f: (service: Context.Tag.Service<T>) => Context.Tag.Service<T>
@@ -6868,23 +6833,23 @@ export const when = dual<
6868
6833
  )
6869
6834
 
6870
6835
  /** @internal */
6871
- export const whenCase = <A, R, E, A2>(
6836
+ export const whenCase = <A, A2, E, R>(
6872
6837
  evaluate: LazyArg<A>,
6873
6838
  pf: (a: A) => Option.Option<Stream.Stream<A2, E, R>>
6874
6839
  ) => whenCaseEffect(pf)(Effect.sync(evaluate))
6875
6840
 
6876
6841
  /** @internal */
6877
6842
  export const whenCaseEffect = dual<
6878
- <A, R2, E2, A2>(
6843
+ <A, A2, E2, R2>(
6879
6844
  pf: (a: A) => Option.Option<Stream.Stream<A2, E2, R2>>
6880
- ) => <R, E>(self: Effect.Effect<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
6881
- <R, E, A, R2, E2, A2>(
6845
+ ) => <E, R>(self: Effect.Effect<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
6846
+ <A, E, R, A2, E2, R2>(
6882
6847
  self: Effect.Effect<A, E, R>,
6883
6848
  pf: (a: A) => Option.Option<Stream.Stream<A2, E2, R2>>
6884
6849
  ) => Stream.Stream<A2, E2 | E, R2 | R>
6885
6850
  >(
6886
6851
  2,
6887
- <R, E, A, R2, E2, A2>(
6852
+ <A, E, R, A2, E2, R2>(
6888
6853
  self: Effect.Effect<A, E, R>,
6889
6854
  pf: (a: A) => Option.Option<Stream.Stream<A2, E2, R2>>
6890
6855
  ): Stream.Stream<A2, E | E2, R | R2> =>
@@ -6896,16 +6861,16 @@ export const whenCaseEffect = dual<
6896
6861
 
6897
6862
  /** @internal */
6898
6863
  export const whenEffect = dual<
6899
- <R2, E2>(
6864
+ <E2, R2>(
6900
6865
  effect: Effect.Effect<boolean, E2, R2>
6901
6866
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
6902
- <R, E, A, R2, E2>(
6867
+ <A, E, R, E2, R2>(
6903
6868
  self: Stream.Stream<A, E, R>,
6904
6869
  effect: Effect.Effect<boolean, E2, R2>
6905
6870
  ) => Stream.Stream<A, E2 | E, R2 | R>
6906
6871
  >(
6907
6872
  2,
6908
- <R, E, A, R2, E2>(
6873
+ <A, E, R, E2, R2>(
6909
6874
  self: Stream.Stream<A, E, R>,
6910
6875
  effect: Effect.Effect<boolean, E2, R2>
6911
6876
  ): Stream.Stream<A, E | E2, R | R2> => pipe(fromEffect(effect), flatMap((bool) => bool ? self : empty))
@@ -6938,16 +6903,16 @@ export const withSpan = dual<
6938
6903
 
6939
6904
  /** @internal */
6940
6905
  export const zip = dual<
6941
- <R2, E2, A2>(
6906
+ <A2, E2, R2>(
6942
6907
  that: Stream.Stream<A2, E2, R2>
6943
6908
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<[A, A2], E2 | E, R2 | R>,
6944
- <R, E, A, R2, E2, A2>(
6909
+ <A, E, R, A2, E2, R2>(
6945
6910
  self: Stream.Stream<A, E, R>,
6946
6911
  that: Stream.Stream<A2, E2, R2>
6947
6912
  ) => Stream.Stream<[A, A2], E2 | E, R2 | R>
6948
6913
  >(
6949
6914
  2,
6950
- <R, E, A, R2, E2, A2>(
6915
+ <A, E, R, A2, E2, R2>(
6951
6916
  self: Stream.Stream<A, E, R>,
6952
6917
  that: Stream.Stream<A2, E2, R2>
6953
6918
  ): Stream.Stream<[A, A2], E2 | E, R2 | R> => pipe(self, zipWith(that, (a, a2) => [a, a2]))
@@ -6955,18 +6920,18 @@ export const zip = dual<
6955
6920
 
6956
6921
  /** @internal */
6957
6922
  export const zipFlatten = dual<
6958
- <R2, E2, A2>(
6923
+ <A2, E2, R2>(
6959
6924
  that: Stream.Stream<A2, E2, R2>
6960
- ) => <R, E, A extends ReadonlyArray<any>>(
6925
+ ) => <A extends ReadonlyArray<any>, E, R>(
6961
6926
  self: Stream.Stream<A, E, R>
6962
6927
  ) => Stream.Stream<[...A, A2], E2 | E, R2 | R>,
6963
- <R, E, A extends ReadonlyArray<any>, R2, E2, A2>(
6928
+ <A extends ReadonlyArray<any>, E, R, A2, E2, R2>(
6964
6929
  self: Stream.Stream<A, E, R>,
6965
6930
  that: Stream.Stream<A2, E2, R2>
6966
6931
  ) => Stream.Stream<[...A, A2], E2 | E, R2 | R>
6967
6932
  >(
6968
6933
  2,
6969
- <R, E, A extends ReadonlyArray<any>, R2, E2, A2>(
6934
+ <A extends ReadonlyArray<any>, E, R, A2, E2, R2>(
6970
6935
  self: Stream.Stream<A, E, R>,
6971
6936
  that: Stream.Stream<A2, E2, R2>
6972
6937
  ): Stream.Stream<[...A, A2], E2 | E, R2 | R> => pipe(self, zipWith(that, (a, a2) => [...a, a2]))
@@ -6974,14 +6939,14 @@ export const zipFlatten = dual<
6974
6939
 
6975
6940
  /** @internal */
6976
6941
  export const zipAll = dual<
6977
- <R2, E2, A2, A>(
6942
+ <A2, E2, R2, A>(
6978
6943
  options: {
6979
6944
  readonly other: Stream.Stream<A2, E2, R2>
6980
6945
  readonly defaultSelf: A
6981
6946
  readonly defaultOther: A2
6982
6947
  }
6983
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<[A, A2], E2 | E, R2 | R>,
6984
- <R, E, R2, E2, A2, A>(
6948
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<[A, A2], E2 | E, R2 | R>,
6949
+ <A, E, R, A2, E2, R2>(
6985
6950
  self: Stream.Stream<A, E, R>,
6986
6951
  options: {
6987
6952
  readonly other: Stream.Stream<A2, E2, R2>
@@ -6991,7 +6956,7 @@ export const zipAll = dual<
6991
6956
  ) => Stream.Stream<[A, A2], E2 | E, R2 | R>
6992
6957
  >(
6993
6958
  2,
6994
- <R, E, R2, E2, A2, A>(
6959
+ <A, E, R, A2, E2, R2>(
6995
6960
  self: Stream.Stream<A, E, R>,
6996
6961
  options: {
6997
6962
  readonly other: Stream.Stream<A2, E2, R2>
@@ -7009,18 +6974,18 @@ export const zipAll = dual<
7009
6974
 
7010
6975
  /** @internal */
7011
6976
  export const zipAllLeft = dual<
7012
- <R2, E2, A2, A>(
6977
+ <A2, E2, R2, A>(
7013
6978
  that: Stream.Stream<A2, E2, R2>,
7014
6979
  defaultLeft: A
7015
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
7016
- <R, E, R2, E2, A2, A>(
6980
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
6981
+ <A, E, R, A2, E2, R2>(
7017
6982
  self: Stream.Stream<A, E, R>,
7018
6983
  that: Stream.Stream<A2, E2, R2>,
7019
6984
  defaultLeft: A
7020
6985
  ) => Stream.Stream<A, E2 | E, R2 | R>
7021
6986
  >(
7022
6987
  3,
7023
- <R, E, R2, E2, A2, A>(
6988
+ <A, E, R, A2, E2, R2>(
7024
6989
  self: Stream.Stream<A, E, R>,
7025
6990
  other: Stream.Stream<A2, E2, R2>,
7026
6991
  defaultSelf: A
@@ -7035,18 +7000,18 @@ export const zipAllLeft = dual<
7035
7000
 
7036
7001
  /** @internal */
7037
7002
  export const zipAllRight = dual<
7038
- <R2, E2, A2>(
7003
+ <A2, E2, R2>(
7039
7004
  that: Stream.Stream<A2, E2, R2>,
7040
7005
  defaultRight: A2
7041
7006
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
7042
- <R, E, A, R2, E2, A2>(
7007
+ <A, E, R, A2, E2, R2>(
7043
7008
  self: Stream.Stream<A, E, R>,
7044
7009
  that: Stream.Stream<A2, E2, R2>,
7045
7010
  defaultRight: A2
7046
7011
  ) => Stream.Stream<A2, E2 | E, R2 | R>
7047
7012
  >(
7048
7013
  3,
7049
- <R, E, A, R2, E2, A2>(
7014
+ <A, E, R, A2, E2, R2>(
7050
7015
  self: Stream.Stream<A, E, R>,
7051
7016
  other: Stream.Stream<A2, E2, R2>,
7052
7017
  defaultRight: A2
@@ -7061,17 +7026,17 @@ export const zipAllRight = dual<
7061
7026
 
7062
7027
  /** @internal */
7063
7028
  export const zipAllSortedByKey = dual<
7064
- <R2, E2, A2, A, K>(
7029
+ <A2, E2, R2, A, K>(
7065
7030
  options: {
7066
7031
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
7067
7032
  readonly defaultSelf: A
7068
7033
  readonly defaultOther: A2
7069
7034
  readonly order: Order.Order<K>
7070
7035
  }
7071
- ) => <R, E>(
7036
+ ) => <E, R>(
7072
7037
  self: Stream.Stream<readonly [K, A], E, R>
7073
7038
  ) => Stream.Stream<[K, [A, A2]], E2 | E, R2 | R>,
7074
- <R, E, R2, E2, A2, A, K>(
7039
+ <K, A, E, R, A2, E2, R2>(
7075
7040
  self: Stream.Stream<readonly [K, A], E, R>,
7076
7041
  options: {
7077
7042
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
@@ -7082,7 +7047,7 @@ export const zipAllSortedByKey = dual<
7082
7047
  ) => Stream.Stream<[K, [A, A2]], E2 | E, R2 | R>
7083
7048
  >(
7084
7049
  2,
7085
- <R, E, R2, E2, A2, A, K>(
7050
+ <K, A, E, R, A2, E2, R2>(
7086
7051
  self: Stream.Stream<readonly [K, A], E, R>,
7087
7052
  options: {
7088
7053
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
@@ -7102,14 +7067,14 @@ export const zipAllSortedByKey = dual<
7102
7067
 
7103
7068
  /** @internal */
7104
7069
  export const zipAllSortedByKeyLeft = dual<
7105
- <R2, E2, A2, A, K>(
7070
+ <A2, E2, R2, A, K>(
7106
7071
  options: {
7107
7072
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
7108
7073
  readonly defaultSelf: A
7109
7074
  readonly order: Order.Order<K>
7110
7075
  }
7111
- ) => <R, E>(self: Stream.Stream<readonly [K, A], E, R>) => Stream.Stream<[K, A], E2 | E, R2 | R>,
7112
- <R, E, R2, E2, A2, A, K>(
7076
+ ) => <E, R>(self: Stream.Stream<readonly [K, A], E, R>) => Stream.Stream<[K, A], E2 | E, R2 | R>,
7077
+ <K, A, E, R, A2, E2, R2>(
7113
7078
  self: Stream.Stream<readonly [K, A], E, R>,
7114
7079
  options: {
7115
7080
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
@@ -7119,7 +7084,7 @@ export const zipAllSortedByKeyLeft = dual<
7119
7084
  ) => Stream.Stream<[K, A], E2 | E, R2 | R>
7120
7085
  >(
7121
7086
  2,
7122
- <R, E, R2, E2, A2, A, K>(
7087
+ <K, A, E, R, A2, E2, R2>(
7123
7088
  self: Stream.Stream<readonly [K, A], E, R>,
7124
7089
  options: {
7125
7090
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
@@ -7138,14 +7103,14 @@ export const zipAllSortedByKeyLeft = dual<
7138
7103
 
7139
7104
  /** @internal */
7140
7105
  export const zipAllSortedByKeyRight = dual<
7141
- <R2, E2, A2, K>(
7106
+ <K, A2, E2, R2>(
7142
7107
  options: {
7143
7108
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
7144
7109
  readonly defaultOther: A2
7145
7110
  readonly order: Order.Order<K>
7146
7111
  }
7147
7112
  ) => <A, E, R>(self: Stream.Stream<readonly [K, A], E, R>) => Stream.Stream<[K, A2], E2 | E, R2 | R>,
7148
- <R, E, A, R2, E2, A2, K>(
7113
+ <A, E, R, K, A2, E2, R2>(
7149
7114
  self: Stream.Stream<readonly [K, A], E, R>,
7150
7115
  options: {
7151
7116
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
@@ -7155,7 +7120,7 @@ export const zipAllSortedByKeyRight = dual<
7155
7120
  ) => Stream.Stream<[K, A2], E2 | E, R2 | R>
7156
7121
  >(
7157
7122
  2,
7158
- <R, E, A, R2, E2, A2, K>(
7123
+ <A, E, R, K, A2, E2, R2>(
7159
7124
  self: Stream.Stream<readonly [K, A], E, R>,
7160
7125
  options: {
7161
7126
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
@@ -7174,7 +7139,7 @@ export const zipAllSortedByKeyRight = dual<
7174
7139
 
7175
7140
  /** @internal */
7176
7141
  export const zipAllSortedByKeyWith = dual<
7177
- <R2, E2, A, A3, A2, K>(
7142
+ <K, A2, E2, R2, A, A3>(
7178
7143
  options: {
7179
7144
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
7180
7145
  readonly onSelf: (a: A) => A3
@@ -7182,8 +7147,8 @@ export const zipAllSortedByKeyWith = dual<
7182
7147
  readonly onBoth: (a: A, a2: A2) => A3
7183
7148
  readonly order: Order.Order<K>
7184
7149
  }
7185
- ) => <R, E>(self: Stream.Stream<readonly [K, A], E, R>) => Stream.Stream<[K, A3], E2 | E, R2 | R>,
7186
- <R, E, R2, E2, A, A3, A2, K>(
7150
+ ) => <E, R>(self: Stream.Stream<readonly [K, A], E, R>) => Stream.Stream<[K, A3], E2 | E, R2 | R>,
7151
+ <K, A, E, R, A2, E2, R2, A3>(
7187
7152
  self: Stream.Stream<readonly [K, A], E, R>,
7188
7153
  options: {
7189
7154
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
@@ -7195,7 +7160,7 @@ export const zipAllSortedByKeyWith = dual<
7195
7160
  ) => Stream.Stream<[K, A3], E2 | E, R2 | R>
7196
7161
  >(
7197
7162
  2,
7198
- <R, E, R2, E2, A, A3, A2, K>(
7163
+ <K, A, E, R, A2, E2, R2, A3>(
7199
7164
  self: Stream.Stream<readonly [K, A], E, R>,
7200
7165
  options: {
7201
7166
  readonly other: Stream.Stream<readonly [K, A2], E2, R2>
@@ -7452,15 +7417,15 @@ export const zipAllSortedByKeyWith = dual<
7452
7417
 
7453
7418
  /** @internal */
7454
7419
  export const zipAllWith = dual<
7455
- <R2, E2, A2, A, A3>(
7420
+ <A2, E2, R2, A, A3>(
7456
7421
  options: {
7457
7422
  readonly other: Stream.Stream<A2, E2, R2>
7458
7423
  readonly onSelf: (a: A) => A3
7459
7424
  readonly onOther: (a2: A2) => A3
7460
7425
  readonly onBoth: (a: A, a2: A2) => A3
7461
7426
  }
7462
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R>,
7463
- <R, E, R2, E2, A2, A, A3>(
7427
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R>,
7428
+ <A, E, R, A2, E2, R2, A3>(
7464
7429
  self: Stream.Stream<A, E, R>,
7465
7430
  options: {
7466
7431
  readonly other: Stream.Stream<A2, E2, R2>
@@ -7471,7 +7436,7 @@ export const zipAllWith = dual<
7471
7436
  ) => Stream.Stream<A3, E2 | E, R2 | R>
7472
7437
  >(
7473
7438
  2,
7474
- <R, E, R2, E2, A2, A, A3>(
7439
+ <A, E, R, A2, E2, R2, A3>(
7475
7440
  self: Stream.Stream<A, E, R>,
7476
7441
  options: {
7477
7442
  readonly other: Stream.Stream<A2, E2, R2>
@@ -7649,16 +7614,16 @@ export const zipAllWith = dual<
7649
7614
 
7650
7615
  /** @internal */
7651
7616
  export const zipLatest = dual<
7652
- <R2, E2, A2>(
7617
+ <A2, E2, R2>(
7653
7618
  that: Stream.Stream<A2, E2, R2>
7654
7619
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<[A, A2], E2 | E, R2 | R>,
7655
- <R, E, A, R2, E2, A2>(
7620
+ <A, E, R, A2, E2, R2>(
7656
7621
  self: Stream.Stream<A, E, R>,
7657
7622
  that: Stream.Stream<A2, E2, R2>
7658
7623
  ) => Stream.Stream<[A, A2], E2 | E, R2 | R>
7659
7624
  >(
7660
7625
  2,
7661
- <R, E, A, R2, E2, A2>(
7626
+ <A, E, R, A2, E2, R2>(
7662
7627
  self: Stream.Stream<A, E, R>,
7663
7628
  that: Stream.Stream<A2, E2, R2>
7664
7629
  ): Stream.Stream<[A, A2], E2 | E, R2 | R> => pipe(self, zipLatestWith(that, (a, a2) => [a, a2]))
@@ -7666,18 +7631,18 @@ export const zipLatest = dual<
7666
7631
 
7667
7632
  /** @internal */
7668
7633
  export const zipLatestWith = dual<
7669
- <R2, E2, A2, A, A3>(
7634
+ <A2, E2, R2, A, A3>(
7670
7635
  that: Stream.Stream<A2, E2, R2>,
7671
7636
  f: (a: A, a2: A2) => A3
7672
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R>,
7673
- <R, E, R2, E2, A2, A, A3>(
7637
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R>,
7638
+ <A, E, R, A2, E2, R2, A3>(
7674
7639
  self: Stream.Stream<A, E, R>,
7675
7640
  that: Stream.Stream<A2, E2, R2>,
7676
7641
  f: (a: A, a2: A2) => A3
7677
7642
  ) => Stream.Stream<A3, E2 | E, R2 | R>
7678
7643
  >(
7679
7644
  3,
7680
- <R, E, R2, E2, A2, A, A3>(
7645
+ <A, E, R, A2, E2, R2, A3>(
7681
7646
  self: Stream.Stream<A, E, R>,
7682
7647
  that: Stream.Stream<A2, E2, R2>,
7683
7648
  f: (a: A, a2: A2) => A3
@@ -7757,16 +7722,16 @@ export const zipLatestWith = dual<
7757
7722
 
7758
7723
  /** @internal */
7759
7724
  export const zipLeft = dual<
7760
- <R2, E2, A2>(
7725
+ <A2, E2, R2>(
7761
7726
  that: Stream.Stream<A2, E2, R2>
7762
7727
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
7763
- <R, E, A, R2, E2, A2>(
7728
+ <A, E, R, A2, E2, R2>(
7764
7729
  self: Stream.Stream<A, E, R>,
7765
7730
  that: Stream.Stream<A2, E2, R2>
7766
7731
  ) => Stream.Stream<A, E2 | E, R2 | R>
7767
7732
  >(
7768
7733
  2,
7769
- <R, E, A, R2, E2, A2>(
7734
+ <A, E, R, A2, E2, R2>(
7770
7735
  self: Stream.Stream<A, E, R>,
7771
7736
  that: Stream.Stream<A2, E2, R2>
7772
7737
  ): Stream.Stream<A, E | E2, R | R2> =>
@@ -7789,16 +7754,16 @@ export const zipLeft = dual<
7789
7754
 
7790
7755
  /** @internal */
7791
7756
  export const zipRight = dual<
7792
- <R2, E2, A2>(
7757
+ <A2, E2, R2>(
7793
7758
  that: Stream.Stream<A2, E2, R2>
7794
7759
  ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
7795
- <R, E, A, R2, E2, A2>(
7760
+ <A, E, R, A2, E2, R2>(
7796
7761
  self: Stream.Stream<A, E, R>,
7797
7762
  that: Stream.Stream<A2, E2, R2>
7798
7763
  ) => Stream.Stream<A2, E2 | E, R2 | R>
7799
7764
  >(
7800
7765
  2,
7801
- <R, E, A, R2, E2, A2>(
7766
+ <A, E, R, A2, E2, R2>(
7802
7767
  self: Stream.Stream<A, E, R>,
7803
7768
  that: Stream.Stream<A2, E2, R2>
7804
7769
  ): Stream.Stream<A2, E | E2, R | R2> =>
@@ -7821,18 +7786,18 @@ export const zipRight = dual<
7821
7786
 
7822
7787
  /** @internal */
7823
7788
  export const zipWith = dual<
7824
- <R2, E2, A2, A, A3>(
7789
+ <A2, E2, R2, A, A3>(
7825
7790
  that: Stream.Stream<A2, E2, R2>,
7826
7791
  f: (a: A, a2: A2) => A3
7827
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R>,
7828
- <R, E, R2, E2, A2, A, A3>(
7792
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R>,
7793
+ <A, E, R, A2, E2, R2, A3>(
7829
7794
  self: Stream.Stream<A, E, R>,
7830
7795
  that: Stream.Stream<A2, E2, R2>,
7831
7796
  f: (a: A, a2: A2) => A3
7832
7797
  ) => Stream.Stream<A3, E2 | E, R2 | R>
7833
7798
  >(
7834
7799
  3,
7835
- <R, E, R2, E2, A2, A, A3>(
7800
+ <A, E, R, A2, E2, R2, A3>(
7836
7801
  self: Stream.Stream<A, E, R>,
7837
7802
  that: Stream.Stream<A2, E2, R2>,
7838
7803
  f: (a: A, a2: A2) => A3
@@ -7842,28 +7807,28 @@ export const zipWith = dual<
7842
7807
 
7843
7808
  /** @internal */
7844
7809
  export const zipWithChunks = dual<
7845
- <R2, E2, A2, A, A3>(
7810
+ <A2, E2, R2, A, A3>(
7846
7811
  that: Stream.Stream<A2, E2, R2>,
7847
7812
  f: (
7848
7813
  left: Chunk.Chunk<A>,
7849
7814
  right: Chunk.Chunk<A2>
7850
- ) => readonly [Chunk.Chunk<A3>, Either.Either<Chunk.Chunk<A>, Chunk.Chunk<A2>>]
7851
- ) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R>,
7852
- <R, E, R2, E2, A2, A, A3>(
7815
+ ) => readonly [Chunk.Chunk<A3>, Either.Either<Chunk.Chunk<A2>, Chunk.Chunk<A>>]
7816
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R>,
7817
+ <A, E, R, A2, E2, R2, A3>(
7853
7818
  self: Stream.Stream<A, E, R>,
7854
7819
  that: Stream.Stream<A2, E2, R2>,
7855
7820
  f: (
7856
7821
  left: Chunk.Chunk<A>,
7857
7822
  right: Chunk.Chunk<A2>
7858
- ) => readonly [Chunk.Chunk<A3>, Either.Either<Chunk.Chunk<A>, Chunk.Chunk<A2>>]
7823
+ ) => readonly [Chunk.Chunk<A3>, Either.Either<Chunk.Chunk<A2>, Chunk.Chunk<A>>]
7859
7824
  ) => Stream.Stream<A3, E2 | E, R2 | R>
7860
- >(3, <R, E, R2, E2, A2, A, A3>(
7825
+ >(3, <A, E, R, A2, E2, R2, A3>(
7861
7826
  self: Stream.Stream<A, E, R>,
7862
7827
  that: Stream.Stream<A2, E2, R2>,
7863
7828
  f: (
7864
7829
  left: Chunk.Chunk<A>,
7865
7830
  right: Chunk.Chunk<A2>
7866
- ) => readonly [Chunk.Chunk<A3>, Either.Either<Chunk.Chunk<A>, Chunk.Chunk<A2>>]
7831
+ ) => readonly [Chunk.Chunk<A3>, Either.Either<Chunk.Chunk<A2>, Chunk.Chunk<A>>]
7867
7832
  ): Stream.Stream<A3, E2 | E, R2 | R> => {
7868
7833
  const pull = (
7869
7834
  state: ZipChunksState.ZipChunksState<A, A2>,
@@ -8025,7 +7990,7 @@ const zipChunks = <A, B, C>(
8025
7990
  left: Chunk.Chunk<A>,
8026
7991
  right: Chunk.Chunk<B>,
8027
7992
  f: (a: A, b: B) => C
8028
- ): [Chunk.Chunk<C>, Either.Either<Chunk.Chunk<A>, Chunk.Chunk<B>>] => {
7993
+ ): [Chunk.Chunk<C>, Either.Either<Chunk.Chunk<B>, Chunk.Chunk<A>>] => {
8029
7994
  if (left.length > right.length) {
8030
7995
  return [
8031
7996
  pipe(left, Chunk.take(right.length), Chunk.zipWith(right, f)),
@@ -8045,19 +8010,19 @@ export const Do: Stream.Stream<{}> = succeed({})
8045
8010
 
8046
8011
  /** @internal */
8047
8012
  export const bind = dual<
8048
- <N extends string, K, R2, E2, A>(
8013
+ <N extends string, K, A, E2, R2>(
8049
8014
  tag: Exclude<N, keyof K>,
8050
8015
  f: (_: K) => Stream.Stream<A, E2, R2>,
8051
8016
  options?: {
8052
8017
  readonly concurrency?: number | "unbounded" | undefined
8053
8018
  readonly bufferSize?: number | undefined
8054
8019
  }
8055
- ) => <R, E>(self: Stream.Stream<K, E, R>) => Stream.Stream<
8056
- Effect.MergeRecord<K, { [k in N]: A }>,
8020
+ ) => <E, R>(self: Stream.Stream<K, E, R>) => Stream.Stream<
8021
+ MergeRecord<K, { [k in N]: A }>,
8057
8022
  E | E2,
8058
8023
  R | R2
8059
8024
  >,
8060
- <R, E, N extends string, K, R2, E2, A>(
8025
+ <K, E, R, N extends string, A, E2, R2>(
8061
8026
  self: Stream.Stream<K, E, R>,
8062
8027
  tag: Exclude<N, keyof K>,
8063
8028
  f: (_: K) => Stream.Stream<A, E2, R2>,
@@ -8066,11 +8031,11 @@ export const bind = dual<
8066
8031
  readonly bufferSize?: number | undefined
8067
8032
  }
8068
8033
  ) => Stream.Stream<
8069
- Effect.MergeRecord<K, { [k in N]: A }>,
8034
+ MergeRecord<K, { [k in N]: A }>,
8070
8035
  E | E2,
8071
8036
  R | R2
8072
8037
  >
8073
- >((args) => typeof args[0] !== "string", <R, E, N extends string, K, R2, E2, A>(
8038
+ >((args) => typeof args[0] !== "string", <K, E, R, N extends string, A, E2, R2>(
8074
8039
  self: Stream.Stream<K, E, R>,
8075
8040
  tag: Exclude<N, keyof K>,
8076
8041
  f: (_: K) => Stream.Stream<A, E2, R2>,
@@ -8082,7 +8047,7 @@ export const bind = dual<
8082
8047
  flatMap(self, (k) =>
8083
8048
  map(
8084
8049
  f(k),
8085
- (a): Effect.MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: a } as any)
8050
+ (a): MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: a } as any)
8086
8051
  ), options))
8087
8052
 
8088
8053
  /* @internal */
@@ -8092,7 +8057,7 @@ export const bindTo = dual<
8092
8057
  E,
8093
8058
  R
8094
8059
  >,
8095
- <R, E, A, N extends string>(
8060
+ <A, E, R, N extends string>(
8096
8061
  self: Stream.Stream<A, E, R>,
8097
8062
  tag: N
8098
8063
  ) => Stream.Stream<
@@ -8102,7 +8067,7 @@ export const bindTo = dual<
8102
8067
  >
8103
8068
  >(
8104
8069
  2,
8105
- <R, E, A, N extends string>(self: Stream.Stream<A, E, R>, tag: N): Stream.Stream<Record<N, A>, E, R> =>
8070
+ <A, E, R, N extends string>(self: Stream.Stream<A, E, R>, tag: N): Stream.Stream<Record<N, A>, E, R> =>
8106
8071
  map(self, (a) => ({ [tag]: a } as Record<N, A>))
8107
8072
  )
8108
8073
 
@@ -8111,24 +8076,24 @@ export const let_ = dual<
8111
8076
  <N extends string, K, A>(
8112
8077
  tag: Exclude<N, keyof K>,
8113
8078
  f: (_: K) => A
8114
- ) => <R, E>(self: Stream.Stream<K, E, R>) => Stream.Stream<
8115
- Effect.MergeRecord<K, { [k in N]: A }>,
8079
+ ) => <E, R>(self: Stream.Stream<K, E, R>) => Stream.Stream<
8080
+ MergeRecord<K, { [k in N]: A }>,
8116
8081
  E,
8117
8082
  R
8118
8083
  >,
8119
- <R, E, K, N extends string, A>(
8084
+ <K, E, R, N extends string, A>(
8120
8085
  self: Stream.Stream<K, E, R>,
8121
8086
  tag: Exclude<N, keyof K>,
8122
8087
  f: (_: K) => A
8123
8088
  ) => Stream.Stream<
8124
- Effect.MergeRecord<K, { [k in N]: A }>,
8089
+ MergeRecord<K, { [k in N]: A }>,
8125
8090
  E,
8126
8091
  R
8127
8092
  >
8128
- >(3, <R, E, K, N extends string, A>(self: Stream.Stream<K, E, R>, tag: Exclude<N, keyof K>, f: (_: K) => A) =>
8093
+ >(3, <K, E, R, N extends string, A>(self: Stream.Stream<K, E, R>, tag: Exclude<N, keyof K>, f: (_: K) => A) =>
8129
8094
  map(
8130
8095
  self,
8131
- (k): Effect.MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: f(k) } as any)
8096
+ (k): MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: f(k) } as any)
8132
8097
  ))
8133
8098
 
8134
8099
  // Circular with Channel
@@ -8146,8 +8111,8 @@ export const channelToStream = <OutElem, OutErr, OutDone, Env>(
8146
8111
 
8147
8112
  /** @internal */
8148
8113
  export const decodeText = dual<
8149
- (encoding?: string) => <R, E>(self: Stream.Stream<Uint8Array, E, R>) => Stream.Stream<string, E, R>,
8150
- <R, E>(self: Stream.Stream<Uint8Array, E, R>, encoding?: string) => Stream.Stream<string, E, R>
8114
+ (encoding?: string) => <E, R>(self: Stream.Stream<Uint8Array, E, R>) => Stream.Stream<string, E, R>,
8115
+ <E, R>(self: Stream.Stream<Uint8Array, E, R>, encoding?: string) => Stream.Stream<string, E, R>
8151
8116
  >((args) => isStream(args[0]), (self, encoding = "utf-8") =>
8152
8117
  suspend(() => {
8153
8118
  const decoder = new TextDecoder(encoding)
@@ -8155,7 +8120,7 @@ export const decodeText = dual<
8155
8120
  }))
8156
8121
 
8157
8122
  /** @internal */
8158
- export const encodeText = <R, E>(self: Stream.Stream<string, E, R>): Stream.Stream<Uint8Array, E, R> =>
8123
+ export const encodeText = <E, R>(self: Stream.Stream<string, E, R>): Stream.Stream<Uint8Array, E, R> =>
8159
8124
  suspend(() => {
8160
8125
  const encoder = new TextEncoder()
8161
8126
  return map(self, (s) => encoder.encode(s))