effect 2.2.5 → 2.3.1

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 (693) hide show
  1. package/RateLimiter/package.json +6 -0
  2. package/dist/cjs/Cause.js +14 -1
  3. package/dist/cjs/Cause.js.map +1 -1
  4. package/dist/cjs/Channel.js.map +1 -1
  5. package/dist/cjs/Clock.js.map +1 -1
  6. package/dist/cjs/Console.js.map +1 -1
  7. package/dist/cjs/Context.js +23 -25
  8. package/dist/cjs/Context.js.map +1 -1
  9. package/dist/cjs/Data.js +3 -3
  10. package/dist/cjs/Data.js.map +1 -1
  11. package/dist/cjs/Deferred.js +1 -1
  12. package/dist/cjs/Deferred.js.map +1 -1
  13. package/dist/cjs/Effect.js +9 -9
  14. package/dist/cjs/Effect.js.map +1 -1
  15. package/dist/cjs/Effectable.js.map +1 -1
  16. package/dist/cjs/Either.js.map +1 -1
  17. package/dist/cjs/Exit.js +2 -2
  18. package/dist/cjs/Exit.js.map +1 -1
  19. package/dist/cjs/Fiber.js.map +1 -1
  20. package/dist/cjs/FiberMap.js +3 -3
  21. package/dist/cjs/FiberRef.js.map +1 -1
  22. package/dist/cjs/FiberRefs.js.map +1 -1
  23. package/dist/cjs/FiberSet.js +3 -3
  24. package/dist/cjs/FiberSet.js.map +1 -1
  25. package/dist/cjs/GroupBy.js.map +1 -1
  26. package/dist/cjs/Layer.js.map +1 -1
  27. package/dist/cjs/LogLevel.js.map +1 -1
  28. package/dist/cjs/Logger.js.map +1 -1
  29. package/dist/cjs/Metric.js.map +1 -1
  30. package/dist/cjs/Number.js +20 -1
  31. package/dist/cjs/Number.js.map +1 -1
  32. package/dist/cjs/Option.js.map +1 -1
  33. package/dist/cjs/Pool.js.map +1 -1
  34. package/dist/cjs/PubSub.js.map +1 -1
  35. package/dist/cjs/Queue.js.map +1 -1
  36. package/dist/cjs/Random.js.map +1 -1
  37. package/dist/cjs/RateLimiter.js +38 -0
  38. package/dist/cjs/RateLimiter.js.map +1 -0
  39. package/dist/cjs/ReadonlyRecord.js +45 -9
  40. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  41. package/dist/cjs/Ref.js.map +1 -1
  42. package/dist/cjs/Request.js.map +1 -1
  43. package/dist/cjs/RequestResolver.js.map +1 -1
  44. package/dist/cjs/Resource.js.map +1 -1
  45. package/dist/cjs/Runtime.js +1 -4
  46. package/dist/cjs/Runtime.js.map +1 -1
  47. package/dist/cjs/RuntimeFlags.js.map +1 -1
  48. package/dist/cjs/STM.js.map +1 -1
  49. package/dist/cjs/Schedule.js.map +1 -1
  50. package/dist/cjs/Scope.js.map +1 -1
  51. package/dist/cjs/ScopedRef.js.map +1 -1
  52. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
  53. package/dist/cjs/Sink.js.map +1 -1
  54. package/dist/cjs/Stream.js.map +1 -1
  55. package/dist/cjs/SubscriptionRef.js.map +1 -1
  56. package/dist/cjs/Supervisor.js.map +1 -1
  57. package/dist/cjs/SynchronizedRef.js.map +1 -1
  58. package/dist/cjs/TArray.js.map +1 -1
  59. package/dist/cjs/TDeferred.js.map +1 -1
  60. package/dist/cjs/TMap.js.map +1 -1
  61. package/dist/cjs/TPriorityQueue.js.map +1 -1
  62. package/dist/cjs/TPubSub.js.map +1 -1
  63. package/dist/cjs/TQueue.js.map +1 -1
  64. package/dist/cjs/TRandom.js.map +1 -1
  65. package/dist/cjs/TReentrantLock.js.map +1 -1
  66. package/dist/cjs/TRef.js.map +1 -1
  67. package/dist/cjs/TSemaphore.js.map +1 -1
  68. package/dist/cjs/TSet.js.map +1 -1
  69. package/dist/cjs/Take.js +6 -6
  70. package/dist/cjs/Take.js.map +1 -1
  71. package/dist/cjs/TestAnnotation.js +10 -13
  72. package/dist/cjs/TestAnnotation.js.map +1 -1
  73. package/dist/cjs/TestAnnotations.js +1 -1
  74. package/dist/cjs/TestAnnotations.js.map +1 -1
  75. package/dist/cjs/TestClock.js +1 -1
  76. package/dist/cjs/TestClock.js.map +1 -1
  77. package/dist/cjs/TestConfig.js +1 -1
  78. package/dist/cjs/TestConfig.js.map +1 -1
  79. package/dist/cjs/TestContext.js.map +1 -1
  80. package/dist/cjs/TestLive.js +1 -1
  81. package/dist/cjs/TestLive.js.map +1 -1
  82. package/dist/cjs/TestServices.js.map +1 -1
  83. package/dist/cjs/TestSized.js +1 -1
  84. package/dist/cjs/TestSized.js.map +1 -1
  85. package/dist/cjs/Utils.js +0 -1
  86. package/dist/cjs/Utils.js.map +1 -1
  87. package/dist/cjs/index.js +4 -2
  88. package/dist/cjs/index.js.map +1 -1
  89. package/dist/cjs/internal/cache.js.map +1 -1
  90. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  91. package/dist/cjs/internal/channel/mergeDecision.js +2 -6
  92. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
  93. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  94. package/dist/cjs/internal/channel.js +1 -1
  95. package/dist/cjs/internal/channel.js.map +1 -1
  96. package/dist/cjs/internal/clock.js +1 -1
  97. package/dist/cjs/internal/clock.js.map +1 -1
  98. package/dist/cjs/internal/configProvider.js +2 -4
  99. package/dist/cjs/internal/configProvider.js.map +1 -1
  100. package/dist/cjs/internal/console.js.map +1 -1
  101. package/dist/cjs/internal/context.js +31 -22
  102. package/dist/cjs/internal/context.js.map +1 -1
  103. package/dist/cjs/internal/core-effect.js +13 -27
  104. package/dist/cjs/internal/core-effect.js.map +1 -1
  105. package/dist/cjs/internal/core-stream.js.map +1 -1
  106. package/dist/cjs/internal/core.js +61 -130
  107. package/dist/cjs/internal/core.js.map +1 -1
  108. package/dist/cjs/internal/data.js.map +1 -1
  109. package/dist/cjs/internal/defaultServices/console.js +1 -1
  110. package/dist/cjs/internal/defaultServices/console.js.map +1 -1
  111. package/dist/cjs/internal/defaultServices.js.map +1 -1
  112. package/dist/cjs/internal/deferred.js.map +1 -1
  113. package/dist/cjs/internal/differ/contextPatch.js +9 -9
  114. package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
  115. package/dist/cjs/internal/effect/circular.js +7 -10
  116. package/dist/cjs/internal/effect/circular.js.map +1 -1
  117. package/dist/cjs/internal/effectable.js +4 -4
  118. package/dist/cjs/internal/effectable.js.map +1 -1
  119. package/dist/cjs/internal/fiber.js +2 -6
  120. package/dist/cjs/internal/fiber.js.map +1 -1
  121. package/dist/cjs/internal/fiberRuntime.js +10 -19
  122. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  123. package/dist/cjs/internal/groupBy.js.map +1 -1
  124. package/dist/cjs/internal/keyedPool.js.map +1 -1
  125. package/dist/cjs/internal/layer/circular.js.map +1 -1
  126. package/dist/cjs/internal/layer.js +3 -3
  127. package/dist/cjs/internal/layer.js.map +1 -1
  128. package/dist/cjs/internal/logSpan.js +3 -5
  129. package/dist/cjs/internal/logSpan.js.map +1 -1
  130. package/dist/cjs/internal/metric.js.map +1 -1
  131. package/dist/cjs/internal/pool.js.map +1 -1
  132. package/dist/cjs/internal/pubsub.js +2 -6
  133. package/dist/cjs/internal/pubsub.js.map +1 -1
  134. package/dist/cjs/internal/query.js.map +1 -1
  135. package/dist/cjs/internal/queue.js.map +1 -1
  136. package/dist/cjs/internal/random.js +1 -1
  137. package/dist/cjs/internal/random.js.map +1 -1
  138. package/dist/cjs/internal/rateLimiter.js +44 -0
  139. package/dist/cjs/internal/rateLimiter.js.map +1 -0
  140. package/dist/cjs/internal/ref.js.map +1 -1
  141. package/dist/cjs/internal/reloadable.js +1 -9
  142. package/dist/cjs/internal/reloadable.js.map +1 -1
  143. package/dist/cjs/internal/runtime.js +0 -1
  144. package/dist/cjs/internal/runtime.js.map +1 -1
  145. package/dist/cjs/internal/schedule.js.map +1 -1
  146. package/dist/cjs/internal/scopedCache.js.map +1 -1
  147. package/dist/cjs/internal/scopedRef.js.map +1 -1
  148. package/dist/cjs/internal/sink.js +7 -7
  149. package/dist/cjs/internal/sink.js.map +1 -1
  150. package/dist/cjs/internal/stm/core.js.map +1 -1
  151. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  152. package/dist/cjs/internal/stm/stm/tExit.js +2 -2
  153. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  154. package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
  155. package/dist/cjs/internal/stm/stm.js.map +1 -1
  156. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  157. package/dist/cjs/internal/stm/tDeferred.js +4 -2
  158. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  159. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  160. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  161. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  162. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  163. package/dist/cjs/internal/stm/tRandom.js +1 -1
  164. package/dist/cjs/internal/stm/tRandom.js.map +1 -1
  165. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
  166. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  167. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  168. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  169. package/dist/cjs/internal/stream/debounceState.js.map +1 -1
  170. package/dist/cjs/internal/stream/handoff.js.map +1 -1
  171. package/dist/cjs/internal/stream/handoffSignal.js.map +1 -1
  172. package/dist/cjs/internal/stream/pull.js.map +1 -1
  173. package/dist/cjs/internal/stream.js +0 -2
  174. package/dist/cjs/internal/stream.js.map +1 -1
  175. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  176. package/dist/cjs/internal/supervisor.js.map +1 -1
  177. package/dist/cjs/internal/take.js +2 -2
  178. package/dist/cjs/internal/take.js.map +1 -1
  179. package/dist/cjs/internal/testing/sleep.js.map +1 -1
  180. package/dist/cjs/internal/tracer.js +2 -2
  181. package/dist/cjs/internal/tracer.js.map +1 -1
  182. package/dist/cjs/internal/version.js +1 -1
  183. package/dist/dts/Cache.d.ts +20 -20
  184. package/dist/dts/Cache.d.ts.map +1 -1
  185. package/dist/dts/Cause.d.ts +33 -5
  186. package/dist/dts/Cause.d.ts.map +1 -1
  187. package/dist/dts/Channel.d.ts +197 -194
  188. package/dist/dts/Channel.d.ts.map +1 -1
  189. package/dist/dts/Clock.d.ts +7 -7
  190. package/dist/dts/Clock.d.ts.map +1 -1
  191. package/dist/dts/Config.d.ts +1 -1
  192. package/dist/dts/Config.d.ts.map +1 -1
  193. package/dist/dts/ConfigProvider.d.ts +6 -6
  194. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  195. package/dist/dts/Console.d.ts +43 -43
  196. package/dist/dts/Console.d.ts.map +1 -1
  197. package/dist/dts/Context.d.ts +44 -29
  198. package/dist/dts/Context.d.ts.map +1 -1
  199. package/dist/dts/Data.d.ts +38 -57
  200. package/dist/dts/Data.d.ts.map +1 -1
  201. package/dist/dts/Deferred.d.ts +36 -36
  202. package/dist/dts/Deferred.d.ts.map +1 -1
  203. package/dist/dts/Effect.d.ts +732 -729
  204. package/dist/dts/Effect.d.ts.map +1 -1
  205. package/dist/dts/Effectable.d.ts +8 -8
  206. package/dist/dts/Effectable.d.ts.map +1 -1
  207. package/dist/dts/Either.d.ts +2 -3
  208. package/dist/dts/Either.d.ts.map +1 -1
  209. package/dist/dts/Exit.d.ts +74 -74
  210. package/dist/dts/Exit.d.ts.map +1 -1
  211. package/dist/dts/Fiber.d.ts +75 -75
  212. package/dist/dts/Fiber.d.ts.map +1 -1
  213. package/dist/dts/FiberMap.d.ts +22 -22
  214. package/dist/dts/FiberMap.d.ts.map +1 -1
  215. package/dist/dts/FiberRef.d.ts +28 -28
  216. package/dist/dts/FiberRef.d.ts.map +1 -1
  217. package/dist/dts/FiberRefs.d.ts +1 -1
  218. package/dist/dts/FiberRefs.d.ts.map +1 -1
  219. package/dist/dts/FiberSet.d.ts +16 -16
  220. package/dist/dts/FiberSet.d.ts.map +1 -1
  221. package/dist/dts/GroupBy.d.ts +6 -6
  222. package/dist/dts/GroupBy.d.ts.map +1 -1
  223. package/dist/dts/KeyedPool.d.ts +22 -22
  224. package/dist/dts/KeyedPool.d.ts.map +1 -1
  225. package/dist/dts/Layer.d.ts +126 -126
  226. package/dist/dts/Layer.d.ts.map +1 -1
  227. package/dist/dts/LogLevel.d.ts +2 -2
  228. package/dist/dts/LogLevel.d.ts.map +1 -1
  229. package/dist/dts/Logger.d.ts +14 -14
  230. package/dist/dts/Logger.d.ts.map +1 -1
  231. package/dist/dts/MergeDecision.d.ts +7 -7
  232. package/dist/dts/MergeState.d.ts +13 -13
  233. package/dist/dts/MergeState.d.ts.map +1 -1
  234. package/dist/dts/Metric.d.ts +32 -32
  235. package/dist/dts/Metric.d.ts.map +1 -1
  236. package/dist/dts/MetricPolling.d.ts +6 -6
  237. package/dist/dts/MetricPolling.d.ts.map +1 -1
  238. package/dist/dts/Number.d.ts +15 -0
  239. package/dist/dts/Number.d.ts.map +1 -1
  240. package/dist/dts/Option.d.ts +2 -3
  241. package/dist/dts/Option.d.ts.map +1 -1
  242. package/dist/dts/Pool.d.ts +15 -16
  243. package/dist/dts/Pool.d.ts.map +1 -1
  244. package/dist/dts/PubSub.d.ts +18 -18
  245. package/dist/dts/PubSub.d.ts.map +1 -1
  246. package/dist/dts/Queue.d.ts +40 -40
  247. package/dist/dts/Queue.d.ts.map +1 -1
  248. package/dist/dts/Random.d.ts +13 -13
  249. package/dist/dts/Random.d.ts.map +1 -1
  250. package/dist/dts/RateLimiter.d.ts +31 -0
  251. package/dist/dts/RateLimiter.d.ts.map +1 -0
  252. package/dist/dts/ReadonlyArray.d.ts +3 -3
  253. package/dist/dts/ReadonlyRecord.d.ts +37 -8
  254. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  255. package/dist/dts/Ref.d.ts +25 -25
  256. package/dist/dts/Ref.d.ts.map +1 -1
  257. package/dist/dts/Reloadable.d.ts +9 -9
  258. package/dist/dts/Reloadable.d.ts.map +1 -1
  259. package/dist/dts/Request.d.ts +27 -28
  260. package/dist/dts/Request.d.ts.map +1 -1
  261. package/dist/dts/RequestBlock.d.ts +3 -3
  262. package/dist/dts/RequestBlock.d.ts.map +1 -1
  263. package/dist/dts/RequestResolver.d.ts +16 -16
  264. package/dist/dts/RequestResolver.d.ts.map +1 -1
  265. package/dist/dts/Resource.d.ts +7 -7
  266. package/dist/dts/Resource.d.ts.map +1 -1
  267. package/dist/dts/Runtime.d.ts +13 -16
  268. package/dist/dts/Runtime.d.ts.map +1 -1
  269. package/dist/dts/RuntimeFlags.d.ts +10 -10
  270. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  271. package/dist/dts/STM.d.ts +303 -303
  272. package/dist/dts/STM.d.ts.map +1 -1
  273. package/dist/dts/Schedule.d.ts +47 -47
  274. package/dist/dts/Schedule.d.ts.map +1 -1
  275. package/dist/dts/Scope.d.ts +10 -10
  276. package/dist/dts/Scope.d.ts.map +1 -1
  277. package/dist/dts/ScopedCache.d.ts +14 -14
  278. package/dist/dts/ScopedCache.d.ts.map +1 -1
  279. package/dist/dts/ScopedRef.d.ts +5 -5
  280. package/dist/dts/ScopedRef.d.ts.map +1 -1
  281. package/dist/dts/SingleProducerAsyncInput.d.ts +8 -8
  282. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  283. package/dist/dts/Sink.d.ts +214 -205
  284. package/dist/dts/Sink.d.ts.map +1 -1
  285. package/dist/dts/Stream.d.ts +595 -592
  286. package/dist/dts/Stream.d.ts.map +1 -1
  287. package/dist/dts/StreamEmit.d.ts +5 -5
  288. package/dist/dts/StreamEmit.d.ts.map +1 -1
  289. package/dist/dts/Streamable.d.ts +2 -2
  290. package/dist/dts/Streamable.d.ts.map +1 -1
  291. package/dist/dts/SubscriptionRef.d.ts +41 -41
  292. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  293. package/dist/dts/Supervisor.d.ts +17 -17
  294. package/dist/dts/Supervisor.d.ts.map +1 -1
  295. package/dist/dts/SynchronizedRef.d.ts +41 -41
  296. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  297. package/dist/dts/TArray.d.ts +72 -72
  298. package/dist/dts/TArray.d.ts.map +1 -1
  299. package/dist/dts/TDeferred.d.ts +12 -12
  300. package/dist/dts/TDeferred.d.ts.map +1 -1
  301. package/dist/dts/TMap.d.ts +67 -67
  302. package/dist/dts/TMap.d.ts.map +1 -1
  303. package/dist/dts/TPriorityQueue.d.ts +23 -23
  304. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  305. package/dist/dts/TPubSub.d.ts +15 -15
  306. package/dist/dts/TPubSub.d.ts.map +1 -1
  307. package/dist/dts/TQueue.d.ts +40 -40
  308. package/dist/dts/TQueue.d.ts.map +1 -1
  309. package/dist/dts/TRandom.d.ts +13 -13
  310. package/dist/dts/TRandom.d.ts.map +1 -1
  311. package/dist/dts/TReentrantLock.d.ts +21 -21
  312. package/dist/dts/TReentrantLock.d.ts.map +1 -1
  313. package/dist/dts/TRef.d.ts +25 -25
  314. package/dist/dts/TRef.d.ts.map +1 -1
  315. package/dist/dts/TSemaphore.d.ts +15 -15
  316. package/dist/dts/TSemaphore.d.ts.map +1 -1
  317. package/dist/dts/TSet.d.ts +49 -49
  318. package/dist/dts/TSet.d.ts.map +1 -1
  319. package/dist/dts/Take.d.ts +41 -41
  320. package/dist/dts/Take.d.ts.map +1 -1
  321. package/dist/dts/TestAnnotation.d.ts +1 -3
  322. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  323. package/dist/dts/TestAnnotations.d.ts +3 -3
  324. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  325. package/dist/dts/TestClock.d.ts +18 -18
  326. package/dist/dts/TestClock.d.ts.map +1 -1
  327. package/dist/dts/TestConfig.d.ts.map +1 -1
  328. package/dist/dts/TestContext.d.ts +2 -2
  329. package/dist/dts/TestContext.d.ts.map +1 -1
  330. package/dist/dts/TestLive.d.ts +1 -1
  331. package/dist/dts/TestLive.d.ts.map +1 -1
  332. package/dist/dts/TestServices.d.ts +31 -31
  333. package/dist/dts/TestServices.d.ts.map +1 -1
  334. package/dist/dts/TestSized.d.ts +2 -2
  335. package/dist/dts/TestSized.d.ts.map +1 -1
  336. package/dist/dts/Tracer.d.ts +1 -1
  337. package/dist/dts/Utils.d.ts.map +1 -1
  338. package/dist/dts/index.d.ts +12 -2
  339. package/dist/dts/index.d.ts.map +1 -1
  340. package/dist/dts/internal/channel/channelExecutor.d.ts +1 -1
  341. package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -1
  342. package/dist/dts/internal/core-stream.d.ts +1 -1
  343. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  344. package/dist/dts/internal/rateLimiter.d.ts +2 -0
  345. package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
  346. package/dist/dts/internal/stm/stm.d.ts +6 -6
  347. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  348. package/dist/dts/internal/version.d.ts +1 -1
  349. package/dist/esm/Cause.js +13 -0
  350. package/dist/esm/Cause.js.map +1 -1
  351. package/dist/esm/Channel.js.map +1 -1
  352. package/dist/esm/Clock.js.map +1 -1
  353. package/dist/esm/Console.js.map +1 -1
  354. package/dist/esm/Context.js +22 -24
  355. package/dist/esm/Context.js.map +1 -1
  356. package/dist/esm/Data.js +4 -5
  357. package/dist/esm/Data.js.map +1 -1
  358. package/dist/esm/Deferred.js +1 -1
  359. package/dist/esm/Deferred.js.map +1 -1
  360. package/dist/esm/Effect.js +9 -9
  361. package/dist/esm/Effect.js.map +1 -1
  362. package/dist/esm/Effectable.js.map +1 -1
  363. package/dist/esm/Either.js.map +1 -1
  364. package/dist/esm/Exit.js +2 -2
  365. package/dist/esm/Exit.js.map +1 -1
  366. package/dist/esm/Fiber.js.map +1 -1
  367. package/dist/esm/FiberMap.js +3 -3
  368. package/dist/esm/FiberRef.js.map +1 -1
  369. package/dist/esm/FiberRefs.js.map +1 -1
  370. package/dist/esm/FiberSet.js +3 -3
  371. package/dist/esm/FiberSet.js.map +1 -1
  372. package/dist/esm/GroupBy.js.map +1 -1
  373. package/dist/esm/Layer.js.map +1 -1
  374. package/dist/esm/LogLevel.js.map +1 -1
  375. package/dist/esm/Logger.js.map +1 -1
  376. package/dist/esm/Metric.js.map +1 -1
  377. package/dist/esm/Number.js +18 -0
  378. package/dist/esm/Number.js.map +1 -1
  379. package/dist/esm/Option.js.map +1 -1
  380. package/dist/esm/Pool.js.map +1 -1
  381. package/dist/esm/PubSub.js.map +1 -1
  382. package/dist/esm/Queue.js.map +1 -1
  383. package/dist/esm/Random.js.map +1 -1
  384. package/dist/esm/RateLimiter.js +7 -0
  385. package/dist/esm/RateLimiter.js.map +1 -0
  386. package/dist/esm/ReadonlyRecord.js +44 -8
  387. package/dist/esm/ReadonlyRecord.js.map +1 -1
  388. package/dist/esm/Ref.js.map +1 -1
  389. package/dist/esm/Request.js.map +1 -1
  390. package/dist/esm/RequestResolver.js.map +1 -1
  391. package/dist/esm/Resource.js.map +1 -1
  392. package/dist/esm/Runtime.js +1 -4
  393. package/dist/esm/Runtime.js.map +1 -1
  394. package/dist/esm/RuntimeFlags.js.map +1 -1
  395. package/dist/esm/STM.js.map +1 -1
  396. package/dist/esm/Schedule.js.map +1 -1
  397. package/dist/esm/Scope.js.map +1 -1
  398. package/dist/esm/ScopedRef.js.map +1 -1
  399. package/dist/esm/SingleProducerAsyncInput.js.map +1 -1
  400. package/dist/esm/Sink.js.map +1 -1
  401. package/dist/esm/Stream.js.map +1 -1
  402. package/dist/esm/SubscriptionRef.js.map +1 -1
  403. package/dist/esm/Supervisor.js.map +1 -1
  404. package/dist/esm/SynchronizedRef.js.map +1 -1
  405. package/dist/esm/TArray.js.map +1 -1
  406. package/dist/esm/TDeferred.js.map +1 -1
  407. package/dist/esm/TMap.js.map +1 -1
  408. package/dist/esm/TPriorityQueue.js.map +1 -1
  409. package/dist/esm/TPubSub.js.map +1 -1
  410. package/dist/esm/TQueue.js.map +1 -1
  411. package/dist/esm/TRandom.js.map +1 -1
  412. package/dist/esm/TReentrantLock.js.map +1 -1
  413. package/dist/esm/TRef.js.map +1 -1
  414. package/dist/esm/TSemaphore.js.map +1 -1
  415. package/dist/esm/TSet.js.map +1 -1
  416. package/dist/esm/Take.js +6 -6
  417. package/dist/esm/Take.js.map +1 -1
  418. package/dist/esm/TestAnnotation.js +10 -13
  419. package/dist/esm/TestAnnotation.js.map +1 -1
  420. package/dist/esm/TestAnnotations.js +1 -1
  421. package/dist/esm/TestAnnotations.js.map +1 -1
  422. package/dist/esm/TestClock.js +1 -1
  423. package/dist/esm/TestClock.js.map +1 -1
  424. package/dist/esm/TestConfig.js +1 -1
  425. package/dist/esm/TestConfig.js.map +1 -1
  426. package/dist/esm/TestContext.js.map +1 -1
  427. package/dist/esm/TestLive.js +1 -1
  428. package/dist/esm/TestLive.js.map +1 -1
  429. package/dist/esm/TestServices.js.map +1 -1
  430. package/dist/esm/TestSized.js +1 -1
  431. package/dist/esm/TestSized.js.map +1 -1
  432. package/dist/esm/Utils.js +1 -1
  433. package/dist/esm/Utils.js.map +1 -1
  434. package/dist/esm/index.js +12 -2
  435. package/dist/esm/index.js.map +1 -1
  436. package/dist/esm/internal/cache.js.map +1 -1
  437. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  438. package/dist/esm/internal/channel/mergeDecision.js +2 -6
  439. package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
  440. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
  441. package/dist/esm/internal/channel.js +1 -1
  442. package/dist/esm/internal/channel.js.map +1 -1
  443. package/dist/esm/internal/clock.js +1 -1
  444. package/dist/esm/internal/clock.js.map +1 -1
  445. package/dist/esm/internal/configProvider.js +2 -4
  446. package/dist/esm/internal/configProvider.js.map +1 -1
  447. package/dist/esm/internal/console.js.map +1 -1
  448. package/dist/esm/internal/context.js +28 -20
  449. package/dist/esm/internal/context.js.map +1 -1
  450. package/dist/esm/internal/core-effect.js +12 -26
  451. package/dist/esm/internal/core-effect.js.map +1 -1
  452. package/dist/esm/internal/core-stream.js.map +1 -1
  453. package/dist/esm/internal/core.js +57 -127
  454. package/dist/esm/internal/core.js.map +1 -1
  455. package/dist/esm/internal/data.js.map +1 -1
  456. package/dist/esm/internal/defaultServices/console.js +1 -1
  457. package/dist/esm/internal/defaultServices/console.js.map +1 -1
  458. package/dist/esm/internal/defaultServices.js.map +1 -1
  459. package/dist/esm/internal/deferred.js.map +1 -1
  460. package/dist/esm/internal/differ/contextPatch.js +9 -9
  461. package/dist/esm/internal/differ/contextPatch.js.map +1 -1
  462. package/dist/esm/internal/effect/circular.js +5 -8
  463. package/dist/esm/internal/effect/circular.js.map +1 -1
  464. package/dist/esm/internal/effectable.js +4 -4
  465. package/dist/esm/internal/effectable.js.map +1 -1
  466. package/dist/esm/internal/fiber.js +2 -6
  467. package/dist/esm/internal/fiber.js.map +1 -1
  468. package/dist/esm/internal/fiberRuntime.js +10 -19
  469. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  470. package/dist/esm/internal/groupBy.js.map +1 -1
  471. package/dist/esm/internal/keyedPool.js.map +1 -1
  472. package/dist/esm/internal/layer/circular.js.map +1 -1
  473. package/dist/esm/internal/layer.js +3 -3
  474. package/dist/esm/internal/layer.js.map +1 -1
  475. package/dist/esm/internal/logSpan.js +3 -5
  476. package/dist/esm/internal/logSpan.js.map +1 -1
  477. package/dist/esm/internal/metric.js.map +1 -1
  478. package/dist/esm/internal/pool.js.map +1 -1
  479. package/dist/esm/internal/pubsub.js +1 -5
  480. package/dist/esm/internal/pubsub.js.map +1 -1
  481. package/dist/esm/internal/query.js.map +1 -1
  482. package/dist/esm/internal/queue.js.map +1 -1
  483. package/dist/esm/internal/random.js +1 -1
  484. package/dist/esm/internal/random.js.map +1 -1
  485. package/dist/esm/internal/rateLimiter.js +12 -0
  486. package/dist/esm/internal/rateLimiter.js.map +1 -0
  487. package/dist/esm/internal/ref.js.map +1 -1
  488. package/dist/esm/internal/reloadable.js +1 -9
  489. package/dist/esm/internal/reloadable.js.map +1 -1
  490. package/dist/esm/internal/runtime.js +0 -1
  491. package/dist/esm/internal/runtime.js.map +1 -1
  492. package/dist/esm/internal/schedule.js.map +1 -1
  493. package/dist/esm/internal/scopedCache.js.map +1 -1
  494. package/dist/esm/internal/scopedRef.js.map +1 -1
  495. package/dist/esm/internal/sink.js +7 -7
  496. package/dist/esm/internal/sink.js.map +1 -1
  497. package/dist/esm/internal/stm/core.js.map +1 -1
  498. package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
  499. package/dist/esm/internal/stm/stm/tExit.js +2 -2
  500. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  501. package/dist/esm/internal/stm/stm/tryCommit.js.map +1 -1
  502. package/dist/esm/internal/stm/stm.js.map +1 -1
  503. package/dist/esm/internal/stm/tArray.js.map +1 -1
  504. package/dist/esm/internal/stm/tDeferred.js +4 -2
  505. package/dist/esm/internal/stm/tDeferred.js.map +1 -1
  506. package/dist/esm/internal/stm/tMap.js.map +1 -1
  507. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  508. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  509. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  510. package/dist/esm/internal/stm/tRandom.js +1 -1
  511. package/dist/esm/internal/stm/tRandom.js.map +1 -1
  512. package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
  513. package/dist/esm/internal/stm/tRef.js.map +1 -1
  514. package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
  515. package/dist/esm/internal/stm/tSet.js.map +1 -1
  516. package/dist/esm/internal/stream/debounceState.js.map +1 -1
  517. package/dist/esm/internal/stream/handoff.js.map +1 -1
  518. package/dist/esm/internal/stream/handoffSignal.js.map +1 -1
  519. package/dist/esm/internal/stream/pull.js.map +1 -1
  520. package/dist/esm/internal/stream.js +0 -2
  521. package/dist/esm/internal/stream.js.map +1 -1
  522. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  523. package/dist/esm/internal/supervisor.js.map +1 -1
  524. package/dist/esm/internal/take.js +2 -2
  525. package/dist/esm/internal/take.js.map +1 -1
  526. package/dist/esm/internal/testing/sleep.js.map +1 -1
  527. package/dist/esm/internal/tracer.js +2 -2
  528. package/dist/esm/internal/tracer.js.map +1 -1
  529. package/dist/esm/internal/version.js +1 -1
  530. package/package.json +9 -1
  531. package/src/Cache.ts +20 -20
  532. package/src/Cause.ts +37 -13
  533. package/src/Channel.ts +802 -794
  534. package/src/Clock.ts +7 -7
  535. package/src/Config.ts +1 -1
  536. package/src/ConfigProvider.ts +6 -6
  537. package/src/Console.ts +44 -48
  538. package/src/Context.ts +52 -30
  539. package/src/Data.ts +38 -61
  540. package/src/Deferred.ts +39 -41
  541. package/src/Effect.ts +1187 -1206
  542. package/src/Effectable.ts +8 -8
  543. package/src/Either.ts +2 -3
  544. package/src/Exit.ts +88 -105
  545. package/src/Fiber.ts +77 -83
  546. package/src/FiberMap.ts +77 -77
  547. package/src/FiberRef.ts +28 -28
  548. package/src/FiberRefs.ts +1 -1
  549. package/src/FiberSet.ts +61 -62
  550. package/src/GroupBy.ts +8 -12
  551. package/src/KeyedPool.ts +22 -22
  552. package/src/Layer.ts +187 -181
  553. package/src/LogLevel.ts +7 -6
  554. package/src/Logger.ts +18 -18
  555. package/src/MergeDecision.ts +7 -7
  556. package/src/MergeState.ts +16 -16
  557. package/src/Metric.ts +39 -39
  558. package/src/MetricPolling.ts +6 -6
  559. package/src/Number.ts +19 -0
  560. package/src/Option.ts +2 -3
  561. package/src/Pool.ts +15 -16
  562. package/src/PubSub.ts +18 -18
  563. package/src/Queue.ts +43 -46
  564. package/src/Random.ts +13 -15
  565. package/src/RateLimiter.ts +37 -0
  566. package/src/ReadonlyRecord.ts +49 -8
  567. package/src/Ref.ts +25 -25
  568. package/src/Reloadable.ts +10 -10
  569. package/src/Request.ts +31 -31
  570. package/src/RequestBlock.ts +3 -3
  571. package/src/RequestResolver.ts +21 -21
  572. package/src/Resource.ts +13 -13
  573. package/src/Runtime.ts +16 -19
  574. package/src/RuntimeFlags.ts +10 -10
  575. package/src/STM.ts +361 -362
  576. package/src/Schedule.ts +47 -47
  577. package/src/Scheduler.ts +2 -2
  578. package/src/Scope.ts +14 -15
  579. package/src/ScopedCache.ts +14 -14
  580. package/src/ScopedRef.ts +7 -7
  581. package/src/SingleProducerAsyncInput.ts +8 -9
  582. package/src/Sink.ts +357 -381
  583. package/src/Stream.ts +935 -1033
  584. package/src/StreamEmit.ts +5 -5
  585. package/src/Streamable.ts +2 -2
  586. package/src/SubscriptionRef.ts +51 -51
  587. package/src/Supervisor.ts +26 -26
  588. package/src/SynchronizedRef.ts +44 -44
  589. package/src/TArray.ts +74 -74
  590. package/src/TDeferred.ts +14 -14
  591. package/src/TMap.ts +72 -72
  592. package/src/TPriorityQueue.ts +23 -24
  593. package/src/TPubSub.ts +15 -15
  594. package/src/TQueue.ts +40 -40
  595. package/src/TRandom.ts +13 -13
  596. package/src/TReentrantLock.ts +21 -21
  597. package/src/TRef.ts +25 -25
  598. package/src/TSemaphore.ts +15 -15
  599. package/src/TSet.ts +49 -49
  600. package/src/Take.ts +51 -51
  601. package/src/TestAnnotation.ts +6 -17
  602. package/src/TestAnnotations.ts +7 -9
  603. package/src/TestClock.ts +39 -45
  604. package/src/TestConfig.ts +1 -3
  605. package/src/TestContext.ts +3 -3
  606. package/src/TestLive.ts +3 -5
  607. package/src/TestServices.ts +45 -47
  608. package/src/TestSized.ts +5 -5
  609. package/src/Tracer.ts +1 -1
  610. package/src/Utils.ts +8 -10
  611. package/src/index.ts +13 -2
  612. package/src/internal/blockedRequests.ts +2 -2
  613. package/src/internal/cache.ts +38 -38
  614. package/src/internal/channel/channelExecutor.ts +65 -73
  615. package/src/internal/channel/channelState.ts +11 -11
  616. package/src/internal/channel/continuation.ts +10 -10
  617. package/src/internal/channel/mergeDecision.ts +14 -16
  618. package/src/internal/channel/mergeState.ts +12 -12
  619. package/src/internal/channel/singleProducerAsyncInput.ts +15 -17
  620. package/src/internal/channel/subexecutor.ts +7 -7
  621. package/src/internal/channel.ts +901 -980
  622. package/src/internal/clock.ts +6 -6
  623. package/src/internal/concurrency.ts +9 -9
  624. package/src/internal/configProvider.ts +29 -36
  625. package/src/internal/console.ts +12 -12
  626. package/src/internal/context.ts +32 -23
  627. package/src/internal/core-effect.ts +655 -616
  628. package/src/internal/core-stream.ts +317 -325
  629. package/src/internal/core.ts +856 -790
  630. package/src/internal/data.ts +2 -3
  631. package/src/internal/dataSource.ts +14 -14
  632. package/src/internal/defaultServices/console.ts +3 -1
  633. package/src/internal/defaultServices.ts +21 -21
  634. package/src/internal/deferred.ts +9 -9
  635. package/src/internal/differ/contextPatch.ts +17 -17
  636. package/src/internal/effect/circular.ts +154 -159
  637. package/src/internal/effectable.ts +7 -7
  638. package/src/internal/fiber.ts +55 -59
  639. package/src/internal/fiberRefs.ts +1 -1
  640. package/src/internal/fiberRuntime.ts +426 -463
  641. package/src/internal/groupBy.ts +59 -62
  642. package/src/internal/keyedPool.ts +37 -37
  643. package/src/internal/layer/circular.ts +37 -37
  644. package/src/internal/layer.ts +235 -240
  645. package/src/internal/logSpan.ts +3 -5
  646. package/src/internal/metric/polling.ts +5 -5
  647. package/src/internal/metric.ts +54 -55
  648. package/src/internal/pool.ts +72 -72
  649. package/src/internal/pubsub.ts +75 -84
  650. package/src/internal/query.ts +25 -27
  651. package/src/internal/queue.ts +65 -70
  652. package/src/internal/random.ts +9 -9
  653. package/src/internal/rateLimiter.ts +30 -0
  654. package/src/internal/ref.ts +24 -24
  655. package/src/internal/reloadable.ts +11 -31
  656. package/src/internal/request.ts +14 -14
  657. package/src/internal/resource.ts +8 -8
  658. package/src/internal/runtime.ts +21 -22
  659. package/src/internal/schedule.ts +131 -134
  660. package/src/internal/scopedCache.ts +35 -32
  661. package/src/internal/scopedRef.ts +14 -14
  662. package/src/internal/sink.ts +507 -565
  663. package/src/internal/stm/core.ts +101 -102
  664. package/src/internal/stm/stm/stmState.ts +10 -10
  665. package/src/internal/stm/stm/tExit.ts +18 -18
  666. package/src/internal/stm/stm/tryCommit.ts +5 -5
  667. package/src/internal/stm/stm.ts +363 -374
  668. package/src/internal/stm/tArray.ts +92 -92
  669. package/src/internal/stm/tDeferred.ts +16 -14
  670. package/src/internal/stm/tMap.ts +83 -84
  671. package/src/internal/stm/tPriorityQueue.ts +24 -25
  672. package/src/internal/stm/tPubSub.ts +37 -38
  673. package/src/internal/stm/tQueue.ts +44 -48
  674. package/src/internal/stm/tRandom.ts +18 -18
  675. package/src/internal/stm/tReentrantLock.ts +28 -28
  676. package/src/internal/stm/tRef.ts +25 -25
  677. package/src/internal/stm/tSemaphore.ts +16 -16
  678. package/src/internal/stm/tSet.ts +51 -52
  679. package/src/internal/stream/debounceState.ts +7 -7
  680. package/src/internal/stream/emit.ts +4 -4
  681. package/src/internal/stream/handoff.ts +19 -19
  682. package/src/internal/stream/handoffSignal.ts +4 -4
  683. package/src/internal/stream/pull.ts +10 -11
  684. package/src/internal/stream.ts +1770 -1788
  685. package/src/internal/subscriptionRef.ts +17 -17
  686. package/src/internal/supervisor.ts +49 -56
  687. package/src/internal/synchronizedRef.ts +27 -27
  688. package/src/internal/take.ts +61 -61
  689. package/src/internal/testing/sleep.ts +2 -2
  690. package/src/internal/testing/suspendedWarningData.ts +2 -2
  691. package/src/internal/testing/warningData.ts +2 -2
  692. package/src/internal/tracer.ts +2 -6
  693. package/src/internal/version.ts +1 -1
