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
@@ -308,8 +308,7 @@ export const collectAllWhileWith: {
308
308
  }
309
309
  )
310
310
 
311
- /** @internal */
312
- const collectAllWhileWithLoop = <R, E, In, L extends In, Z, S>(
311
+ const collectAllWhileWithLoop = <Z, In, L extends In, E, R, S>(
313
312
  self: Sink.Sink<Z, In, L, E, R>,
314
313
  leftoversRef: Ref.Ref<Chunk.Chunk<In>>,
315
314
  upstreamDoneRef: Ref.Ref<boolean>,
@@ -474,12 +473,12 @@ export const dimap = dual<
474
473
 
475
474
  /** @internal */
476
475
  export const dimapEffect = dual<
477
- <In0, R2, E2, In, A, R3, E3, A2>(
476
+ <In0, In, E2, R2, A, A2, E3, R3>(
478
477
  options: {
479
478
  readonly onInput: (input: In0) => Effect.Effect<In, E2, R2>
480
479
  readonly onDone: (a: A) => Effect.Effect<A2, E3, R3>
481
480
  }
482
- ) => <R, E, L>(self: Sink.Sink<A, In, L, E, R>) => Sink.Sink<A2, In0, L, E2 | E3 | E, R2 | R3 | R>,
481
+ ) => <L, E, R>(self: Sink.Sink<A, In, L, E, R>) => Sink.Sink<A2, In0, L, E2 | E3 | E, R2 | R3 | R>,
483
482
  <A, In, L, E, R, In0, E2, R2, A2, E3, R3>(
484
483
  self: Sink.Sink<A, In, L, E, R>,
485
484
  options: {
@@ -527,7 +526,7 @@ export const dimapChunksEffect = dual<
527
526
  readonly onInput: (chunk: Chunk.Chunk<In0>) => Effect.Effect<Chunk.Chunk<In>, E2, R2>
528
527
  readonly onDone: (a: A) => Effect.Effect<A2, E3, R3>
529
528
  }
530
- ) => <R, E, L>(self: Sink.Sink<A, In, L, E, R>) => Sink.Sink<A2, In0, L, E2 | E3 | E, R2 | R3 | R>,
529
+ ) => <L, E, R>(self: Sink.Sink<A, In, L, E, R>) => Sink.Sink<A2, In0, L, E2 | E3 | E, R2 | R3 | R>,
531
530
  <A, In, L, E, R, In0, E2, R2, A2, E3, R3>(
532
531
  self: Sink.Sink<A, In, L, E, R>,
533
532
  options: {
@@ -655,12 +654,12 @@ const dropWhileEffectReader = <In, R, E>(
655
654
 
656
655
  /** @internal */
657
656
  export const ensuring = dual<
658
- <_, R2>(
659
- finalizer: Effect.Effect<_, never, R2>
657
+ <X, R2>(
658
+ finalizer: Effect.Effect<X, never, R2>
660
659
  ) => <A, In, L, E, R>(self: Sink.Sink<A, In, L, E, R>) => Sink.Sink<A, In, L, E, R2 | R>,
661
- <A, In, L, E, R, _, R2>(
660
+ <A, In, L, E, R, X, R2>(
662
661
  self: Sink.Sink<A, In, L, E, R>,
663
- finalizer: Effect.Effect<_, never, R2>
662
+ finalizer: Effect.Effect<X, never, R2>
664
663
  ) => Sink.Sink<A, In, L, E, R2 | R>
665
664
  >(
666
665
  2,
@@ -669,12 +668,12 @@ export const ensuring = dual<
669
668
 
670
669
  /** @internal */
671
670
  export const ensuringWith = dual<
672
- <A, E, _, R2>(
673
- finalizer: (exit: Exit.Exit<A, E>) => Effect.Effect<_, never, R2>
671
+ <A, E, X, R2>(
672
+ finalizer: (exit: Exit.Exit<A, E>) => Effect.Effect<X, never, R2>
674
673
  ) => <In, L, R>(self: Sink.Sink<A, In, L, E, R>) => Sink.Sink<A, In, L, E, R2 | R>,
675
- <A, In, L, E, R, _, R2>(
674
+ <A, In, L, E, R, X, R2>(
676
675
  self: Sink.Sink<A, In, L, E, R>,
677
- finalizer: (exit: Exit.Exit<A, E>) => Effect.Effect<_, never, R2>
676
+ finalizer: (exit: Exit.Exit<A, E>) => Effect.Effect<X, never, R2>
678
677
  ) => Sink.Sink<A, In, L, E, R2 | R>
679
678
  >(
680
679
  2,
@@ -1245,8 +1244,7 @@ export const foldWeightedEffect = <S, In, E, R, E2, R2>(
1245
1244
  decompose: (input) => Effect.succeed(Chunk.of(input))
1246
1245
  })
1247
1246
 
1248
- /** @internal */
1249
- const foldWeightedDecomposeEffectLoop = <S, In, R, E, R2, E2, R3, E3>(
1247
+ const foldWeightedDecomposeEffectLoop = <S, In, E, R, E2, R2, E3, R3>(
1250
1248
  s: S,
1251
1249
  max: number,
1252
1250
  costFn: (s: S, input: In) => Effect.Effect<number, E, R>,
@@ -1274,7 +1272,7 @@ const foldWeightedDecomposeEffectLoop = <S, In, R, E, R2, E2, R3, E3>(
1274
1272
  })
1275
1273
 
1276
1274
  /** @internal */
1277
- const foldWeightedDecomposeEffectFold = <S, In, R, E, R2, E2, R3, E3>(
1275
+ const foldWeightedDecomposeEffectFold = <S, In, E, R, E2, R2, E3, R3>(
1278
1276
  s: S,
1279
1277
  max: number,
1280
1278
  costFn: (s: S, input: In) => Effect.Effect<number, E, R>,
@@ -1343,7 +1341,7 @@ export const flatMap = dual<
1343
1341
  )
1344
1342
 
1345
1343
  /** @internal */
1346
- export const forEach = <In, _, E, R>(f: (input: In) => Effect.Effect<_, E, R>): Sink.Sink<void, In, never, E, R> => {
1344
+ export const forEach = <In, X, E, R>(f: (input: In) => Effect.Effect<X, E, R>): Sink.Sink<void, In, never, E, R> => {
1347
1345
  const process: Channel.Channel<never, Chunk.Chunk<In>, E, E, void, unknown, R> = core.readWithCause({
1348
1346
  onInput: (input: Chunk.Chunk<In>) =>
1349
1347
  pipe(core.fromEffect(Effect.forEach(input, (v) => f(v), { discard: true })), core.flatMap(() => process)),
@@ -1354,8 +1352,8 @@ export const forEach = <In, _, E, R>(f: (input: In) => Effect.Effect<_, E, R>):
1354
1352
  }
1355
1353
 
1356
1354
  /** @internal */
1357
- export const forEachChunk = <In, _, E, R>(
1358
- f: (input: Chunk.Chunk<In>) => Effect.Effect<_, E, R>
1355
+ export const forEachChunk = <In, X, E, R>(
1356
+ f: (input: Chunk.Chunk<In>) => Effect.Effect<X, E, R>
1359
1357
  ): Sink.Sink<void, In, never, E, R> => {
1360
1358
  const process: Channel.Channel<never, Chunk.Chunk<In>, E, E, void, unknown, R> = core.readWithCause({
1361
1359
  onInput: (input: Chunk.Chunk<In>) => pipe(core.fromEffect(f(input)), core.flatMap(() => process)),
@@ -1433,19 +1431,19 @@ export const fromPubSub = <In>(
1433
1431
  ): Sink.Sink<void, In> => fromQueue(pubsub, options)
1434
1432
 
1435
1433
  /** @internal */
1436
- export const fromPush = <In, E, A, L, R>(
1434
+ export const fromPush = <In, L0, R0, L, R>(
1437
1435
  push: Effect.Effect<
1438
- (_: Option.Option<Chunk.Chunk<In>>) => Effect.Effect<void, readonly [Either.Either<E, A>, Chunk.Chunk<L>], R>,
1436
+ (_: Option.Option<Chunk.Chunk<In>>) => Effect.Effect<void, readonly [Either.Either<R0, L0>, Chunk.Chunk<L>], R>,
1439
1437
  never,
1440
1438
  R
1441
1439
  >
1442
- ): Sink.Sink<A, In, L, E, Exclude<R, Scope.Scope>> =>
1440
+ ): Sink.Sink<R0, In, L, L0, Exclude<R, Scope.Scope>> =>
1443
1441
  new SinkImpl(channel.unwrapScoped(pipe(push, Effect.map(fromPushPull))))
1444
1442
 
1445
- const fromPushPull = <R, E, In, L, Z>(
1443
+ const fromPushPull = <In, Z, E, L, R>(
1446
1444
  push: (
1447
1445
  option: Option.Option<Chunk.Chunk<In>>
1448
- ) => Effect.Effect<void, readonly [Either.Either<E, Z>, Chunk.Chunk<L>], R>
1446
+ ) => Effect.Effect<void, readonly [Either.Either<Z, E>, Chunk.Chunk<L>], R>
1449
1447
  ): Channel.Channel<Chunk.Chunk<L>, Chunk.Chunk<In>, E, never, Z, unknown, R> =>
1450
1448
  core.readWith({
1451
1449
  onInput: (input: Chunk.Chunk<In>) =>
@@ -1590,7 +1588,7 @@ export const provideContext = dual<
1590
1588
  export const race = dual<
1591
1589
  <R1, E1, In1, L1, A1>(
1592
1590
  that: Sink.Sink<A1, In1, L1, E1, R1>
1593
- ) => <R, E, In, L, A>(self: Sink.Sink<A, In, L, E, R>) => Sink.Sink<A1 | A, In & In1, L1 | L, E1 | E, R1 | R>,
1591
+ ) => <A, In, L, E, R>(self: Sink.Sink<A, In, L, E, R>) => Sink.Sink<A1 | A, In & In1, L1 | L, E1 | E, R1 | R>,
1594
1592
  <A, In, L, E, R, A1, In1, L1, E1, R1>(
1595
1593
  self: Sink.Sink<A, In, L, E, R>,
1596
1594
  that: Sink.Sink<A1, In1, L1, E1, R1>
@@ -1609,14 +1607,14 @@ export const raceBoth = dual<
1609
1607
  }
1610
1608
  ) => <A, In, L, E, R>(
1611
1609
  self: Sink.Sink<A, In, L, E, R>
1612
- ) => Sink.Sink<Either.Either<A, A1>, In & In1, L1 | L, E1 | E, R1 | R>,
1610
+ ) => Sink.Sink<Either.Either<A1, A>, In & In1, L1 | L, E1 | E, R1 | R>,
1613
1611
  <A, In, L, E, R, A1, In1, L1, E1, R1>(
1614
1612
  self: Sink.Sink<A, In, L, E, R>,
1615
1613
  that: Sink.Sink<A1, In1, L1, E1, R1>,
1616
1614
  options?: {
1617
1615
  readonly capacity?: number | undefined
1618
1616
  }
1619
- ) => Sink.Sink<Either.Either<A, A1>, In & In1, L1 | L, E1 | E, R1 | R>
1617
+ ) => Sink.Sink<Either.Either<A1, A>, In & In1, L1 | L, E1 | E, R1 | R>
1620
1618
  >(
1621
1619
  (args) => isSink(args[1]),
1622
1620
  (self, that, options) =>
@@ -1660,7 +1658,7 @@ export const raceWith = dual<
1660
1658
  ): Sink.Sink<A3 | A4, In & In2, L2 | L, E2 | E, R2 | R> => {
1661
1659
  const scoped = Effect.gen(function*($) {
1662
1660
  const pubsub = yield* $(
1663
- PubSub.bounded<Either.Either<Exit.Exit<unknown>, Chunk.Chunk<In & In2>>>(options?.capacity ?? 16)
1661
+ PubSub.bounded<Either.Either<Chunk.Chunk<In & In2>, Exit.Exit<unknown>>>(options?.capacity ?? 16)
1664
1662
  )
1665
1663
  const channel1 = yield* $(channel.fromPubSubScoped(pubsub))
1666
1664
  const channel2 = yield* $(channel.fromPubSubScoped(pubsub))
@@ -1907,7 +1905,7 @@ export const take = <In>(n: number): Sink.Sink<Chunk.Chunk<In>, In, In> =>
1907
1905
  )
1908
1906
 
1909
1907
  /** @internal */
1910
- export const toChannel = <R, E, In, L, A>(
1908
+ export const toChannel = <A, In, L, E, R>(
1911
1909
  self: Sink.Sink<A, In, L, E, R>
1912
1910
  ): Channel.Channel<Chunk.Chunk<L>, Chunk.Chunk<In>, E, never, A, unknown, R> =>
1913
1911
  Effect.isEffect(self) ?
@@ -414,7 +414,7 @@ export const contextWith = <R0, R>(f: (environment: Context.Context<R0>) => R):
414
414
  map(context<R0>(), f)
415
415
 
416
416
  /** @internal */
417
- export const contextWithSTM = <R0, R, E, A>(
417
+ export const contextWithSTM = <R0, A, E, R>(
418
418
  f: (environment: Context.Context<R0>) => STM.STM<A, E, R>
419
419
  ): STM.STM<A, E, R0 | R> => flatMap(context<R0>(), f)
420
420
 
@@ -579,12 +579,12 @@ export class STMDriver<in out R, out E, out A> {
579
579
 
580
580
  /** @internal */
581
581
  export const catchAll = dual<
582
- <E, R1, E1, B>(
582
+ <E, B, E1, R1>(
583
583
  f: (e: E) => STM.STM<B, E1, R1>
584
- ) => <R, A>(
584
+ ) => <A, R>(
585
585
  self: STM.STM<A, E, R>
586
586
  ) => STM.STM<B | A, E1, R1 | R>,
587
- <R, A, E, R1, E1, B>(
587
+ <A, E, R, B, E1, R1>(
588
588
  self: STM.STM<A, E, R>,
589
589
  f: (e: E) => STM.STM<B, E1, R1>
590
590
  ) => STM.STM<B | A, E1, R1 | R>
@@ -634,7 +634,7 @@ export const effect = <R, A>(
634
634
  /** @internal */
635
635
  export const ensuring = dual<
636
636
  <R1, B>(finalizer: STM.STM<B, never, R1>) => <A, E, R>(self: STM.STM<A, E, R>) => STM.STM<A, E, R1 | R>,
637
- <R, E, A, R1, B>(self: STM.STM<A, E, R>, finalizer: STM.STM<B, never, R1>) => STM.STM<A, E, R1 | R>
637
+ <A, E, R, R1, B>(self: STM.STM<A, E, R>, finalizer: STM.STM<B, never, R1>) => STM.STM<A, E, R1 | R>
638
638
  >(2, (self, finalizer) =>
639
639
  matchSTM(self, {
640
640
  onFailure: (e) => zipRight(finalizer, fail(e)),
@@ -653,8 +653,8 @@ export const failSync = <E>(evaluate: LazyArg<E>): STM.STM<never, E> => {
653
653
 
654
654
  /** @internal */
655
655
  export const flatMap = dual<
656
- <A, R1, E1, A2>(f: (a: A) => STM.STM<A2, E1, R1>) => <R, E>(self: STM.STM<A, E, R>) => STM.STM<A2, E1 | E, R1 | R>,
657
- <R, E, A, R1, E1, A2>(self: STM.STM<A, E, R>, f: (a: A) => STM.STM<A2, E1, R1>) => STM.STM<A2, E1 | E, R1 | R>
656
+ <A, A2, E1, R1>(f: (a: A) => STM.STM<A2, E1, R1>) => <E, R>(self: STM.STM<A, E, R>) => STM.STM<A2, E1 | E, R1 | R>,
657
+ <A, E, R, A2, E1, R1>(self: STM.STM<A, E, R>, f: (a: A) => STM.STM<A2, E1, R1>) => STM.STM<A2, E1 | E, R1 | R>
658
658
  >(2, (self, f) => {
659
659
  const stm = new STMPrimitive(OpCodes.OP_ON_SUCCESS)
660
660
  stm.i1 = self
@@ -664,20 +664,20 @@ export const flatMap = dual<
664
664
 
665
665
  /** @internal */
666
666
  export const matchSTM = dual<
667
- <E, R1, E1, A1, A, R2, E2, A2>(
667
+ <E, A1, E1, R1, A, A2, E2, R2>(
668
668
  options: {
669
669
  readonly onFailure: (e: E) => STM.STM<A1, E1, R1>
670
670
  readonly onSuccess: (a: A) => STM.STM<A2, E2, R2>
671
671
  }
672
672
  ) => <R>(self: STM.STM<A, E, R>) => STM.STM<A1 | A2, E1 | E2, R1 | R2 | R>,
673
- <R, E, R1, E1, A1, A, R2, E2, A2>(
673
+ <A, E, R, A1, E1, R1, A2, E2, R2>(
674
674
  self: STM.STM<A, E, R>,
675
675
  options: {
676
676
  readonly onFailure: (e: E) => STM.STM<A1, E1, R1>
677
677
  readonly onSuccess: (a: A) => STM.STM<A2, E2, R2>
678
678
  }
679
679
  ) => STM.STM<A1 | A2, E1 | E2, R1 | R2 | R>
680
- >(2, <R, E, R1, E1, A1, A, R2, E2, A2>(
680
+ >(2, <A, E, R, A1, E1, R1, A2, E2, R2>(
681
681
  self: STM.STM<A, E, R>,
682
682
  { onFailure, onSuccess }: {
683
683
  readonly onFailure: (e: E) => STM.STM<A1, E1, R1>
@@ -725,18 +725,18 @@ export const interruptAs = (fiberId: FiberId.FiberId): STM.STM<never> => {
725
725
 
726
726
  /** @internal */
727
727
  export const map = dual<
728
- <A, B>(f: (a: A) => B) => <R, E>(self: STM.STM<A, E, R>) => STM.STM<B, E, R>,
729
- <R, E, A, B>(self: STM.STM<A, E, R>, f: (a: A) => B) => STM.STM<B, E, R>
728
+ <A, B>(f: (a: A) => B) => <E, R>(self: STM.STM<A, E, R>) => STM.STM<B, E, R>,
729
+ <A, E, R, B>(self: STM.STM<A, E, R>, f: (a: A) => B) => STM.STM<B, E, R>
730
730
  >(2, (self, f) => pipe(self, flatMap((a) => sync(() => f(a)))))
731
731
 
732
732
  /** @internal */
733
733
  export const orTry = dual<
734
- <R1, E1, A1>(
734
+ <A1, E1, R1>(
735
735
  that: LazyArg<STM.STM<A1, E1, R1>>
736
736
  ) => <A, E, R>(
737
737
  self: STM.STM<A, E, R>
738
738
  ) => STM.STM<A1 | A, E1 | E, R1 | R>,
739
- <R, E, A, R1, E1, A1>(
739
+ <A, E, R, A1, E1, R1>(
740
740
  self: STM.STM<A, E, R>,
741
741
  that: LazyArg<STM.STM<A1, E1, R1>>
742
742
  ) => STM.STM<A1 | A, E1 | E, R1 | R>
@@ -766,12 +766,12 @@ export const sync = <A>(evaluate: () => A): STM.STM<A> => {
766
766
 
767
767
  /** @internal */
768
768
  export const zip = dual<
769
- <R1, E1, A1>(
769
+ <A1, E1, R1>(
770
770
  that: STM.STM<A1, E1, R1>
771
771
  ) => <A, E, R>(
772
772
  self: STM.STM<A, E, R>
773
773
  ) => STM.STM<[A, A1], E1 | E, R1 | R>,
774
- <R, E, A, R1, E1, A1>(
774
+ <A, E, R, A1, E1, R1>(
775
775
  self: STM.STM<A, E, R>,
776
776
  that: STM.STM<A1, E1, R1>
777
777
  ) => STM.STM<[A, A1], E1 | E, R1 | R>
@@ -779,25 +779,25 @@ export const zip = dual<
779
779
 
780
780
  /** @internal */
781
781
  export const zipLeft = dual<
782
- <R1, E1, A1>(that: STM.STM<A1, E1, R1>) => <A, E, R>(self: STM.STM<A, E, R>) => STM.STM<A, E1 | E, R1 | R>,
783
- <R, E, A, R1, E1, A1>(self: STM.STM<A, E, R>, that: STM.STM<A1, E1, R1>) => STM.STM<A, E1 | E, R1 | R>
782
+ <A1, E1, R1>(that: STM.STM<A1, E1, R1>) => <A, E, R>(self: STM.STM<A, E, R>) => STM.STM<A, E1 | E, R1 | R>,
783
+ <A, E, R, A1, E1, R1>(self: STM.STM<A, E, R>, that: STM.STM<A1, E1, R1>) => STM.STM<A, E1 | E, R1 | R>
784
784
  >(2, (self, that) => pipe(self, flatMap((a) => pipe(that, map(() => a)))))
785
785
 
786
786
  /** @internal */
787
787
  export const zipRight = dual<
788
- <R1, E1, A1>(that: STM.STM<A1, E1, R1>) => <A, E, R>(self: STM.STM<A, E, R>) => STM.STM<A1, E1 | E, R1 | R>,
789
- <R, E, A, R1, E1, A1>(self: STM.STM<A, E, R>, that: STM.STM<A1, E1, R1>) => STM.STM<A1, E1 | E, R1 | R>
788
+ <A1, E1, R1>(that: STM.STM<A1, E1, R1>) => <A, E, R>(self: STM.STM<A, E, R>) => STM.STM<A1, E1 | E, R1 | R>,
789
+ <A, E, R, A1, E1, R1>(self: STM.STM<A, E, R>, that: STM.STM<A1, E1, R1>) => STM.STM<A1, E1 | E, R1 | R>
790
790
  >(2, (self, that) => pipe(self, flatMap(() => that)))
791
791
 
792
792
  /** @internal */
793
793
  export const zipWith = dual<
794
- <R1, E1, A1, A, A2>(
794
+ <A1, E1, R1, A, A2>(
795
795
  that: STM.STM<A1, E1, R1>,
796
796
  f: (a: A, b: A1) => A2
797
- ) => <R, E>(
797
+ ) => <E, R>(
798
798
  self: STM.STM<A, E, R>
799
799
  ) => STM.STM<A2, E1 | E, R1 | R>,
800
- <R, E, R1, E1, A1, A, A2>(
800
+ <A, E, R, A1, E1, R1, A2>(
801
801
  self: STM.STM<A, E, R>,
802
802
  that: STM.STM<A1, E1, R1>,
803
803
  f: (a: A, b: A1) => A2