package/src/Sink.ts CHANGED
@@ -36,16 +36,18 @@ export const SinkTypeId: unique symbol = internal.SinkTypeId
36
36
  export type SinkTypeId = typeof SinkTypeId
37
37
 
38
38
  /**
39
- * A `Sink<R, E, In, L, Z>` is used to consume elements produced by a `Stream`.
39
+ * A `Sink<A, In, L, E, R>` is used to consume elements produced by a `Stream`.
40
40
  * You can think of a sink as a function that will consume a variable amount of
41
41
  * `In` elements (could be 0, 1, or many), might fail with an error of type `E`,
42
- * and will eventually yield a value of type `Z` together with a remainder of
42
+ * and will eventually yield a value of type `A` together with a remainder of
43
43
  * type `L` (i.e. any leftovers).
44
44
  *
45
45
  * @since 2.0.0
46
46
  * @category models
47
47
  */
48
- export interface Sink<out R, out E, in In, out L, out Z> extends Sink.Variance<R, E, In, L, Z>, Pipeable {}
48
+ export interface Sink<out A, in In = unknown, out L = never, out E = never, out R = never>
49
+ extends Sink.Variance<A, In, L, E, R>, Pipeable
50
+ {}
49
51
 
50
52
  /**
51
53
  * @since 2.0.0
@@ -54,13 +56,13 @@ export interface Sink<out R, out E, in In, out L, out Z> extends Sink.Variance<R
54
56
  export interface SinkUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
55
57
  Sink?: () => A[Unify.typeSymbol] extends
56
58
  | Sink<
57
- infer R,
58
- infer E,
59
+ infer A,
59
60
  infer In,
60
61
  infer L,
61
- infer Z
62
+ infer E,
63
+ infer R
62
64
  >
63
- | infer _ ? Sink<R, E, In, L, Z>
65
+ | infer _ ? Sink<A, In, L, E, R>
64
66
  : never
65
67
  }
66
68
 
@@ -77,7 +79,7 @@ export interface SinkUnifyIgnore extends Effect.EffectUnifyIgnore {
77
79
  * @category models
78
80
  */
79
81
  declare module "./Effect.js" {
80
- interface Effect<R, E, A> extends Sink<R, E, unknown, never, A> {}
82
+ interface Effect<A, E, R> extends Sink<A, unknown, never, E, R> {}
81
83
  interface EffectUnifyIgnore {
82
84
  Sink?: true
83
85
  }
@@ -91,19 +93,19 @@ export declare namespace Sink {
91
93
  * @since 2.0.0
92
94
  * @category models
93
95
  */
94
- export interface Variance<out R, out E, in In, out L, out Z> {
95
- readonly [SinkTypeId]: VarianceStruct<R, E, In, L, Z>
96
+ export interface Variance<out A, in In, out L, out E, out R> {
97
+ readonly [SinkTypeId]: VarianceStruct<A, In, L, E, R>
96
98
  }
97
99
  /**
98
100
  * @since 2.0.0
99
101
  * @category models
100
102
  */
101
- export interface VarianceStruct<out R, out E, in In, out L, out Z> {
102
- _R: Types.Covariant<R>
103
- _E: Types.Covariant<E>
103
+ export interface VarianceStruct<out A, in In, out L, out E, out R> {
104
+ _A: Types.Covariant<A>
104
105
  _In: Types.Contravariant<In>
105
106
  _L: Types.Covariant<L>
106
- _Z: Types.Covariant<Z>
107
+ _E: Types.Covariant<E>
108
+ _R: Types.Covariant<R>
107
109
  }
108
110
  }
109
111
 
@@ -114,8 +116,8 @@ export declare namespace Sink {
114
116
  * @category mapping
115
117
  */
116
118
  export const as: {
117
- <Z2>(z: Z2): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, L, Z2>
118
- <R, E, In, L, Z, Z2>(self: Sink<R, E, In, L, Z>, z: Z2): Sink<R, E, In, L, Z2>
119
+ <A2>(a: A2): <A, In, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A2, In, L, E, R>
120
+ <A, In, L, E, R, A2>(self: Sink<A, In, L, E, R>, a: A2): Sink<A2, In, L, E, R>
119
121
  } = internal.as
120
122
 
121
123
  /**
@@ -124,7 +126,7 @@ export const as: {
124
126
  * @since 2.0.0
125
127
  * @category constructors
126
128
  */
127
- export const collectAll: <In>() => Sink<never, never, In, never, Chunk.Chunk<In>> = internal.collectAll
129
+ export const collectAll: <In>() => Sink<Chunk.Chunk<In>, In> = internal.collectAll
128
130
 
129
131
  /**
130
132
  * A sink that collects first `n` elements into a chunk.
@@ -132,7 +134,7 @@ export const collectAll: <In>() => Sink<never, never, In, never, Chunk.Chunk<In>
132
134
  * @since 2.0.0
133
135
  * @category constructors
134
136
  */
135
- export const collectAllN: <In>(n: number) => Sink<never, never, In, In, Chunk.Chunk<In>> = internal.collectAllN
137
+ export const collectAllN: <In>(n: number) => Sink<Chunk.Chunk<In>, In, In> = internal.collectAllN
136
138
 
137
139
  /**
138
140
  * Repeatedly runs the sink and accumulates its results into a `Chunk`.
@@ -140,9 +142,9 @@ export const collectAllN: <In>(n: number) => Sink<never, never, In, In, Chunk.Ch
140
142
  * @since 2.0.0
141
143
  * @category utils
142
144
  */
143
- export const collectAllFrom: <R, E, In, L extends In, Z>(
144
- self: Sink<R, E, In, L, Z>
145
- ) => Sink<R, E, In, L, Chunk.Chunk<Z>> = internal.collectAllFrom
145
+ export const collectAllFrom: <A, In, L extends In, E, R>(
146
+ self: Sink<A, In, L, E, R>
147
+ ) => Sink<Chunk.Chunk<A>, In, L, E, R> = internal.collectAllFrom
146
148
 
147
149
  /**
148
150
  * A sink that collects all of its inputs into a map. The keys are extracted
@@ -155,7 +157,7 @@ export const collectAllFrom: <R, E, In, L extends In, Z>(
155
157
  export const collectAllToMap: <In, K>(
156
158
  key: (input: In) => K,
157
159
  merge: (x: In, y: In) => In
158
- ) => Sink<never, never, In, never, HashMap.HashMap<K, In>> = internal.collectAllToMap
160
+ ) => Sink<HashMap.HashMap<K, In>, In> = internal.collectAllToMap
159
161
 
160
162
  /**
161
163
  * A sink that collects first `n` keys into a map. The keys are calculated
@@ -169,7 +171,7 @@ export const collectAllToMapN: <In, K>(
169
171
  n: number,
170
172
  key: (input: In) => K,
171
173
  merge: (x: In, y: In) => In
172
- ) => Sink<never, never, In, In, HashMap.HashMap<K, In>> = internal.collectAllToMapN
174
+ ) => Sink<HashMap.HashMap<K, In>, In, In> = internal.collectAllToMapN
173
175
 
174
176
  /**
175
177
  * A sink that collects all of its inputs into a set.
@@ -177,7 +179,7 @@ export const collectAllToMapN: <In, K>(
177
179
  * @since 2.0.0
178
180
  * @category constructors
179
181
  */
180
- export const collectAllToSet: <In>() => Sink<never, never, In, never, HashSet.HashSet<In>> = internal.collectAllToSet
182
+ export const collectAllToSet: <In>() => Sink<HashSet.HashSet<In>, In> = internal.collectAllToSet
181
183
 
182
184
  /**
183
185
  * A sink that collects first `n` distinct inputs into a set.
@@ -185,8 +187,7 @@ export const collectAllToSet: <In>() => Sink<never, never, In, never, HashSet.Ha
185
187
  * @since 2.0.0
186
188
  * @category constructors
187
189
  */
188
- export const collectAllToSetN: <In>(n: number) => Sink<never, never, In, In, HashSet.HashSet<In>> =
189
- internal.collectAllToSetN
190
+ export const collectAllToSetN: <In>(n: number) => Sink<HashSet.HashSet<In>, In, In> = internal.collectAllToSetN
190
191
 
191
192
  /**
192
193
  * Accumulates incoming elements into a chunk until predicate `p` is
@@ -195,8 +196,7 @@ export const collectAllToSetN: <In>(n: number) => Sink<never, never, In, In, Has
195
196
  * @since 2.0.0
196
197
  * @category constructors
197
198
  */
198
- export const collectAllUntil: <In>(p: Predicate<In>) => Sink<never, never, In, In, Chunk.Chunk<In>> =
199
- internal.collectAllUntil
199
+ export const collectAllUntil: <In>(p: Predicate<In>) => Sink<Chunk.Chunk<In>, In, In> = internal.collectAllUntil
200
200
 
201
201
  /**
202
202
  * Accumulates incoming elements into a chunk until effectful predicate `p` is
@@ -205,9 +205,9 @@ export const collectAllUntil: <In>(p: Predicate<In>) => Sink<never, never, In, I
205
205
  * @since 2.0.0
206
206
  * @category constructors
207
207
  */
208
- export const collectAllUntilEffect: <In, R, E>(
209
- p: (input: In) => Effect.Effect<R, E, boolean>
210
- ) => Sink<R, E, In, In, Chunk.Chunk<In>> = internal.collectAllUntilEffect
208
+ export const collectAllUntilEffect: <In, E, R>(
209
+ p: (input: In) => Effect.Effect<boolean, E, R>
210
+ ) => Sink<Chunk.Chunk<In>, In, In, E, R> = internal.collectAllUntilEffect
211
211
 
212
212
  /**
213
213
  * Accumulates incoming elements into a chunk as long as they verify predicate
@@ -217,8 +217,8 @@ export const collectAllUntilEffect: <In, R, E>(
217
217
  * @category constructors
218
218
  */
219
219
  export const collectAllWhile: {
220
- <In, Out extends In>(refinement: Refinement<In, Out>): Sink<never, never, In, In, Chunk.Chunk<Out>>
221
- <In>(predicate: Predicate<In>): Sink<never, never, In, In, Chunk.Chunk<In>>
220
+ <In, Out extends In>(refinement: Refinement<In, Out>): Sink<Chunk.Chunk<Out>, In, In>
221
+ <In>(predicate: Predicate<In>): Sink<Chunk.Chunk<In>, In, In>
222
222
  } = internal.collectAllWhile
223
223
 
224
224
  /**
@@ -228,9 +228,9 @@ export const collectAllWhile: {
228
228
  * @since 2.0.0
229
229
  * @category constructors
230
230
  */
231
- export const collectAllWhileEffect: <In, R, E>(
232
- predicate: (input: In) => Effect.Effect<R, E, boolean>
233
- ) => Sink<R, E, In, In, Chunk.Chunk<In>> = internal.collectAllWhileEffect
231
+ export const collectAllWhileEffect: <In, E, R>(
232
+ predicate: (input: In) => Effect.Effect<boolean, E, R>
233
+ ) => Sink<Chunk.Chunk<In>, In, In, E, R> = internal.collectAllWhileEffect
234
234
 
235
235
  /**
236
236
  * Repeatedly runs the sink for as long as its results satisfy the predicate
@@ -240,21 +240,13 @@ export const collectAllWhileEffect: <In, R, E>(
240
240
  * @category utils
241
241
  */
242
242
  export const collectAllWhileWith: {
243
- <Z, S>(
244
- options: {
245
- readonly initial: S
246
- readonly while: Predicate<Z>
247
- readonly body: (s: S, z: Z) => S
248
- }
249
- ): <R, E, In, L extends In>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, L, S>
250
- <R, E, In, L extends In, Z, S>(
251
- self: Sink<R, E, In, L, Z>,
252
- options: {
253
- readonly initial: S
254
- readonly while: Predicate<Z>
255
- readonly body: (s: S, z: Z) => S
256
- }
257
- ): Sink<R, E, In, L, S>
243
+ <A, S>(
244
+ options: { readonly initial: S; readonly while: Predicate<A>; readonly body: (s: S, a: A) => S }
245
+ ): <In, L extends In, E, R>(self: Sink<A, In, L, E, R>) => Sink<S, In, L, E, R>
246
+ <A, In, L extends In, E, R, S>(
247
+ self: Sink<A, In, L, E, R>,
248
+ options: { readonly initial: S; readonly while: Predicate<A>; readonly body: (s: S, a: A) => S }
249
+ ): Sink<S, In, L, E, R>
258
250
  } = internal.collectAllWhileWith as any
259
251
 
260
252
  /**
@@ -264,9 +256,9 @@ export const collectAllWhileWith: {
264
256
  * @since 2.0.0
265
257
  * @category utils
266
258
  */
267
- export const collectLeftover: <R, E, In, L, Z>(
268
- self: Sink<R, E, In, L, Z>
269
- ) => Sink<R, E, In, never, [Z, Chunk.Chunk<L>]> = internal.collectLeftover
259
+ export const collectLeftover: <A, In, L, E, R>(
260
+ self: Sink<A, In, L, E, R>
261
+ ) => Sink<[A, Chunk.Chunk<L>], In, never, E, R> = internal.collectLeftover
270
262
 
271
263
  /**
272
264
  * Transforms this sink's input elements.
@@ -274,7 +266,10 @@ export const collectLeftover: <R, E, In, L, Z>(
274
266
  * @since 2.0.0
275
267
  * @category mapping
276
268
  */
277
- export const mapInput = internal.mapInput
269
+ export const mapInput: {
270
+ <In0, In>(f: (input: In0) => In): <A, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In0, L, E, R>
271
+ <A, In, L, E, R, In0>(self: Sink<A, In, L, E, R>, f: (input: In0) => In): Sink<A, In0, L, E, R>
272
+ } = internal.mapInput
278
273
 
279
274
  /**
280
275
  * Effectfully transforms this sink's input elements.
@@ -282,7 +277,15 @@ export const mapInput = internal.mapInput
282
277
  * @since 2.0.0
283
278
  * @category mapping
284
279
  */
285
- export const mapInputEffect = internal.mapInputEffect
280
+ export const mapInputEffect: {
281
+ <In0, In, E2, R2>(
282
+ f: (input: In0) => Effect.Effect<In, E2, R2>
283
+ ): <A, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In0, L, E2 | E, R2 | R>
284
+ <A, In, L, E, R, In0, E2, R2>(
285
+ self: Sink<A, In, L, E, R>,
286
+ f: (input: In0) => Effect.Effect<In, E2, R2>
287
+ ): Sink<A, In0, L, E | E2, R | R2>
288
+ } = internal.mapInputEffect
286
289
 
287
290
  /**
288
291
  * Transforms this sink's input chunks. `f` must preserve chunking-invariance.
@@ -293,11 +296,11 @@ export const mapInputEffect = internal.mapInputEffect
293
296
  export const mapInputChunks: {
294
297
  <In0, In>(
295
298
  f: (chunk: Chunk.Chunk<In0>) => Chunk.Chunk<In>
296
- ): <R, E, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In0, L, Z>
297
- <R, E, L, Z, In0, In>(
298
- self: Sink<R, E, In, L, Z>,
299
+ ): <A, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In0, L, E, R>
300
+ <A, In, L, E, R, In0>(
301
+ self: Sink<A, In, L, E, R>,
299
302
  f: (chunk: Chunk.Chunk<In0>) => Chunk.Chunk<In>
300
- ): Sink<R, E, In0, L, Z>
303
+ ): Sink<A, In0, L, E, R>
301
304
  } = internal.mapInputChunks
302
305
 
303
306
  /**
@@ -308,13 +311,13 @@ export const mapInputChunks: {
308
311
  * @category mapping
309
312
  */
310
313
  export const mapInputChunksEffect: {
311
- <In0, R2, E2, In>(
312
- f: (chunk: Chunk.Chunk<In0>) => Effect.Effect<R2, E2, Chunk.Chunk<In>>
313
- ): <R, E, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In0, L, Z>
314
- <R, E, L, Z, In0, R2, E2, In>(
315
- self: Sink<R, E, In, L, Z>,
316
- f: (chunk: Chunk.Chunk<In0>) => Effect.Effect<R2, E2, Chunk.Chunk<In>>
317
- ): Sink<R | R2, E | E2, In0, L, Z>
314
+ <In0, In, E2, R2>(
315
+ f: (chunk: Chunk.Chunk<In0>) => Effect.Effect<Chunk.Chunk<In>, E2, R2>
316
+ ): <A, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In0, L, E2 | E, R2 | R>
317
+ <A, In, L, E, R, In0, E2, R2>(
318
+ self: Sink<A, In, L, E, R>,
319
+ f: (chunk: Chunk.Chunk<In0>) => Effect.Effect<Chunk.Chunk<In>, E2, R2>
320
+ ): Sink<A, In0, L, E | E2, R | R2>
318
321
  } = internal.mapInputChunksEffect
319
322
 
320
323
  /**
@@ -323,7 +326,7 @@ export const mapInputChunksEffect: {
323
326
  * @since 2.0.0
324
327
  * @category constructors
325
328
  */
326
- export const count: Sink<never, never, unknown, never, number> = internal.count
329
+ export const count: Sink<number, unknown> = internal.count
327
330
 
328
331
  /**
329
332
  * Creates a sink halting with the specified defect.
@@ -331,7 +334,7 @@ export const count: Sink<never, never, unknown, never, number> = internal.count
331
334
  * @since 2.0.0
332
335
  * @category constructors
333
336
  */
334
- export const die: (defect: unknown) => Sink<never, never, unknown, never, never> = internal.die
337
+ export const die: (defect: unknown) => Sink<never, unknown> = internal.die
335
338
 
336
339
  /**
337
340
  * Creates a sink halting with the specified message, wrapped in a
@@ -340,7 +343,7 @@ export const die: (defect: unknown) => Sink<never, never, unknown, never, never>
340
343
  * @since 2.0.0
341
344
  * @category constructors
342
345
  */
343
- export const dieMessage: (message: string) => Sink<never, never, unknown, never, never> = internal.dieMessage
346
+ export const dieMessage: (message: string) => Sink<never, unknown> = internal.dieMessage
344
347
 
345
348
  /**
346
349
  * Creates a sink halting with the specified defect.
@@ -348,7 +351,7 @@ export const dieMessage: (message: string) => Sink<never, never, unknown, never,
348
351
  * @since 2.0.0
349
352
  * @category constructors
350
353
  */
351
- export const dieSync: (evaluate: LazyArg<unknown>) => Sink<never, never, unknown, never, never> = internal.dieSync
354
+ export const dieSync: (evaluate: LazyArg<unknown>) => Sink<never, unknown> = internal.dieSync
352
355
 
353
356
  /**
354
357
  * Transforms both inputs and result of this sink using the provided
@@ -358,19 +361,13 @@ export const dieSync: (evaluate: LazyArg<unknown>) => Sink<never, never, unknown
358
361
  * @category mapping
359
362
  */
360
363
  export const dimap: {
361
- <In0, In, Z, Z2>(
362
- options: {
363
- readonly onInput: (input: In0) => In
364
- readonly onDone: (z: Z) => Z2
365
- }
366
- ): <R, E, L>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In0, L, Z2>
367
- <R, E, L, In0, In, Z, Z2>(
368
- self: Sink<R, E, In, L, Z>,
369
- options: {
370
- readonly onInput: (input: In0) => In
371
- readonly onDone: (z: Z) => Z2
372
- }
373
- ): Sink<R, E, In0, L, Z2>
364
+ <In0, In, A, A2>(
365
+ options: { readonly onInput: (input: In0) => In; readonly onDone: (a: A) => A2 }
366
+ ): <L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A2, In0, L, E, R>
367
+ <A, In, L, E, R, In0, A2>(
368
+ self: Sink<A, In, L, E, R>,
369
+ options: { readonly onInput: (input: In0) => In; readonly onDone: (a: A) => A2 }
370
+ ): Sink<A2, In0, L, E, R>
374
371
  } = internal.dimap
375
372
 
376
373
  /**
@@ -381,19 +378,19 @@ export const dimap: {
381
378
  * @category mapping
382
379
  */
383
380
  export const dimapEffect: {
384
- <In0, R2, E2, In, Z, R3, E3, Z2>(
381
+ <In0, R2, E2, In, A, R3, E3, A2>(
385
382
  options: {
386
- readonly onInput: (input: In0) => Effect.Effect<R2, E2, In>
387
- readonly onDone: (z: Z) => Effect.Effect<R3, E3, Z2>
383
+ readonly onInput: (input: In0) => Effect.Effect<In, E2, R2>
384
+ readonly onDone: (a: A) => Effect.Effect<A2, E3, R3>
388
385
  }
389
- ): <R, E, L>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R3 | R, E2 | E3 | E, In0, L, Z2>
390
- <R, E, L, In0, R2, E2, In, Z, R3, E3, Z2>(
391
- self: Sink<R, E, In, L, Z>,
386
+ ): <R, E, L>(self: Sink<A, In, L, E, R>) => Sink<A2, In0, L, E2 | E3 | E, R2 | R3 | R>
387
+ <A, In, L, E, R, In0, E2, R2, A2, E3, R3>(
388
+ self: Sink<A, In, L, E, R>,
392
389
  options: {
393
- readonly onInput: (input: In0) => Effect.Effect<R2, E2, In>
394
- readonly onDone: (z: Z) => Effect.Effect<R3, E3, Z2>
390
+ readonly onInput: (input: In0) => Effect.Effect<In, E2, R2>
391
+ readonly onDone: (a: A) => Effect.Effect<A2, E3, R3>
395
392
  }
396
- ): Sink<R | R2 | R3, E | E2 | E3, In0, L, Z2>
393
+ ): Sink<A2, In0, L, E | E2 | E3, R | R2 | R3>
397
394
  } = internal.dimapEffect
398
395
 
399
396
  /**
@@ -404,19 +401,13 @@ export const dimapEffect: {
404
401
  * @category mapping
405
402
  */
406
403
  export const dimapChunks: {
407
- <In0, In, Z, Z2>(
408
- options: {
409
- readonly onInput: (chunk: Chunk.Chunk<In0>) => Chunk.Chunk<In>
410
- readonly onDone: (z: Z) => Z2
411
- }
412
- ): <R, E, L>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In0, L, Z2>
413
- <R, E, L, In0, In, Z, Z2>(
414
- self: Sink<R, E, In, L, Z>,
415
- options: {
416
- readonly onInput: (chunk: Chunk.Chunk<In0>) => Chunk.Chunk<In>
417
- readonly onDone: (z: Z) => Z2
418
- }
419
- ): Sink<R, E, In0, L, Z2>
404
+ <In0, In, A, A2>(
405
+ options: { readonly onInput: (chunk: Chunk.Chunk<In0>) => Chunk.Chunk<In>; readonly onDone: (a: A) => A2 }
406
+ ): <L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A2, In0, L, E, R>
407
+ <A, In, L, E, R, In0, A2>(
408
+ self: Sink<A, In, L, E, R>,
409
+ options: { readonly onInput: (chunk: Chunk.Chunk<In0>) => Chunk.Chunk<In>; readonly onDone: (a: A) => A2 }
410
+ ): Sink<A2, In0, L, E, R>
420
411
  } = internal.dimapChunks
421
412
 
422
413
  /**
@@ -427,19 +418,19 @@ export const dimapChunks: {
427
418
  * @category mapping
428
419
  */
429
420
  export const dimapChunksEffect: {
430
- <In0, R2, E2, In, Z, R3, E3, Z2>(
421
+ <In0, In, E2, R2, A, A2, E3, R3>(
431
422
  options: {
432
- readonly onInput: (chunk: Chunk.Chunk<In0>) => Effect.Effect<R2, E2, Chunk.Chunk<In>>
433
- readonly onDone: (z: Z) => Effect.Effect<R3, E3, Z2>
423
+ readonly onInput: (chunk: Chunk.Chunk<In0>) => Effect.Effect<Chunk.Chunk<In>, E2, R2>
424
+ readonly onDone: (a: A) => Effect.Effect<A2, E3, R3>
434
425
  }
435
- ): <R, E, L>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R3 | R, E2 | E3 | E, In0, L, Z2>
436
- <R, E, L, In0, R2, E2, In, Z, R3, E3, Z2>(
437
- self: Sink<R, E, In, L, Z>,
426
+ ): <R, E, L>(self: Sink<A, In, L, E, R>) => Sink<A2, In0, L, E2 | E3 | E, R2 | R3 | R>
427
+ <A, In, L, E, R, In0, E2, R2, A2, E3, R3>(
428
+ self: Sink<A, In, L, E, R>,
438
429
  options: {
439
- readonly onInput: (chunk: Chunk.Chunk<In0>) => Effect.Effect<R2, E2, Chunk.Chunk<In>>
440
- readonly onDone: (z: Z) => Effect.Effect<R3, E3, Z2>
430
+ readonly onInput: (chunk: Chunk.Chunk<In0>) => Effect.Effect<Chunk.Chunk<In>, E2, R2>
431
+ readonly onDone: (a: A) => Effect.Effect<A2, E3, R3>
441
432
  }
442
- ): Sink<R | R2 | R3, E | E2 | E3, In0, L, Z2>
433
+ ): Sink<A2, In0, L, E | E2 | E3, R | R2 | R3>
443
434
  } = internal.dimapChunksEffect
444
435
 
445
436
  /**
@@ -448,7 +439,7 @@ export const dimapChunksEffect: {
448
439
  * @since 2.0.0
449
440
  * @category constructors
450
441
  */
451
- export const drain: Sink<never, never, unknown, never, void> = internal.drain
442
+ export const drain: Sink<void, unknown> = internal.drain
452
443
 
453
444
  /**
454
445
  * Creates a sink that drops `n` elements.
@@ -456,7 +447,7 @@ export const drain: Sink<never, never, unknown, never, void> = internal.drain
456
447
  * @since 2.0.0
457
448
  * @category constructors
458
449
  */
459
- export const drop: <In>(n: number) => Sink<never, never, In, In, unknown> = internal.drop
450
+ export const drop: <In>(n: number) => Sink<unknown, In, In> = internal.drop
460
451
 
461
452
  /**
462
453
  * Drops incoming elements until the predicate is satisfied.
@@ -464,7 +455,7 @@ export const drop: <In>(n: number) => Sink<never, never, In, In, unknown> = inte
464
455
  * @since 2.0.0
465
456
  * @category constructors
466
457
  */
467
- export const dropUntil: <In>(predicate: Predicate<In>) => Sink<never, never, In, In, unknown> = internal.dropUntil
458
+ export const dropUntil: <In>(predicate: Predicate<In>) => Sink<unknown, In, In> = internal.dropUntil
468
459
 
469
460
  /**
470
461
  * Drops incoming elements until the effectful predicate is satisfied.
@@ -472,9 +463,9 @@ export const dropUntil: <In>(predicate: Predicate<In>) => Sink<never, never, In,
472
463
  * @since 2.0.0
473
464
  * @category constructors
474
465
  */
475
- export const dropUntilEffect: <In, R, E>(
476
- predicate: (input: In) => Effect.Effect<R, E, boolean>
477
- ) => Sink<R, E, In, In, unknown> = internal.dropUntilEffect
466
+ export const dropUntilEffect: <In, E, R>(
467
+ predicate: (input: In) => Effect.Effect<boolean, E, R>
468
+ ) => Sink<unknown, In, In, E, R> = internal.dropUntilEffect
478
469
 
479
470
  /**
480
471
  * Drops incoming elements as long as the predicate is satisfied.
@@ -482,7 +473,7 @@ export const dropUntilEffect: <In, R, E>(
482
473
  * @since 2.0.0
483
474
  * @category constructors
484
475
  */
485
- export const dropWhile: <In>(predicate: Predicate<In>) => Sink<never, never, In, In, unknown> = internal.dropWhile
476
+ export const dropWhile: <In>(predicate: Predicate<In>) => Sink<unknown, In, In> = internal.dropWhile
486
477
 
487
478
  /**
488
479
  * Drops incoming elements as long as the effectful predicate is satisfied.
@@ -490,9 +481,9 @@ export const dropWhile: <In>(predicate: Predicate<In>) => Sink<never, never, In,
490
481
  * @since 2.0.0
491
482
  * @category constructors
492
483
  */
493
- export const dropWhileEffect: <In, R, E>(
494
- predicate: (input: In) => Effect.Effect<R, E, boolean>
495
- ) => Sink<R, E, In, In, unknown> = internal.dropWhileEffect
484
+ export const dropWhileEffect: <In, E, R>(
485
+ predicate: (input: In) => Effect.Effect<boolean, E, R>
486
+ ) => Sink<unknown, In, In, E, R> = internal.dropWhileEffect
496
487
 
497
488
  /**
498
489
  * Returns a new sink with an attached finalizer. The finalizer is guaranteed
@@ -503,10 +494,10 @@ export const dropWhileEffect: <In, R, E>(
503
494
  * @category finalization
504
495
  */
505
496
  export const ensuring: {
506
- <R2, _>(
507
- finalizer: Effect.Effect<R2, never, _>
508
- ): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E, In, L, Z>
509
- <R, E, In, L, Z, R2, _>(self: Sink<R, E, In, L, Z>, finalizer: Effect.Effect<R2, never, _>): Sink<R | R2, E, In, L, Z>
497
+ <_, R2>(
498
+ finalizer: Effect.Effect<_, never, R2>
499
+ ): <A, In, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In, L, E, R2 | R>
500
+ <A, In, L, E, R, _, R2>(self: Sink<A, In, L, E, R>, finalizer: Effect.Effect<_, never, R2>): Sink<A, In, L, E, R | R2>
510
501
  } = internal.ensuring
511
502
 
512
503
  /**
@@ -518,13 +509,13 @@ export const ensuring: {
518
509
  * @category finalization
519
510
  */
520
511
  export const ensuringWith: {
521
- <E, Z, R2, _>(
522
- finalizer: (exit: Exit.Exit<E, Z>) => Effect.Effect<R2, never, _>
523
- ): <R, In, L>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E, In, L, Z>
524
- <R, In, L, E, Z, R2, _>(
525
- self: Sink<R, E, In, L, Z>,
526
- finalizer: (exit: Exit.Exit<E, Z>) => Effect.Effect<R2, never, _>
527
- ): Sink<R | R2, E, In, L, Z>
512
+ <A, E, _, R2>(
513
+ finalizer: (exit: Exit.Exit<A, E>) => Effect.Effect<_, never, R2>
514
+ ): <In, L, R>(self: Sink<A, In, L, E, R>) => Sink<A, In, L, E, R2 | R>
515
+ <A, In, L, E, R, _, R2>(
516
+ self: Sink<A, In, L, E, R>,
517
+ finalizer: (exit: Exit.Exit<A, E>) => Effect.Effect<_, never, R2>
518
+ ): Sink<A, In, L, E, R | R2>
528
519
  } = internal.ensuringWith
529
520
 
530
521
  /**
@@ -533,7 +524,7 @@ export const ensuringWith: {
533
524
  * @since 2.0.0
534
525
  * @category constructors
535
526
  */
536
- export const context: <R>() => Sink<R, never, unknown, never, Context.Context<R>> = internal.context
527
+ export const context: <R>() => Sink<Context.Context<R>, unknown, never, never, R> = internal.context
537
528
 
538
529
  /**
539
530
  * Accesses the context of the sink.
@@ -541,7 +532,7 @@ export const context: <R>() => Sink<R, never, unknown, never, Context.Context<R>
541
532
  * @since 2.0.0
542
533
  * @category constructors
543
534
  */
544
- export const contextWith: <R, Z>(f: (context: Context.Context<R>) => Z) => Sink<R, never, unknown, never, Z> =
535
+ export const contextWith: <R, Z>(f: (context: Context.Context<R>) => Z) => Sink<Z, unknown, never, never, R> =
545
536
  internal.contextWith
546
537
 
547
538
  /**
@@ -550,9 +541,9 @@ export const contextWith: <R, Z>(f: (context: Context.Context<R>) => Z) => Sink<
550
541
  * @since 2.0.0
551
542
  * @category constructors
552
543
  */
553
- export const contextWithEffect: <R, R2, E, Z>(
554
- f: (context: Context.Context<R>) => Effect.Effect<R2, E, Z>
555
- ) => Sink<R | R2, E, unknown, never, Z> = internal.contextWithEffect
544
+ export const contextWithEffect: <R0, A, E, R>(
545
+ f: (context: Context.Context<R0>) => Effect.Effect<A, E, R>
546
+ ) => Sink<A, unknown, never, E, R0 | R> = internal.contextWithEffect
556
547
 
557
548
  /**
558
549
  * Accesses the context of the sink in the context of a sink.
@@ -560,9 +551,9 @@ export const contextWithEffect: <R, R2, E, Z>(
560
551
  * @since 2.0.0
561
552
  * @category constructors
562
553
  */
563
- export const contextWithSink: <R0, R, E, In, L, Z>(
564
- f: (context: Context.Context<R0>) => Sink<R, E, In, L, Z>
565
- ) => Sink<R0 | R, E, In, L, Z> = internal.contextWithSink
554
+ export const contextWithSink: <R0, A, In, L, E, R>(
555
+ f: (context: Context.Context<R0>) => Sink<A, In, L, E, R>
556
+ ) => Sink<A, In, L, E, R0 | R> = internal.contextWithSink
566
557
 
567
558
  /**
568
559
  * A sink that returns whether all elements satisfy the specified predicate.
@@ -570,7 +561,7 @@ export const contextWithSink: <R0, R, E, In, L, Z>(
570
561
  * @since 2.0.0
571
562
  * @category constructors
572
563
  */
573
- export const every: <In>(predicate: Predicate<In>) => Sink<never, never, In, In, boolean> = internal.every
564
+ export const every: <In>(predicate: Predicate<In>) => Sink<boolean, In, In> = internal.every
574
565
 
575
566
  /**
576
567
  * A sink that always fails with the specified error.
@@ -578,7 +569,7 @@ export const every: <In>(predicate: Predicate<In>) => Sink<never, never, In, In,
578
569
  * @since 2.0.0
579
570
  * @category constructors
580
571
  */
581
- export const fail: <E>(e: E) => Sink<never, E, unknown, never, never> = internal.fail
572
+ export const fail: <E>(e: E) => Sink<never, unknown, never, E> = internal.fail
582
573
 
583
574
  /**
584
575
  * A sink that always fails with the specified lazily evaluated error.
@@ -586,7 +577,7 @@ export const fail: <E>(e: E) => Sink<never, E, unknown, never, never> = internal
586
577
  * @since 2.0.0
587
578
  * @category constructors
588
579
  */
589
- export const failSync: <E>(evaluate: LazyArg<E>) => Sink<never, E, unknown, never, never> = internal.failSync
580
+ export const failSync: <E>(evaluate: LazyArg<E>) => Sink<never, unknown, never, E> = internal.failSync
590
581
 
591
582
  /**
592
583
  * Creates a sink halting with a specified `Cause`.
@@ -594,7 +585,7 @@ export const failSync: <E>(evaluate: LazyArg<E>) => Sink<never, E, unknown, neve
594
585
  * @since 2.0.0
595
586
  * @category constructors
596
587
  */
597
- export const failCause: <E>(cause: Cause.Cause<E>) => Sink<never, E, unknown, never, never> = internal.failCause
588
+ export const failCause: <E>(cause: Cause.Cause<E>) => Sink<never, unknown, never, E> = internal.failCause
598
589
 
599
590
  /**
600
591
  * Creates a sink halting with a specified lazily evaluated `Cause`.
@@ -602,7 +593,7 @@ export const failCause: <E>(cause: Cause.Cause<E>) => Sink<never, E, unknown, ne
602
593
  * @since 2.0.0
603
594
  * @category constructors
604
595
  */
605
- export const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => Sink<never, E, unknown, never, never> =
596
+ export const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => Sink<never, unknown, never, E> =
606
597
  internal.failCauseSync
607
598
 
608
599
  /**
@@ -614,8 +605,8 @@ export const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => Sink<never
614
605
  export const filterInput: {
615
606
  <In, In1 extends In, In2 extends In1>(
616
607
  f: Refinement<In1, In2>
617
- ): <R, E, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In2, L, Z>
618
- <In, In1 extends In>(f: Predicate<In1>): <R, E, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In1, L, Z>
608
+ ): <A, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In2, L, E, R>
609
+ <In, In1 extends In>(f: Predicate<In1>): <A, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In1, L, E, R>
619
610
  } = internal.filterInput
620
611
 
621
612
  /**
@@ -625,13 +616,13 @@ export const filterInput: {
625
616
  * @category filtering
626
617
  */
627
618
  export const filterInputEffect: {
628
- <R2, E2, In, In1 extends In>(
629
- f: (input: In1) => Effect.Effect<R2, E2, boolean>
630
- ): <R, E, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In1, L, Z>
631
- <R, E, L, Z, R2, E2, In, In1 extends In>(
632
- self: Sink<R, E, In, L, Z>,
633
- f: (input: In1) => Effect.Effect<R2, E2, boolean>
634
- ): Sink<R | R2, E | E2, In1, L, Z>
619
+ <In, In1 extends In, E2, R2>(
620
+ f: (input: In1) => Effect.Effect<boolean, E2, R2>
621
+ ): <A, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In1, L, E2 | E, R2 | R>
622
+ <A, In, L, E, R, In1 extends In, E2, R2>(
623
+ self: Sink<A, In, L, E, R>,
624
+ f: (input: In1) => Effect.Effect<boolean, E2, R2>
625
+ ): Sink<A, In1, L, E | E2, R | R2>
635
626
  } = internal.filterInputEffect
636
627
 
637
628
  /**
@@ -641,13 +632,13 @@ export const filterInputEffect: {
641
632
  * @category elements
642
633
  */
643
634
  export const findEffect: {
644
- <Z, R2, E2>(
645
- f: (z: Z) => Effect.Effect<R2, E2, boolean>
646
- ): <R, E, In, L extends In>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In, L, Option.Option<Z>>
647
- <R, E, In, L extends In, Z, R2, E2>(
648
- self: Sink<R, E, In, L, Z>,
649
- f: (z: Z) => Effect.Effect<R2, E2, boolean>
650
- ): Sink<R | R2, E | E2, In, L, Option.Option<Z>>
635
+ <A, E2, R2>(
636
+ f: (a: A) => Effect.Effect<boolean, E2, R2>
637
+ ): <In, L extends In, E, R>(self: Sink<A, In, L, E, R>) => Sink<Option.Option<A>, In, L, E2 | E, R2 | R>
638
+ <A, In, L extends In, E, R, E2, R2>(
639
+ self: Sink<A, In, L, E, R>,
640
+ f: (a: A) => Effect.Effect<boolean, E2, R2>
641
+ ): Sink<Option.Option<A>, In, L, E | E2, R | R2>
651
642
  } = internal.findEffect as any
652
643
 
653
644
  /**
@@ -657,8 +648,7 @@ export const findEffect: {
657
648
  * @since 2.0.0
658
649
  * @category folding
659
650
  */
660
- export const fold: <S, In>(s: S, contFn: Predicate<S>, f: (z: S, input: In) => S) => Sink<never, never, In, In, S> =
661
- internal.fold
651
+ export const fold: <S, In>(s: S, contFn: Predicate<S>, f: (s: S, input: In) => S) => Sink<S, In, In> = internal.fold
662
652
 
663
653
  /**
664
654
  * Folds over the result of the sink
@@ -667,19 +657,19 @@ export const fold: <S, In>(s: S, contFn: Predicate<S>, f: (z: S, input: In) => S
667
657
  * @category folding
668
658
  */
669
659
  export const foldSink: {
670
- <R1, R2, E, E1, E2, In, In1 extends In, In2 extends In, L, L1, L2, Z, Z1, Z2>(
660
+ <E, A1, In, In1 extends In, L1, E1, R1, A, A2, In2 extends In, L2, E2, R2>(
671
661
  options: {
672
- readonly onFailure: (err: E) => Sink<R1, E1, In1, L1, Z1>
673
- readonly onSuccess: (z: Z) => Sink<R2, E2, In2, L2, Z2>
662
+ readonly onFailure: (err: E) => Sink<A1, In1, L1, E1, R1>
663
+ readonly onSuccess: (a: A) => Sink<A2, In2, L2, E2, R2>
674
664
  }
675
- ): <R>(self: Sink<R, E, In, L, Z>) => Sink<R1 | R2 | R, E1 | E2, In1 & In2, L1 | L2, Z1 | Z2>
676
- <R, R1, R2, E, E1, E2, In, In1 extends In, In2 extends In, L, L1, L2, Z, Z1, Z2>(
677
- self: Sink<R, E, In, L, Z>,
665
+ ): <L, R>(self: Sink<A, In, L, E, R>) => Sink<A1 | A2, In1 & In2, L1 | L2, E1 | E2, R1 | R2 | R>
666
+ <A, In, L, E, R, A1, In1 extends In, L1, E1, R1, A2, In2 extends In, L2, E2, R2>(
667
+ self: Sink<A, In, L, E, R>,
678
668
  options: {
679
- readonly onFailure: (err: E) => Sink<R1, E1, In1, L1, Z1>
680
- readonly onSuccess: (z: Z) => Sink<R2, E2, In2, L2, Z2>
669
+ readonly onFailure: (err: E) => Sink<A1, In1, L1, E1, R1>
670
+ readonly onSuccess: (a: A) => Sink<A2, In2, L2, E2, R2>
681
671
  }
682
- ): Sink<R | R1 | R2, E1 | E2, In1 & In2, L1 | L2, Z1 | Z2>
672
+ ): Sink<A1 | A2, In1 & In2, L1 | L2, E1 | E2, R | R1 | R2>
683
673
  } = internal.foldSink
684
674
 
685
675
  /**
@@ -695,7 +685,7 @@ export const foldChunks: <S, In>(
695
685
  s: S,
696
686
  contFn: Predicate<S>,
697
687
  f: (s: S, chunk: Chunk.Chunk<In>) => S
698
- ) => Sink<never, never, In, never, S> = internal.foldChunks
688
+ ) => Sink<S, In> = internal.foldChunks
699
689
 
700
690
  /**
701
691
  * A sink that effectfully folds its input chunks with the provided function,
@@ -706,11 +696,11 @@ export const foldChunks: <S, In>(
706
696
  * @since 2.0.0
707
697
  * @category constructors
708
698
  */
709
- export const foldChunksEffect: <S, R, E, In>(
699
+ export const foldChunksEffect: <S, In, E, R>(
710
700
  s: S,
711
701
  contFn: Predicate<S>,
712
- f: (s: S, chunk: Chunk.Chunk<In>) => Effect.Effect<R, E, S>
713
- ) => Sink<R, E, In, In, S> = internal.foldChunksEffect
702
+ f: (s: S, chunk: Chunk.Chunk<In>) => Effect.Effect<S, E, R>
703
+ ) => Sink<S, In, In, E, R> = internal.foldChunksEffect
714
704
 
715
705
  /**
716
706
  * A sink that effectfully folds its inputs with the provided function,
@@ -719,11 +709,11 @@ export const foldChunksEffect: <S, R, E, In>(
719
709
  * @since 2.0.0
720
710
  * @category constructors
721
711
  */
722
- export const foldEffect: <S, R, E, In>(
712
+ export const foldEffect: <S, In, E, R>(
723
713
  s: S,
724
714
  contFn: Predicate<S>,
725
- f: (s: S, input: In) => Effect.Effect<R, E, S>
726
- ) => Sink<R, E, In, In, S> = internal.foldEffect
715
+ f: (s: S, input: In) => Effect.Effect<S, E, R>
716
+ ) => Sink<S, In, In, E, R> = internal.foldEffect
727
717
 
728
718
  /**
729
719
  * A sink that folds its inputs with the provided function and initial state.
@@ -731,7 +721,7 @@ export const foldEffect: <S, R, E, In>(
731
721
  * @since 2.0.0
732
722
  * @category constructors
733
723
  */
734
- export const foldLeft: <S, In>(s: S, f: (s: S, input: In) => S) => Sink<never, never, In, never, S> = internal.foldLeft
724
+ export const foldLeft: <S, In>(s: S, f: (s: S, input: In) => S) => Sink<S, In> = internal.foldLeft
735
725
 
736
726
  /**
737
727
  * A sink that folds its input chunks with the provided function and initial
@@ -740,7 +730,7 @@ export const foldLeft: <S, In>(s: S, f: (s: S, input: In) => S) => Sink<never, n
740
730
  * @since 2.0.0
741
731
  * @category constructors
742
732
  */
743
- export const foldLeftChunks: <S, In>(s: S, f: (s: S, chunk: Chunk.Chunk<In>) => S) => Sink<never, never, In, never, S> =
733
+ export const foldLeftChunks: <S, In>(s: S, f: (s: S, chunk: Chunk.Chunk<In>) => S) => Sink<S, In> =
744
734
  internal.foldLeftChunks
745
735
 
746
736
  /**
@@ -750,10 +740,10 @@ export const foldLeftChunks: <S, In>(s: S, f: (s: S, chunk: Chunk.Chunk<In>) =>
750
740
  * @since 2.0.0
751
741
  * @category constructors
752
742
  */
753
- export const foldLeftChunksEffect: <S, R, E, In>(
743
+ export const foldLeftChunksEffect: <S, In, E, R>(
754
744
  s: S,
755
- f: (s: S, chunk: Chunk.Chunk<In>) => Effect.Effect<R, E, S>
756
- ) => Sink<R, E, In, never, S> = internal.foldLeftChunksEffect
745
+ f: (s: S, chunk: Chunk.Chunk<In>) => Effect.Effect<S, E, R>
746
+ ) => Sink<S, In, never, E, R> = internal.foldLeftChunksEffect
757
747
 
758
748
  /**
759
749
  * A sink that effectfully folds its inputs with the provided function and
@@ -762,10 +752,10 @@ export const foldLeftChunksEffect: <S, R, E, In>(
762
752
  * @since 2.0.0
763
753
  * @category constructors
764
754
  */
765
- export const foldLeftEffect: <S, R, E, In>(
755
+ export const foldLeftEffect: <S, In, E, R>(
766
756
  s: S,
767
- f: (s: S, input: In) => Effect.Effect<R, E, S>
768
- ) => Sink<R, E, In, In, S> = internal.foldLeftEffect
757
+ f: (s: S, input: In) => Effect.Effect<S, E, R>
758
+ ) => Sink<S, In, In, E, R> = internal.foldLeftEffect
769
759
 
770
760
  /**
771
761
  * Creates a sink that folds elements of type `In` into a structure of type
@@ -776,8 +766,7 @@ export const foldLeftEffect: <S, R, E, In>(
776
766
  * @since 2.0.0
777
767
  * @category constructors
778
768
  */
779
- export const foldUntil: <In, S>(s: S, max: number, f: (z: S, input: In) => S) => Sink<never, never, In, In, S> =
780
- internal.foldUntil
769
+ export const foldUntil: <In, S>(s: S, max: number, f: (s: S, input: In) => S) => Sink<S, In, In> = internal.foldUntil
781
770
 
782
771
  /**
783
772
  * Creates a sink that effectfully folds elements of type `In` into a
@@ -788,11 +777,11 @@ export const foldUntil: <In, S>(s: S, max: number, f: (z: S, input: In) => S) =>
788
777
  * @since 2.0.0
789
778
  * @category constructors
790
779
  */
791
- export const foldUntilEffect: <S, R, E, In>(
780
+ export const foldUntilEffect: <S, In, E, R>(
792
781
  s: S,
793
782
  max: number,
794
- f: (s: S, input: In) => Effect.Effect<R, E, S>
795
- ) => Sink<R, E, In, In, S> = internal.foldUntilEffect
783
+ f: (s: S, input: In) => Effect.Effect<S, E, R>
784
+ ) => Sink<S, In, In, E, R> = internal.foldUntilEffect
796
785
 
797
786
  /**
798
787
  * Creates a sink that folds elements of type `In` into a structure of type
@@ -814,7 +803,7 @@ export const foldWeighted: <S, In>(
814
803
  readonly cost: (s: S, input: In) => number
815
804
  readonly body: (s: S, input: In) => S
816
805
  }
817
- ) => Sink<never, never, In, In, S> = internal.foldWeighted
806
+ ) => Sink<S, In, In> = internal.foldWeighted
818
807
 
819
808
  /**
820
809
  * Creates a sink that folds elements of type `In` into a structure of type
@@ -861,7 +850,7 @@ export const foldWeightedDecompose: <S, In>(
861
850
  readonly decompose: (input: In) => Chunk.Chunk<In>
862
851
  readonly body: (s: S, input: In) => S
863
852
  }
864
- ) => Sink<never, never, In, In, S> = internal.foldWeightedDecompose
853
+ ) => Sink<S, In, In> = internal.foldWeightedDecompose
865
854
 
866
855
  /**
867
856
  * Creates a sink that effectfully folds elements of type `In` into a
@@ -880,15 +869,15 @@ export const foldWeightedDecompose: <S, In>(
880
869
  * @since 2.0.0
881
870
  * @category constructors
882
871
  */
883
- export const foldWeightedDecomposeEffect: <S, In, R, E, R2, E2, R3, E3>(
872
+ export const foldWeightedDecomposeEffect: <S, In, E, R, E2, R2, E3, R3>(
884
873
  options: {
885
874
  readonly initial: S
886
875
  readonly maxCost: number
887
- readonly cost: (s: S, input: In) => Effect.Effect<R, E, number>
888
- readonly decompose: (input: In) => Effect.Effect<R2, E2, Chunk.Chunk<In>>
889
- readonly body: (s: S, input: In) => Effect.Effect<R3, E3, S>
876
+ readonly cost: (s: S, input: In) => Effect.Effect<number, E, R>
877
+ readonly decompose: (input: In) => Effect.Effect<Chunk.Chunk<In>, E2, R2>
878
+ readonly body: (s: S, input: In) => Effect.Effect<S, E3, R3>
890
879
  }
891
- ) => Sink<R | R2 | R3, E | E2 | E3, In, In, S> = internal.foldWeightedDecomposeEffect
880
+ ) => Sink<S, In, In, E | E2 | E3, R | R2 | R3> = internal.foldWeightedDecomposeEffect
892
881
 
893
882
  /**
894
883
  * Creates a sink that effectfully folds elements of type `In` into a
@@ -903,14 +892,14 @@ export const foldWeightedDecomposeEffect: <S, In, R, E, R2, E2, R3, E3>(
903
892
  * @since 2.0.0
904
893
  * @category constructors
905
894
  */
906
- export const foldWeightedEffect: <S, In, R, E, R2, E2>(
895
+ export const foldWeightedEffect: <S, In, E, R, E2, R2>(
907
896
  options: {
908
897
  readonly initial: S
909
898
  readonly maxCost: number
910
- readonly cost: (s: S, input: In) => Effect.Effect<R, E, number>
911
- readonly body: (s: S, input: In) => Effect.Effect<R2, E2, S>
899
+ readonly cost: (s: S, input: In) => Effect.Effect<number, E, R>
900
+ readonly body: (s: S, input: In) => Effect.Effect<S, E2, R2>
912
901
  }
913
- ) => Sink<R | R2, E | E2, In, In, S> = internal.foldWeightedEffect
902
+ ) => Sink<S, In, In, E | E2, R | R2> = internal.foldWeightedEffect
914
903
 
915
904
  /**
916
905
  * A sink that executes the provided effectful function for every element fed
@@ -919,7 +908,7 @@ export const foldWeightedEffect: <S, In, R, E, R2, E2>(
919
908
  * @since 2.0.0
920
909
  * @category constructors
921
910
  */
922
- export const forEach: <In, R, E, _>(f: (input: In) => Effect.Effect<R, E, _>) => Sink<R, E, In, never, void> =
911
+ export const forEach: <In, _, E, R>(f: (input: In) => Effect.Effect<_, E, R>) => Sink<void, In, never, E, R> =
923
912
  internal.forEach
924
913
 
925
914
  /**
@@ -929,9 +918,9 @@ export const forEach: <In, R, E, _>(f: (input: In) => Effect.Effect<R, E, _>) =>
929
918
  * @since 2.0.0
930
919
  * @category constructors
931
920
  */
932
- export const forEachChunk: <In, R, E, _>(
933
- f: (input: Chunk.Chunk<In>) => Effect.Effect<R, E, _>
934
- ) => Sink<R, E, In, never, void> = internal.forEachChunk
921
+ export const forEachChunk: <In, _, E, R>(
922
+ f: (input: Chunk.Chunk<In>) => Effect.Effect<_, E, R>
923
+ ) => Sink<void, In, never, E, R> = internal.forEachChunk
935
924
 
936
925
  /**
937
926
  * A sink that executes the provided effectful function for every chunk fed to
@@ -940,9 +929,9 @@ export const forEachChunk: <In, R, E, _>(
940
929
  * @since 2.0.0
941
930
  * @category constructors
942
931
  */
943
- export const forEachChunkWhile: <In, R, E>(
944
- f: (input: Chunk.Chunk<In>) => Effect.Effect<R, E, boolean>
945
- ) => Sink<R, E, In, In, void> = internal.forEachChunkWhile
932
+ export const forEachChunkWhile: <In, E, R>(
933
+ f: (input: Chunk.Chunk<In>) => Effect.Effect<boolean, E, R>
934
+ ) => Sink<void, In, In, E, R> = internal.forEachChunkWhile
946
935
 
947
936
  /**
948
937
  * A sink that executes the provided effectful function for every element fed
@@ -951,7 +940,7 @@ export const forEachChunkWhile: <In, R, E>(
951
940
  * @since 2.0.0
952
941
  * @category constructors
953
942
  */
954
- export const forEachWhile: <In, R, E>(f: (input: In) => Effect.Effect<R, E, boolean>) => Sink<R, E, In, In, void> =
943
+ export const forEachWhile: <In, E, R>(f: (input: In) => Effect.Effect<boolean, E, R>) => Sink<void, In, In, E, R> =
955
944
  internal.forEachWhile
956
945
 
957
946
  /**
@@ -965,13 +954,13 @@ export const forEachWhile: <In, R, E>(f: (input: In) => Effect.Effect<R, E, bool
965
954
  * @category sequencing
966
955
  */
967
956
  export const flatMap: {
968
- <R1, E1, In, In1 extends In, L, L1, Z, Z1>(
969
- f: (z: Z) => Sink<R1, E1, In1, L1, Z1>
970
- ): <R, E>(self: Sink<R, E, In, L, Z>) => Sink<R1 | R, E1 | E, In & In1, L | L1, Z1>
971
- <R, E, R1, E1, In, In1 extends In, L, L1, Z, Z1>(
972
- self: Sink<R, E, In, L, Z>,
973
- f: (z: Z) => Sink<R1, E1, In1, L1, Z1>
974
- ): Sink<R | R1, E | E1, In & In1, L | L1, Z1>
957
+ <A, A1, In, In1 extends In, L1, E1, R1>(
958
+ f: (a: A) => Sink<A1, In1, L1, E1, R1>
959
+ ): <L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A1, In & In1, L1 | L, E1 | E, R1 | R>
960
+ <A, In, L, E, R, A1, In1 extends In, L1, E1, R1>(
961
+ self: Sink<A, In, L, E, R>,
962
+ f: (a: A) => Sink<A1, In1, L1, E1, R1>
963
+ ): Sink<A1, In & In1, L | L1, E | E1, R | R1>
975
964
  } = internal.flatMap
976
965
 
977
966
  /**
@@ -980,9 +969,9 @@ export const flatMap: {
980
969
  * @since 2.0.0
981
970
  * @category constructors
982
971
  */
983
- export const fromChannel: <R, E, In, L, Z>(
984
- channel: Channel.Channel<R, never, Chunk.Chunk<In>, unknown, E, Chunk.Chunk<L>, Z>
985
- ) => Sink<R, E, In, L, Z> = internal.fromChannel
972
+ export const fromChannel: <L, In, E, A, R>(
973
+ channel: Channel.Channel<Chunk.Chunk<L>, Chunk.Chunk<In>, E, never, A, unknown, R>
974
+ ) => Sink<A, In, L, E, R> = internal.fromChannel
986
975
 
987
976
  /**
988
977
  * Creates a `Channel` from a Sink.
@@ -990,9 +979,9 @@ export const fromChannel: <R, E, In, L, Z>(
990
979
  * @since 2.0.0
991
980
  * @category constructors
992
981
  */
993
- export const toChannel: <R, E, In, L, Z>(
994
- self: Sink<R, E, In, L, Z>
995
- ) => Channel.Channel<R, never, Chunk.Chunk<In>, unknown, E, Chunk.Chunk<L>, Z> = internal.toChannel
982
+ export const toChannel: <A, In, L, E, R>(
983
+ self: Sink<A, In, L, E, R>
984
+ ) => Channel.Channel<Chunk.Chunk<L>, Chunk.Chunk<In>, E, never, A, unknown, R> = internal.toChannel
996
985
 
997
986
  /**
998
987
  * Creates a single-value sink produced from an effect.
@@ -1000,7 +989,7 @@ export const toChannel: <R, E, In, L, Z>(
1000
989
  * @since 2.0.0
1001
990
  * @category constructors
1002
991
  */
1003
- export const fromEffect: <R, E, Z>(effect: Effect.Effect<R, E, Z>) => Sink<R, E, unknown, never, Z> =
992
+ export const fromEffect: <A, E, R>(effect: Effect.Effect<A, E, R>) => Sink<A, unknown, never, E, R> =
1004
993
  internal.fromEffect
1005
994
 
1006
995
  /**
@@ -1015,7 +1004,7 @@ export const fromPubSub: <In>(
1015
1004
  options?: {
1016
1005
  readonly shutdown?: boolean | undefined
1017
1006
  }
1018
- ) => Sink<never, never, In, never, void> = internal.fromPubSub
1007
+ ) => Sink<void, In> = internal.fromPubSub
1019
1008
 
1020
1009
  /**
1021
1010
  * Creates a sink from a chunk processing function.
@@ -1023,13 +1012,13 @@ export const fromPubSub: <In>(
1023
1012
  * @since 2.0.0
1024
1013
  * @category constructors
1025
1014
  */
1026
- export const fromPush: <R, E, In, L, Z>(
1015
+ export const fromPush: <In, E, A, L, R>(
1027
1016
  push: Effect.Effect<
1028
- R,
1017
+ (_: Option.Option<Chunk.Chunk<In>>) => Effect.Effect<void, readonly [Either.Either<E, A>, Chunk.Chunk<L>], R>,
1029
1018
  never,
1030
- (_: Option.Option<Chunk.Chunk<In>>) => Effect.Effect<R, readonly [Either.Either<E, Z>, Chunk.Chunk<L>], void>
1019
+ R
1031
1020
  >
1032
- ) => Sink<Exclude<R, Scope.Scope>, E, In, L, Z> = internal.fromPush
1021
+ ) => Sink<A, In, L, E, Exclude<R, Scope.Scope>> = internal.fromPush
1033
1022
 
1034
1023
  /**
1035
1024
  * Create a sink which enqueues each element into the specified queue.
@@ -1043,7 +1032,7 @@ export const fromQueue: <In>(
1043
1032
  options?: {
1044
1033
  readonly shutdown?: boolean | undefined
1045
1034
  }
1046
- ) => Sink<never, never, In, never, void> = internal.fromQueue
1035
+ ) => Sink<void, In> = internal.fromQueue
1047
1036
 
1048
1037
  /**
1049
1038
  * Creates a sink containing the first value.
@@ -1051,7 +1040,7 @@ export const fromQueue: <In>(
1051
1040
  * @since 2.0.0
1052
1041
  * @category constructors
1053
1042
  */
1054
- export const head: <In>() => Sink<never, never, In, In, Option.Option<In>> = internal.head
1043
+ export const head: <In>() => Sink<Option.Option<In>, In, In> = internal.head
1055
1044
 
1056
1045
  /**
1057
1046
  * Drains the remaining elements from the stream after the sink finishes
@@ -1059,7 +1048,7 @@ export const head: <In>() => Sink<never, never, In, In, Option.Option<In>> = int
1059
1048
  * @since 2.0.0
1060
1049
  * @category utils
1061
1050
  */
1062
- export const ignoreLeftover: <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, never, Z> =
1051
+ export const ignoreLeftover: <A, In, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In, never, E, R> =
1063
1052
  internal.ignoreLeftover
1064
1053
 
1065
1054
  /**
@@ -1068,7 +1057,7 @@ export const ignoreLeftover: <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sin
1068
1057
  * @since 2.0.0
1069
1058
  * @category constructors
1070
1059
  */
1071
- export const last: <In>() => Sink<never, never, In, In, Option.Option<In>> = internal.last
1060
+ export const last: <In>() => Sink<Option.Option<In>, In, In> = internal.last
1072
1061
 
1073
1062
  /**
1074
1063
  * Creates a sink that does not consume any input but provides the given chunk
@@ -1077,7 +1066,7 @@ export const last: <In>() => Sink<never, never, In, In, Option.Option<In>> = int
1077
1066
  * @since 2.0.0
1078
1067
  * @category constructors
1079
1068
  */
1080
- export const leftover: <L>(chunk: Chunk.Chunk<L>) => Sink<never, never, unknown, L, void> = internal.leftover
1069
+ export const leftover: <L>(chunk: Chunk.Chunk<L>) => Sink<void, unknown, L> = internal.leftover
1081
1070
 
1082
1071
  /**
1083
1072
  * Transforms this sink's result.
@@ -1086,8 +1075,8 @@ export const leftover: <L>(chunk: Chunk.Chunk<L>) => Sink<never, never, unknown,
1086
1075
  * @category mapping
1087
1076
  */
1088
1077
  export const map: {
1089
- <Z, Z2>(f: (z: Z) => Z2): <R, E, In, L>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, L, Z2>
1090
- <R, E, In, L, Z, Z2>(self: Sink<R, E, In, L, Z>, f: (z: Z) => Z2): Sink<R, E, In, L, Z2>
1078
+ <A, A2>(f: (a: A) => A2): <In, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A2, In, L, E, R>
1079
+ <A, In, L, E, R, A2>(self: Sink<A, In, L, E, R>, f: (a: A) => A2): Sink<A2, In, L, E, R>
1091
1080
  } = internal.map
1092
1081
 
1093
1082
  /**
@@ -1097,13 +1086,13 @@ export const map: {
1097
1086
  * @category mapping
1098
1087
  */
1099
1088
  export const mapEffect: {
1100
- <Z, R2, E2, Z2>(
1101
- f: (z: Z) => Effect.Effect<R2, E2, Z2>
1102
- ): <R, E, In, L>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In, L, Z2>
1103
- <R, E, In, L, Z, R2, E2, Z2>(
1104
- self: Sink<R, E, In, L, Z>,
1105
- f: (z: Z) => Effect.Effect<R2, E2, Z2>
1106
- ): Sink<R | R2, E | E2, In, L, Z2>
1089
+ <A, A2, E2, R2>(
1090
+ f: (a: A) => Effect.Effect<A2, E2, R2>
1091
+ ): <In, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A2, In, L, E2 | E, R2 | R>
1092
+ <A, In, L, E, R, A2, E2, R2>(
1093
+ self: Sink<A, In, L, E, R>,
1094
+ f: (a: A) => Effect.Effect<A2, E2, R2>
1095
+ ): Sink<A2, In, L, E | E2, R | R2>
1107
1096
  } = internal.mapEffect
1108
1097
 
1109
1098
  /**
@@ -1113,8 +1102,8 @@ export const mapEffect: {
1113
1102
  * @category mapping
1114
1103
  */
1115
1104
  export const mapError: {
1116
- <E, E2>(f: (error: E) => E2): <R, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E2, In, L, Z>
1117
- <R, In, L, Z, E, E2>(self: Sink<R, E, In, L, Z>, f: (error: E) => E2): Sink<R, E2, In, L, Z>
1105
+ <E, E2>(f: (error: E) => E2): <A, In, L, R>(self: Sink<A, In, L, E, R>) => Sink<A, In, L, E2, R>
1106
+ <A, In, L, E, R, E2>(self: Sink<A, In, L, E, R>, f: (error: E) => E2): Sink<A, In, L, E2, R>
1118
1107
  } = internal.mapError
1119
1108
 
1120
1109
  /**
@@ -1124,8 +1113,8 @@ export const mapError: {
1124
1113
  * @category mapping
1125
1114
  */
1126
1115
  export const mapLeftover: {
1127
- <L, L2>(f: (leftover: L) => L2): <R, E, In, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, L2, Z>
1128
- <R, E, In, Z, L, L2>(self: Sink<R, E, In, L, Z>, f: (leftover: L) => L2): Sink<R, E, In, L2, Z>
1116
+ <L, L2>(f: (leftover: L) => L2): <A, In, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In, L2, E, R>
1117
+ <A, In, L, E, R, L2>(self: Sink<A, In, L, E, R>, f: (leftover: L) => L2): Sink<A, In, L2, E, R>
1129
1118
  } = internal.mapLeftover
1130
1119
 
1131
1120
  /**
@@ -1134,7 +1123,7 @@ export const mapLeftover: {
1134
1123
  * @since 2.0.0
1135
1124
  * @category constructors
1136
1125
  */
1137
- export const mkString: Sink<never, never, unknown, never, string> = internal.mkString
1126
+ export const mkString: Sink<string, unknown> = internal.mkString
1138
1127
 
1139
1128
  /**
1140
1129
  * Creates a sink which never terminates.
@@ -1142,7 +1131,7 @@ export const mkString: Sink<never, never, unknown, never, string> = internal.mkS
1142
1131
  * @since 2.0.0
1143
1132
  * @category constructors
1144
1133
  */
1145
- export const never: Sink<never, never, unknown, never, never> = internal.never
1134
+ export const never: Sink<never, unknown> = internal.never
1146
1135
 
1147
1136
  /**
1148
1137
  * Switch to another sink in case of failure
@@ -1151,13 +1140,13 @@ export const never: Sink<never, never, unknown, never, never> = internal.never
1151
1140
  * @category error handling
1152
1141
  */
1153
1142
  export const orElse: {
1154
- <R2, E2, In2, L2, Z2>(
1155
- that: LazyArg<Sink<R2, E2, In2, L2, Z2>>
1156
- ): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L2 | L, Z2 | Z>
1157
- <R, E, In, L, Z, R2, E2, In2, L2, Z2>(
1158
- self: Sink<R, E, In, L, Z>,
1159
- that: LazyArg<Sink<R2, E2, In2, L2, Z2>>
1160
- ): Sink<R | R2, E | E2, In & In2, L | L2, Z | Z2>
1143
+ <A2, In2, L2, E2, R2>(
1144
+ that: LazyArg<Sink<A2, In2, L2, E2, R2>>
1145
+ ): <A, In, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A2 | A, In & In2, L2 | L, E2 | E, R2 | R>
1146
+ <A, In, L, E, R, A2, In2, L2, E2, R2>(
1147
+ self: Sink<A, In, L, E, R>,
1148
+ that: LazyArg<Sink<A2, In2, L2, E2, R2>>
1149
+ ): Sink<A | A2, In & In2, L | L2, E | E2, R | R2>
1161
1150
  } = internal.orElse
1162
1151
 
1163
1152
  /**
@@ -1168,8 +1157,8 @@ export const orElse: {
1168
1157
  * @category context
1169
1158
  */
1170
1159
  export const provideContext: {
1171
- <R>(context: Context.Context<R>): <E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<never, E, In, L, Z>
1172
- <E, In, L, Z, R>(self: Sink<R, E, In, L, Z>, context: Context.Context<R>): Sink<never, E, In, L, Z>
1160
+ <R>(context: Context.Context<R>): <A, In, L, E>(self: Sink<A, In, L, E, R>) => Sink<A, In, L, E, never>
1161
+ <A, In, L, E, R>(self: Sink<A, In, L, E, R>, context: Context.Context<R>): Sink<A, In, L, E, never>
1173
1162
  } = internal.provideContext
1174
1163
 
1175
1164
  /**
@@ -1180,13 +1169,13 @@ export const provideContext: {
1180
1169
  * @category utils
1181
1170
  */
1182
1171
  export const race: {
1183
- <R1, E1, In1, L1, Z1>(
1184
- that: Sink<R1, E1, In1, L1, Z1>
1185
- ): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R1 | R, E1 | E, In & In1, L1 | L, Z1 | Z>
1186
- <R, E, In, L, Z, R1, E1, In1, L1, Z1>(
1187
- self: Sink<R, E, In, L, Z>,
1188
- that: Sink<R1, E1, In1, L1, Z1>
1189
- ): Sink<R | R1, E | E1, In & In1, L | L1, Z | Z1>
1172
+ <R1, E1, In1, L1, A1>(
1173
+ that: Sink<A1, In1, L1, E1, R1>
1174
+ ): <R, E, In, L, A>(self: Sink<A, In, L, E, R>) => Sink<A1 | A, In & In1, L1 | L, E1 | E, R1 | R>
1175
+ <A, In, L, E, R, A1, In1, L1, E1, R1>(
1176
+ self: Sink<A, In, L, E, R>,
1177
+ that: Sink<A1, In1, L1, E1, R1>
1178
+ ): Sink<A | A1, In & In1, L | L1, E | E1, R | R1>
1190
1179
  } = internal.race
1191
1180
 
1192
1181
  /**
@@ -1197,19 +1186,15 @@ export const race: {
1197
1186
  * @category utils
1198
1187
  */
1199
1188
  export const raceBoth: {
1200
- <R1, E1, In1, L1, Z1>(
1201
- that: Sink<R1, E1, In1, L1, Z1>,
1202
- options?: {
1203
- readonly capacity?: number | undefined
1204
- }
1205
- ): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R1 | R, E1 | E, In & In1, L1 | L, Either.Either<Z, Z1>>
1206
- <R, E, In, L, Z, R1, E1, In1, L1, Z1>(
1207
- self: Sink<R, E, In, L, Z>,
1208
- that: Sink<R1, E1, In1, L1, Z1>,
1209
- options?: {
1210
- readonly capacity?: number | undefined
1211
- }
1212
- ): Sink<R | R1, E | E1, In & In1, L | L1, Either.Either<Z, Z1>>
1189
+ <A1, In1, L1, E1, R1>(
1190
+ that: Sink<A1, In1, L1, E1, R1>,
1191
+ options?: { readonly capacity?: number | undefined } | undefined
1192
+ ): <A, In, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<Either.Either<A, A1>, In & In1, L1 | L, E1 | E, R1 | R>
1193
+ <A, In, L, E, R, A1, In1, L1, E1, R1>(
1194
+ self: Sink<A, In, L, E, R>,
1195
+ that: Sink<A1, In1, L1, E1, R1>,
1196
+ options?: { readonly capacity?: number | undefined } | undefined
1197
+ ): Sink<Either.Either<A, A1>, In & In1, L | L1, E | E1, R | R1>
1213
1198
  } = internal.raceBoth
1214
1199
 
1215
1200
  /**
@@ -1220,23 +1205,23 @@ export const raceBoth: {
1220
1205
  * @category utils
1221
1206
  */
1222
1207
  export const raceWith: {
1223
- <R2, E2, In2, L2, Z2, E, Z, Z3, Z4>(
1208
+ <A2, In2, L2, E2, R2, A, E, A3, A4>(
1224
1209
  options: {
1225
- readonly other: Sink<R2, E2, In2, L2, Z2>
1226
- readonly onSelfDone: (exit: Exit.Exit<E, Z>) => MergeDecision.MergeDecision<R2, E2, Z2, E2 | E, Z3>
1227
- readonly onOtherDone: (exit: Exit.Exit<E2, Z2>) => MergeDecision.MergeDecision<R2, E, Z, E2 | E, Z4>
1210
+ readonly other: Sink<A2, In2, L2, E2, R2>
1211
+ readonly onSelfDone: (exit: Exit.Exit<A, E>) => MergeDecision.MergeDecision<R2, E2, A2, E2 | E, A3>
1212
+ readonly onOtherDone: (exit: Exit.Exit<A2, E2>) => MergeDecision.MergeDecision<R2, E, A, E2 | E, A4>
1228
1213
  readonly capacity?: number | undefined
1229
1214
  }
1230
- ): <R, In, L>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L2 | L, Z3 | Z4>
1231
- <R, In, L, R2, E2, In2, L2, Z2, E, Z, Z3, Z4>(
1232
- self: Sink<R, E, In, L, Z>,
1215
+ ): <In, L, R>(self: Sink<A, In, L, E, R>) => Sink<A3 | A4, In & In2, L2 | L, E2 | E, R2 | R>
1216
+ <A, In, L, E, R, A2, In2, L2, E2, R2, A3, A4>(
1217
+ self: Sink<A, In, L, E, R>,
1233
1218
  options: {
1234
- readonly other: Sink<R2, E2, In2, L2, Z2>
1235
- readonly onSelfDone: (exit: Exit.Exit<E, Z>) => MergeDecision.MergeDecision<R2, E2, Z2, E2 | E, Z3>
1236
- readonly onOtherDone: (exit: Exit.Exit<E2, Z2>) => MergeDecision.MergeDecision<R2, E, Z, E2 | E, Z4>
1219
+ readonly other: Sink<A2, In2, L2, E2, R2>
1220
+ readonly onSelfDone: (exit: Exit.Exit<A, E>) => MergeDecision.MergeDecision<R2, E2, A2, E | E2, A3>
1221
+ readonly onOtherDone: (exit: Exit.Exit<A2, E2>) => MergeDecision.MergeDecision<R2, E, A, E | E2, A4>
1237
1222
  readonly capacity?: number | undefined
1238
1223
  }
1239
- ): Sink<R | R2, E2 | E, In & In2, L | L2, Z3 | Z4>
1224
+ ): Sink<A3 | A4, In & In2, L | L2, E | E2, R | R2>
1240
1225
  } = internal.raceWith
1241
1226
 
1242
1227
  /**
@@ -1244,18 +1229,25 @@ export const raceWith: {
1244
1229
  * @category error handling
1245
1230
  */
1246
1231
  export const refineOrDie: {
1247
- <E, E2>(pf: (error: E) => Option.Option<E2>): <R, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E2, In, L, Z>
1248
- <R, In, L, Z, E, E2>(self: Sink<R, E, In, L, Z>, pf: (error: E) => Option.Option<E2>): Sink<R, E2, In, L, Z>
1232
+ <E, E2>(pf: (error: E) => Option.Option<E2>): <A, In, L, R>(self: Sink<A, In, L, E, R>) => Sink<A, In, L, E2, R>
1233
+ <A, In, L, E, R, E2>(self: Sink<A, In, L, E, R>, pf: (error: E) => Option.Option<E2>): Sink<A, In, L, E2, R>
1249
1234
  } = internal.refineOrDie
1250
1235
 
1251
1236
  /**
1252
1237
  * @since 2.0.0
1253
1238
  * @category error handling
1254
1239
  */
1255
- export const refineOrDieWith: <E, E2>(
1256
- pf: (error: E) => Option.Option<E2>,
1257
- f: (error: E) => unknown
1258
- ) => <R, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E2, In, L, Z> = internal.refineOrDieWith
1240
+ export const refineOrDieWith: {
1241
+ <E, E2>(
1242
+ pf: (error: E) => Option.Option<E2>,
1243
+ f: (error: E) => unknown
1244
+ ): <A, In, L, R>(self: Sink<A, In, L, E, R>) => Sink<A, In, L, E2, R>
1245
+ <A, In, L, E, R, E2>(
1246
+ self: Sink<A, In, L, E, R>,
1247
+ pf: (error: E) => Option.Option<E2>,
1248
+ f: (error: E) => unknown
1249
+ ): Sink<A, In, L, E2, R>
1250
+ } = internal.refineOrDieWith
1259
1251
 
1260
1252
  /**
1261
1253
  * A sink that returns whether an element satisfies the specified predicate.
@@ -1263,7 +1255,7 @@ export const refineOrDieWith: <E, E2>(
1263
1255
  * @since 2.0.0
1264
1256
  * @category constructors
1265
1257
  */
1266
- export const some: <In>(predicate: Predicate<In>) => Sink<never, never, In, In, boolean> = internal.some
1258
+ export const some: <In>(predicate: Predicate<In>) => Sink<boolean, In, In> = internal.some
1267
1259
 
1268
1260
  /**
1269
1261
  * Splits the sink on the specified predicate, returning a new sink that
@@ -1274,8 +1266,8 @@ export const some: <In>(predicate: Predicate<In>) => Sink<never, never, In, In,
1274
1266
  * @category utils
1275
1267
  */
1276
1268
  export const splitWhere: {
1277
- <In>(f: Predicate<In>): <R, E, L extends In, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, In, Z>
1278
- <R, E, L extends In, Z, In>(self: Sink<R, E, In, L, Z>, f: Predicate<In>): Sink<R, E, In, In, Z>
1269
+ <In>(f: Predicate<In>): <A, L extends In, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In, In, E, R>
1270
+ <A, In, L extends In, E, R>(self: Sink<A, In, L, E, R>, f: Predicate<In>): Sink<A, In, In, E, R>
1279
1271
  } = internal.splitWhere
1280
1272
 
1281
1273
  /**
@@ -1284,7 +1276,7 @@ export const splitWhere: {
1284
1276
  * @since 2.0.0
1285
1277
  * @category constructors
1286
1278
  */
1287
- export const succeed: <Z>(z: Z) => Sink<never, never, unknown, never, Z> = internal.succeed
1279
+ export const succeed: <A>(a: A) => Sink<A, unknown> = internal.succeed
1288
1280
 
1289
1281
  /**
1290
1282
  * A sink that sums incoming numeric values.
@@ -1292,7 +1284,7 @@ export const succeed: <Z>(z: Z) => Sink<never, never, unknown, never, Z> = inter
1292
1284
  * @since 2.0.0
1293
1285
  * @category constructors
1294
1286
  */
1295
- export const sum: Sink<never, never, number, never, number> = internal.sum
1287
+ export const sum: Sink<number, number> = internal.sum
1296
1288
 
1297
1289
  /**
1298
1290
  * Summarize a sink by running an effect when the sink starts and again when
@@ -1302,15 +1294,15 @@ export const sum: Sink<never, never, number, never, number> = internal.sum
1302
1294
  * @category utils
1303
1295
  */
1304
1296
  export const summarized: {
1305
- <R2, E2, Z2, Z3>(
1306
- summary: Effect.Effect<R2, E2, Z2>,
1307
- f: (start: Z2, end: Z2) => Z3
1308
- ): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In, L, [Z, Z3]>
1309
- <R, E, In, L, Z, R2, E2, Z2, Z3>(
1310
- self: Sink<R, E, In, L, Z>,
1311
- summary: Effect.Effect<R2, E2, Z2>,
1312
- f: (start: Z2, end: Z2) => Z3
1313
- ): Sink<R | R2, E | E2, In, L, [Z, Z3]>
1297
+ <A2, E2, R2, A3>(
1298
+ summary: Effect.Effect<A2, E2, R2>,
1299
+ f: (start: A2, end: A2) => A3
1300
+ ): <A, In, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<[A, A3], In, L, E2 | E, R2 | R>
1301
+ <A, In, L, E, R, A2, E2, R2, A3>(
1302
+ self: Sink<A, In, L, E, R>,
1303
+ summary: Effect.Effect<A2, E2, R2>,
1304
+ f: (start: A2, end: A2) => A3
1305
+ ): Sink<[A, A3], In, L, E | E2, R | R2>
1314
1306
  } = internal.summarized
1315
1307
 
1316
1308
  /**
@@ -1320,7 +1312,7 @@ export const summarized: {
1320
1312
  * @since 2.0.0
1321
1313
  * @category constructors
1322
1314
  */
1323
- export const suspend: <R, E, In, L, Z>(evaluate: LazyArg<Sink<R, E, In, L, Z>>) => Sink<R, E, In, L, Z> =
1315
+ export const suspend: <A, In, L, E, R>(evaluate: LazyArg<Sink<A, In, L, E, R>>) => Sink<A, In, L, E, R> =
1324
1316
  internal.suspend
1325
1317
 
1326
1318
  /**
@@ -1329,7 +1321,7 @@ export const suspend: <R, E, In, L, Z>(evaluate: LazyArg<Sink<R, E, In, L, Z>>)
1329
1321
  * @since 2.0.0
1330
1322
  * @category constructors
1331
1323
  */
1332
- export const sync: <Z>(evaluate: LazyArg<Z>) => Sink<never, never, unknown, never, Z> = internal.sync
1324
+ export const sync: <A>(evaluate: LazyArg<A>) => Sink<A, unknown> = internal.sync
1333
1325
 
1334
1326
  /**
1335
1327
  * A sink that takes the specified number of values.
@@ -1337,13 +1329,13 @@ export const sync: <Z>(evaluate: LazyArg<Z>) => Sink<never, never, unknown, neve
1337
1329
  * @since 2.0.0
1338
1330
  * @category constructors
1339
1331
  */
1340
- export const take: <In>(n: number) => Sink<never, never, In, In, Chunk.Chunk<In>> = internal.take
1332
+ export const take: <In>(n: number) => Sink<Chunk.Chunk<In>, In, In> = internal.take
1341
1333
 
1342
1334
  /**
1343
1335
  * @since 2.0.0
1344
1336
  * @category constructors
1345
1337
  */
1346
- export const timed: Sink<never, never, unknown, never, Duration.Duration> = internal.timed
1338
+ export const timed: Sink<Duration.Duration, unknown> = internal.timed
1347
1339
 
1348
1340
  /**
1349
1341
  * Creates a sink produced from an effect.
@@ -1351,9 +1343,9 @@ export const timed: Sink<never, never, unknown, never, Duration.Duration> = inte
1351
1343
  * @since 2.0.0
1352
1344
  * @category constructors
1353
1345
  */
1354
- export const unwrap: <R, E, R2, E2, In, L, Z>(
1355
- effect: Effect.Effect<R, E, Sink<R2, E2, In, L, Z>>
1356
- ) => Sink<R | R2, E | E2, In, L, Z> = internal.unwrap
1346
+ export const unwrap: <A, In, L, E2, R2, E, R>(
1347
+ effect: Effect.Effect<Sink<A, In, L, E2, R2>, E, R>
1348
+ ) => Sink<A, In, L, E2 | E, R2 | R> = internal.unwrap
1357
1349
 
1358
1350
  /**
1359
1351
  * Creates a sink produced from a scoped effect.
@@ -1361,9 +1353,9 @@ export const unwrap: <R, E, R2, E2, In, L, Z>(
1361
1353
  * @since 2.0.0
1362
1354
  * @category constructors
1363
1355
  */
1364
- export const unwrapScoped: <R, E, In, L, Z>(
1365
- effect: Effect.Effect<R, E, Sink<R, E, In, L, Z>>
1366
- ) => Sink<Exclude<R, Scope.Scope>, E, In, L, Z> = internal.unwrapScoped
1356
+ export const unwrapScoped: <A, In, L, E, R>(
1357
+ effect: Effect.Effect<Sink<A, In, L, E, R>, E, R>
1358
+ ) => Sink<A, In, L, E, Exclude<R, Scope.Scope>> = internal.unwrapScoped
1367
1359
 
1368
1360
  /**
1369
1361
  * Returns the sink that executes this one and times its execution.
@@ -1371,9 +1363,9 @@ export const unwrapScoped: <R, E, In, L, Z>(
1371
1363
  * @since 2.0.0
1372
1364
  * @category utils
1373
1365
  */
1374
- export const withDuration: <R, E, In, L, Z>(
1375
- self: Sink<R, E, In, L, Z>
1376
- ) => Sink<R, E, In, L, [Z, Duration.Duration]> = internal.withDuration
1366
+ export const withDuration: <A, In, L, E, R>(
1367
+ self: Sink<A, In, L, E, R>
1368
+ ) => Sink<[A, Duration.Duration], In, L, E, R> = internal.withDuration
1377
1369
 
1378
1370
  /**
1379
1371
  * Feeds inputs to this sink until it yields a result, then switches over to
@@ -1384,19 +1376,15 @@ export const withDuration: <R, E, In, L, Z>(
1384
1376
  * @category zipping
1385
1377
  */
1386
1378
  export const zip: {
1387
- <R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1388
- that: Sink<R2, E2, In2, L2, Z2>,
1389
- options?: {
1390
- readonly concurrent?: boolean | undefined
1391
- }
1392
- ): <R, E>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L | L2, [Z, Z2]>
1393
- <R, E, R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1394
- self: Sink<R, E, In, L, Z>,
1395
- that: Sink<R2, E2, In2, L2, Z2>,
1396
- options?: {
1397
- readonly concurrent?: boolean | undefined
1398
- }
1399
- ): Sink<R | R2, E | E2, In & In2, L | L2, [Z, Z2]>
1379
+ <A2, In, In2 extends In, L2, E2, R2>(
1380
+ that: Sink<A2, In2, L2, E2, R2>,
1381
+ options?: { readonly concurrent?: boolean | undefined } | undefined
1382
+ ): <A, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<[A, A2], In & In2, L2 | L, E2 | E, R2 | R>
1383
+ <A, In, L, E, R, A2, In2 extends In, L2, E2, R2>(
1384
+ self: Sink<A, In, L, E, R>,
1385
+ that: Sink<A2, In2, L2, E2, R2>,
1386
+ options?: { readonly concurrent?: boolean | undefined } | undefined
1387
+ ): Sink<[A, A2], In & In2, L | L2, E | E2, R | R2>
1400
1388
  } = internal.zip
1401
1389
 
1402
1390
  /**
@@ -1406,19 +1394,15 @@ export const zip: {
1406
1394
  * @category zipping
1407
1395
  */
1408
1396
  export const zipLeft: {
1409
- <R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1410
- that: Sink<R2, E2, In2, L2, Z2>,
1411
- options?: {
1412
- readonly concurrent?: boolean | undefined
1413
- }
1414
- ): <R, E>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L | L2, Z>
1415
- <R, E, R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1416
- self: Sink<R, E, In, L, Z>,
1417
- that: Sink<R2, E2, In2, L2, Z2>,
1418
- options?: {
1419
- readonly concurrent?: boolean | undefined
1420
- }
1421
- ): Sink<R | R2, E | E2, In & In2, L | L2, Z>
1397
+ <A2, In, In2 extends In, L2, E2, R2>(
1398
+ that: Sink<A2, In2, L2, E2, R2>,
1399
+ options?: { readonly concurrent?: boolean | undefined } | undefined
1400
+ ): <A, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A, In & In2, L2 | L, E2 | E, R2 | R>
1401
+ <A, In, L, E, R, A2, In2 extends In, L2, E2, R2>(
1402
+ self: Sink<A, In, L, E, R>,
1403
+ that: Sink<A2, In2, L2, E2, R2>,
1404
+ options?: { readonly concurrent?: boolean | undefined } | undefined
1405
+ ): Sink<A, In & In2, L | L2, E | E2, R | R2>
1422
1406
  } = internal.zipLeft
1423
1407
 
1424
1408
  /**
@@ -1428,19 +1412,15 @@ export const zipLeft: {
1428
1412
  * @category zipping
1429
1413
  */
1430
1414
  export const zipRight: {
1431
- <R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1432
- that: Sink<R2, E2, In2, L2, Z2>,
1433
- options?: {
1434
- readonly concurrent?: boolean | undefined
1435
- }
1436
- ): <R, E>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L | L2, Z2>
1437
- <R, E, R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1438
- self: Sink<R, E, In, L, Z>,
1439
- that: Sink<R2, E2, In2, L2, Z2>,
1440
- options?: {
1441
- readonly concurrent?: boolean | undefined
1442
- }
1443
- ): Sink<R | R2, E | E2, In & In2, L | L2, Z2>
1415
+ <A2, In, In2 extends In, L2, E2, R2>(
1416
+ that: Sink<A2, In2, L2, E2, R2>,
1417
+ options?: { readonly concurrent?: boolean | undefined } | undefined
1418
+ ): <A, L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A2, In & In2, L2 | L, E2 | E, R2 | R>
1419
+ <A, In, L, E, R, A2, In2 extends In, L2, E2, R2>(
1420
+ self: Sink<A, In, L, E, R>,
1421
+ that: Sink<A2, In2, L2, E2, R2>,
1422
+ options?: { readonly concurrent?: boolean | undefined } | undefined
1423
+ ): Sink<A2, In & In2, L | L2, E | E2, R | R2>
1444
1424
  } = internal.zipRight
1445
1425
 
1446
1426
  /**
@@ -1452,19 +1432,15 @@ export const zipRight: {
1452
1432
  * @category zipping
1453
1433
  */
1454
1434
  export const zipWith: {
1455
- <R2, E2, In, In2 extends In, L, L2, Z, Z2, Z3>(
1456
- that: Sink<R2, E2, In2, L2, Z2>,
1457
- f: (z: Z, z1: Z2) => Z3,
1458
- options?: {
1459
- readonly concurrent?: boolean | undefined
1460
- }
1461
- ): <R, E>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L | L2, Z3>
1462
- <R, E, R2, E2, In, In2 extends In, L, L2, Z, Z2, Z3>(
1463
- self: Sink<R, E, In, L, Z>,
1464
- that: Sink<R2, E2, In2, L2, Z2>,
1465
- f: (z: Z, z1: Z2) => Z3,
1466
- options?: {
1467
- readonly concurrent?: boolean | undefined
1468
- }
1469
- ): Sink<R | R2, E | E2, In & In2, L | L2, Z3>
1435
+ <A2, In, In2 extends In, L2, E2, R2, A, A3>(
1436
+ that: Sink<A2, In2, L2, E2, R2>,
1437
+ f: (a: A, a2: A2) => A3,
1438
+ options?: { readonly concurrent?: boolean | undefined } | undefined
1439
+ ): <L, E, R>(self: Sink<A, In, L, E, R>) => Sink<A3, In & In2, L2 | L, E2 | E, R2 | R>
1440
+ <A, In, L, E, R, A2, In2 extends In, L2, E2, R2, A3>(
1441
+ self: Sink<A, In, L, E, R>,
1442
+ that: Sink<A2, In2, L2, E2, R2>,
1443
+ f: (a: A, a2: A2) => A3,
1444
+ options?: { readonly concurrent?: boolean | undefined } | undefined
1445
+ ): Sink<A3, In & In2, L | L2, E | E2, R | R2>
1470
1446
  } = internal.zipWith