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
@@ -54,7 +54,7 @@ const proto = {
54
54
  }
55
55
 
56
56
  /** @internal */
57
- type ErasedChannel = Channel.Channel<never, unknown, unknown, unknown, never, never, never>
57
+ type ErasedChannel = Channel.Channel<never, unknown, never, unknown, never, unknown>
58
58
 
59
59
  /** @internal */
60
60
  export type Op<Tag extends string, Body = {}> =
@@ -203,13 +203,13 @@ export const isChannel = (u: unknown): u is Channel.Channel<
203
203
 
204
204
  /** @internal */
205
205
  export const acquireReleaseOut = dual<
206
- <R2, Z>(
207
- release: (z: Z, e: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, unknown>
208
- ) => <R, E>(self: Effect.Effect<R, E, Z>) => Channel.Channel<R | R2, unknown, unknown, unknown, E, Z, void>,
209
- <R, R2, E, Z>(
210
- self: Effect.Effect<R, E, Z>,
211
- release: (z: Z, e: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, unknown>
212
- ) => Channel.Channel<R | R2, unknown, unknown, unknown, E, Z, void>
206
+ <Z, R2>(
207
+ release: (z: Z, e: Exit.Exit<unknown, unknown>) => Effect.Effect<unknown, never, R2>
208
+ ) => <E, R>(self: Effect.Effect<Z, E, R>) => Channel.Channel<Z, unknown, E, unknown, void, unknown, R | R2>,
209
+ <Z, E, R, R2>(
210
+ self: Effect.Effect<Z, E, R>,
211
+ release: (z: Z, e: Exit.Exit<unknown, unknown>) => Effect.Effect<unknown, never, R2>
212
+ ) => Channel.Channel<Z, unknown, E, unknown, void, unknown, R | R2>
213
213
  >(2, (self, release) => {
214
214
  const op = Object.create(proto)
215
215
  op._tag = OpCodes.OP_BRACKET_OUT
@@ -220,44 +220,44 @@ export const acquireReleaseOut = dual<
220
220
 
221
221
  /** @internal */
222
222
  export const catchAllCause = dual<
223
- <Env1, InErr1, InElem1, InDone1, OutErr, OutErr1, OutElem1, OutDone1>(
224
- f: (cause: Cause.Cause<OutErr>) => Channel.Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
225
- ) => <Env, InErr, InElem, InDone, OutElem, OutDone>(
226
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
223
+ <OutErr, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
224
+ f: (cause: Cause.Cause<OutErr>) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
225
+ ) => <OutElem, InElem, InErr, OutDone, InDone, Env>(
226
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
227
227
  ) => Channel.Channel<
228
- Env1 | Env,
229
- InErr & InErr1,
228
+ OutElem1 | OutElem,
230
229
  InElem & InElem1,
231
- InDone & InDone1,
232
230
  OutErr1,
233
- OutElem1 | OutElem,
234
- OutDone1 | OutDone
231
+ InErr & InErr1,
232
+ OutDone1 | OutDone,
233
+ InDone & InDone1,
234
+ Env1 | Env
235
235
  >,
236
- <Env, InErr, InElem, InDone, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr, OutErr1, OutElem1, OutDone1>(
237
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
238
- f: (cause: Cause.Cause<OutErr>) => Channel.Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
236
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
237
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
238
+ f: (cause: Cause.Cause<OutErr>) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
239
239
  ) => Channel.Channel<
240
- Env1 | Env,
241
- InErr & InErr1,
240
+ OutElem1 | OutElem,
242
241
  InElem & InElem1,
243
- InDone & InDone1,
244
242
  OutErr1,
245
- OutElem1 | OutElem,
246
- OutDone1 | OutDone
243
+ InErr & InErr1,
244
+ OutDone1 | OutDone,
245
+ InDone & InDone1,
246
+ Env1 | Env
247
247
  >
248
248
  >(
249
249
  2,
250
- <Env, InErr, InElem, InDone, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr, OutErr1, OutElem1, OutDone1>(
251
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
252
- f: (cause: Cause.Cause<OutErr>) => Channel.Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
250
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
251
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
252
+ f: (cause: Cause.Cause<OutErr>) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
253
253
  ): Channel.Channel<
254
- Env | Env1,
255
- InErr & InErr1,
254
+ OutElem | OutElem1,
256
255
  InElem & InElem1,
257
- InDone & InDone1,
258
256
  OutErr1,
259
- OutElem | OutElem1,
260
- OutDone | OutDone1
257
+ InErr & InErr1,
258
+ OutDone | OutDone1,
259
+ InDone & InDone1,
260
+ Env | Env1
261
261
  > => {
262
262
  const op = Object.create(proto)
263
263
  op._tag = OpCodes.OP_FOLD
@@ -269,16 +269,8 @@ export const catchAllCause = dual<
269
269
 
270
270
  /** @internal */
271
271
  export const collectElements = <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
272
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
273
- ): Channel.Channel<
274
- Env,
275
- InErr,
276
- InElem,
277
- InDone,
278
- OutErr,
279
- never,
280
- [Chunk.Chunk<OutElem>, OutDone]
281
- > => {
272
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
273
+ ): Channel.Channel<never, InElem, OutErr, InErr, [Chunk.Chunk<OutElem>, OutDone], InDone, Env> => {
282
274
  return suspend(() => {
283
275
  const builder: Array<OutElem> = []
284
276
  return flatMap(
@@ -291,7 +283,7 @@ export const collectElements = <Env, InErr, InElem, InDone, OutErr, OutElem, Out
291
283
  /** @internal */
292
284
  const collectElementsReader = <OutErr, OutElem, OutDone>(
293
285
  builder: Array<OutElem>
294
- ): Channel.Channel<never, OutErr, OutElem, OutDone, OutErr, never, OutDone> =>
286
+ ): Channel.Channel<never, OutElem, OutErr, OutErr, OutDone, OutDone> =>
295
287
  readWith({
296
288
  onInput: (outElem) =>
297
289
  flatMap(
@@ -305,54 +297,54 @@ const collectElementsReader = <OutErr, OutElem, OutDone>(
305
297
  })
306
298
 
307
299
  /** @internal */
308
- export const concatAll = <Env, InErr, InElem, InDone, OutErr, OutElem>(
300
+ export const concatAll = <OutElem, InElem, OutErr, InErr, InDone, Env>(
309
301
  channels: Channel.Channel<
310
- Env,
311
- InErr,
302
+ Channel.Channel<OutElem, InElem, OutErr, InErr, any, InDone, Env>,
312
303
  InElem,
313
- InDone,
314
304
  OutErr,
315
- Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, any>,
316
- any
305
+ InErr,
306
+ any,
307
+ InDone,
308
+ Env
317
309
  >
318
- ): Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, any> => concatAllWith(channels, constVoid, constVoid)
310
+ ): Channel.Channel<OutElem, InElem, OutErr, InErr, any, InDone, Env> => concatAllWith(channels, constVoid, constVoid)
319
311
 
320
312
  /** @internal */
321
313
  export const concatAllWith = <
322
- Env,
323
- InErr,
324
- InElem,
325
- InDone,
326
- OutErr,
327
314
  OutElem,
328
- OutDone,
329
- OutDone2,
330
- OutDone3,
331
- Env2,
332
- InErr2,
333
315
  InElem2,
316
+ OutErr2,
317
+ InErr2,
318
+ OutDone,
334
319
  InDone2,
335
- OutErr2
320
+ Env2,
321
+ InElem,
322
+ OutErr,
323
+ InErr,
324
+ OutDone2,
325
+ InDone,
326
+ Env,
327
+ OutDone3
336
328
  >(
337
329
  channels: Channel.Channel<
338
- Env,
339
- InErr,
330
+ Channel.Channel<OutElem, InElem2, OutErr2, InErr2, OutDone, InDone2, Env2>,
340
331
  InElem,
341
- InDone,
342
332
  OutErr,
343
- Channel.Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem, OutDone>,
344
- OutDone2
333
+ InErr,
334
+ OutDone2,
335
+ InDone,
336
+ Env
345
337
  >,
346
338
  f: (o: OutDone, o1: OutDone) => OutDone,
347
339
  g: (o: OutDone, o2: OutDone2) => OutDone3
348
340
  ): Channel.Channel<
349
- Env | Env2,
350
- InErr & InErr2,
341
+ OutElem,
351
342
  InElem & InElem2,
352
- InDone & InDone2,
353
343
  OutErr | OutErr2,
354
- OutElem,
355
- OutDone3
344
+ InErr & InErr2,
345
+ OutDone3,
346
+ InDone & InDone2,
347
+ Env | Env2
356
348
  > => {
357
349
  const op = Object.create(proto)
358
350
  op._tag = OpCodes.OP_CONCAT_ALL
@@ -367,50 +359,50 @@ export const concatAllWith = <
367
359
 
368
360
  /** @internal */
369
361
  export const concatMapWith = dual<
370
- <OutElem, OutElem2, OutDone, OutDone2, OutDone3, Env2, InErr2, InElem2, InDone2, OutErr2>(
371
- f: (o: OutElem) => Channel.Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone>,
362
+ <OutElem, OutElem2, InElem2, OutErr2, InErr2, OutDone, InDone2, Env2, OutDone2, OutDone3>(
363
+ f: (o: OutElem) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, OutDone, InDone2, Env2>,
372
364
  g: (o: OutDone, o1: OutDone) => OutDone,
373
365
  h: (o: OutDone, o2: OutDone2) => OutDone3
374
366
  ) => <Env, InErr, InElem, InDone, OutErr>(
375
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>
367
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env>
376
368
  ) => Channel.Channel<
377
- Env2 | Env,
378
- InErr & InErr2,
369
+ OutElem2,
379
370
  InElem & InElem2,
380
- InDone & InDone2,
381
371
  OutErr2 | OutErr,
382
- OutElem2,
383
- OutDone3
372
+ InErr & InErr2,
373
+ OutDone3,
374
+ InDone & InDone2,
375
+ Env2 | Env
384
376
  >,
385
377
  <
386
- Env,
387
- InErr,
378
+ OutElem,
388
379
  InElem,
389
- InDone,
390
380
  OutErr,
391
- OutElem,
392
- OutElem2,
393
- OutDone,
381
+ InErr,
394
382
  OutDone2,
395
- OutDone3,
396
- Env2,
397
- InErr2,
383
+ InDone,
384
+ Env,
385
+ OutElem2,
398
386
  InElem2,
387
+ OutErr2,
388
+ InErr2,
389
+ OutDone,
399
390
  InDone2,
400
- OutErr2
391
+ Env2,
392
+ OutDone3
401
393
  >(
402
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>,
403
- f: (o: OutElem) => Channel.Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone>,
394
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env>,
395
+ f: (o: OutElem) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, OutDone, InDone2, Env2>,
404
396
  g: (o: OutDone, o1: OutDone) => OutDone,
405
397
  h: (o: OutDone, o2: OutDone2) => OutDone3
406
398
  ) => Channel.Channel<
407
- Env2 | Env,
408
- InErr & InErr2,
399
+ OutElem2,
409
400
  InElem & InElem2,
410
- InDone & InDone2,
411
401
  OutErr2 | OutErr,
412
- OutElem2,
413
- OutDone3
402
+ InErr & InErr2,
403
+ OutDone3,
404
+ InDone & InDone2,
405
+ Env2 | Env
414
406
  >
415
407
  >(4, <
416
408
  Env,
@@ -429,20 +421,20 @@ export const concatMapWith = dual<
429
421
  InDone2,
430
422
  OutErr2
431
423
  >(
432
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>,
424
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env>,
433
425
  f: (
434
426
  o: OutElem
435
- ) => Channel.Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone>,
427
+ ) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, OutDone, InDone2, Env2>,
436
428
  g: (o: OutDone, o1: OutDone) => OutDone,
437
429
  h: (o: OutDone, o2: OutDone2) => OutDone3
438
430
  ): Channel.Channel<
439
- Env | Env2,
440
- InErr & InErr2,
431
+ OutElem2,
441
432
  InElem & InElem2,
442
- InDone & InDone2,
443
433
  OutErr | OutErr2,
444
- OutElem2,
445
- OutDone3
434
+ InErr & InErr2,
435
+ OutDone3,
436
+ InDone & InDone2,
437
+ Env | Env2
446
438
  > => {
447
439
  const op = Object.create(proto)
448
440
  op._tag = OpCodes.OP_CONCAT_ALL
@@ -457,8 +449,8 @@ export const concatMapWith = dual<
457
449
 
458
450
  /** @internal */
459
451
  export const concatMapWithCustom = dual<
460
- <OutElem, OutElem2, OutDone, OutDone2, OutDone3, Env2, InErr2, InElem2, InDone2, OutErr2>(
461
- f: (o: OutElem) => Channel.Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone>,
452
+ <OutElem, OutElem2, InElem2, OutErr2, InErr2, OutDone, InDone2, Env2, OutDone2, OutDone3>(
453
+ f: (o: OutElem) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, OutDone, InDone2, Env2>,
462
454
  g: (o: OutDone, o1: OutDone) => OutDone,
463
455
  h: (o: OutDone, o2: OutDone2) => OutDone3,
464
456
  onPull: (
@@ -466,35 +458,35 @@ export const concatMapWithCustom = dual<
466
458
  ) => UpstreamPullStrategy.UpstreamPullStrategy<OutElem2>,
467
459
  onEmit: (elem: OutElem2) => ChildExecutorDecision.ChildExecutorDecision
468
460
  ) => <Env, InErr, InElem, InDone, OutErr>(
469
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>
461
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env>
470
462
  ) => Channel.Channel<
471
- Env2 | Env,
472
- InErr & InErr2,
463
+ OutElem2,
473
464
  InElem & InElem2,
474
- InDone & InDone2,
475
465
  OutErr2 | OutErr,
476
- OutElem2,
477
- OutDone3
466
+ InErr & InErr2,
467
+ OutDone3,
468
+ InDone & InDone2,
469
+ Env2 | Env
478
470
  >,
479
471
  <
480
- Env,
481
- InErr,
472
+ OutElem,
482
473
  InElem,
483
- InDone,
484
474
  OutErr,
485
- OutElem,
486
- OutElem2,
487
- OutDone,
475
+ InErr,
488
476
  OutDone2,
489
- OutDone3,
490
- Env2,
491
- InErr2,
477
+ InDone,
478
+ Env,
479
+ OutElem2,
492
480
  InElem2,
481
+ OutErr2,
482
+ InErr2,
483
+ OutDone,
493
484
  InDone2,
494
- OutErr2
485
+ Env2,
486
+ OutDone3
495
487
  >(
496
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>,
497
- f: (o: OutElem) => Channel.Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone>,
488
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env>,
489
+ f: (o: OutElem) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, OutDone, InDone2, Env2>,
498
490
  g: (o: OutDone, o1: OutDone) => OutDone,
499
491
  h: (o: OutDone, o2: OutDone2) => OutDone3,
500
492
  onPull: (
@@ -502,13 +494,13 @@ export const concatMapWithCustom = dual<
502
494
  ) => UpstreamPullStrategy.UpstreamPullStrategy<OutElem2>,
503
495
  onEmit: (elem: OutElem2) => ChildExecutorDecision.ChildExecutorDecision
504
496
  ) => Channel.Channel<
505
- Env2 | Env,
506
- InErr & InErr2,
497
+ OutElem2,
507
498
  InElem & InElem2,
508
- InDone & InDone2,
509
499
  OutErr2 | OutErr,
510
- OutElem2,
511
- OutDone3
500
+ InErr & InErr2,
501
+ OutDone3,
502
+ InDone & InDone2,
503
+ Env2 | Env
512
504
  >
513
505
  >(6, <
514
506
  Env,
@@ -527,10 +519,10 @@ export const concatMapWithCustom = dual<
527
519
  InDone2,
528
520
  OutErr2
529
521
  >(
530
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>,
522
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env>,
531
523
  f: (
532
524
  o: OutElem
533
- ) => Channel.Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone>,
525
+ ) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, OutDone, InDone2, Env2>,
534
526
  g: (o: OutDone, o1: OutDone) => OutDone,
535
527
  h: (o: OutDone, o2: OutDone2) => OutDone3,
536
528
  onPull: (
@@ -538,13 +530,13 @@ export const concatMapWithCustom = dual<
538
530
  ) => UpstreamPullStrategy.UpstreamPullStrategy<OutElem2>,
539
531
  onEmit: (elem: OutElem2) => ChildExecutorDecision.ChildExecutorDecision
540
532
  ): Channel.Channel<
541
- Env | Env2,
542
- InErr & InErr2,
533
+ OutElem2,
543
534
  InElem & InElem2,
544
- InDone & InDone2,
545
535
  OutErr | OutErr2,
546
- OutElem2,
547
- OutDone3
536
+ InErr & InErr2,
537
+ OutDone3,
538
+ InDone & InDone2,
539
+ Env | Env2
548
540
  > => {
549
541
  const op = Object.create(proto)
550
542
  op._tag = OpCodes.OP_CONCAT_ALL
@@ -561,19 +553,19 @@ export const concatMapWithCustom = dual<
561
553
  export const embedInput = dual<
562
554
  <InErr, InElem, InDone>(
563
555
  input: SingleProducerAsyncInput.AsyncInputProducer<InErr, InElem, InDone>
564
- ) => <Env, OutErr, OutElem, OutDone>(
565
- self: Channel.Channel<Env, unknown, unknown, unknown, OutErr, OutElem, OutDone>
566
- ) => Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
567
- <Env, OutErr, OutElem, OutDone, InErr, InElem, InDone>(
568
- self: Channel.Channel<Env, unknown, unknown, unknown, OutErr, OutElem, OutDone>,
556
+ ) => <OutElem, OutErr, OutDone, Env>(
557
+ self: Channel.Channel<OutElem, unknown, OutErr, unknown, OutDone, unknown, Env>
558
+ ) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
559
+ <OutElem, OutErr, OutDone, Env, InErr, InElem, InDone>(
560
+ self: Channel.Channel<OutElem, unknown, OutErr, unknown, OutDone, unknown, Env>,
569
561
  input: SingleProducerAsyncInput.AsyncInputProducer<InErr, InElem, InDone>
570
- ) => Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
562
+ ) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
571
563
  >(
572
564
  2,
573
- <Env, OutErr, OutElem, OutDone, InErr, InElem, InDone>(
574
- self: Channel.Channel<Env, unknown, unknown, unknown, OutErr, OutElem, OutDone>,
565
+ <OutElem, OutErr, OutDone, Env, InErr, InElem, InDone>(
566
+ self: Channel.Channel<OutElem, unknown, OutErr, unknown, OutDone, unknown, Env>,
575
567
  input: SingleProducerAsyncInput.AsyncInputProducer<InErr, InElem, InDone>
576
- ): Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> => {
568
+ ): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env> => {
577
569
  const op = Object.create(proto)
578
570
  op._tag = OpCodes.OP_BRIDGE
579
571
  op.input = input
@@ -584,21 +576,21 @@ export const embedInput = dual<
584
576
 
585
577
  /** @internal */
586
578
  export const ensuringWith = dual<
587
- <Env2, OutErr, OutDone>(
588
- finalizer: (e: Exit.Exit<OutErr, OutDone>) => Effect.Effect<Env2, never, unknown>
589
- ) => <Env, InErr, InElem, InDone, OutElem>(
590
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
591
- ) => Channel.Channel<Env2 | Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
592
- <Env, InErr, InElem, InDone, OutElem, Env2, OutErr, OutDone>(
593
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
594
- finalizer: (e: Exit.Exit<OutErr, OutDone>) => Effect.Effect<Env2, never, unknown>
595
- ) => Channel.Channel<Env2 | Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
579
+ <OutDone, OutErr, Env2>(
580
+ finalizer: (e: Exit.Exit<OutDone, OutErr>) => Effect.Effect<unknown, never, Env2>
581
+ ) => <OutElem, InElem, InErr, InDone, Env>(
582
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
583
+ ) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env2 | Env>,
584
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, Env2>(
585
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
586
+ finalizer: (e: Exit.Exit<OutDone, OutErr>) => Effect.Effect<unknown, never, Env2>
587
+ ) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env2 | Env>
596
588
  >(
597
589
  2,
598
- <Env, InErr, InElem, InDone, OutElem, Env2, OutErr, OutDone>(
599
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
600
- finalizer: (e: Exit.Exit<OutErr, OutDone>) => Effect.Effect<Env2, never, unknown>
601
- ): Channel.Channel<Env | Env2, InErr, InElem, InDone, OutErr, OutElem, OutDone> => {
590
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, Env2>(
591
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
592
+ finalizer: (e: Exit.Exit<OutDone, OutErr>) => Effect.Effect<unknown, never, Env2>
593
+ ): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env | Env2> => {
602
594
  const op = Object.create(proto)
603
595
  op._tag = OpCodes.OP_ENSURING
604
596
  op.channel = self
@@ -608,23 +600,23 @@ export const ensuringWith = dual<
608
600
  )
609
601
 
610
602
  /** @internal */
611
- export const fail = <E>(error: E): Channel.Channel<never, unknown, unknown, unknown, E, never, never> =>
603
+ export const fail = <E>(error: E): Channel.Channel<never, unknown, E, unknown, never, unknown> =>
612
604
  failCause(Cause.fail(error))
613
605
 
614
606
  /** @internal */
615
607
  export const failSync = <E>(
616
608
  evaluate: LazyArg<E>
617
- ): Channel.Channel<never, unknown, unknown, unknown, E, never, never> => failCauseSync(() => Cause.fail(evaluate()))
609
+ ): Channel.Channel<never, unknown, E, unknown, never, unknown> => failCauseSync(() => Cause.fail(evaluate()))
618
610
 
619
611
  /** @internal */
620
612
  export const failCause = <E>(
621
613
  cause: Cause.Cause<E>
622
- ): Channel.Channel<never, unknown, unknown, unknown, E, never, never> => failCauseSync(() => cause)
614
+ ): Channel.Channel<never, unknown, E, unknown, never, unknown> => failCauseSync(() => cause)
623
615
 
624
616
  /** @internal */
625
617
  export const failCauseSync = <E>(
626
618
  evaluate: LazyArg<Cause.Cause<E>>
627
- ): Channel.Channel<never, unknown, unknown, unknown, E, never, never> => {
619
+ ): Channel.Channel<never, unknown, E, unknown, never, unknown> => {
628
620
  const op = Object.create(proto)
629
621
  op._tag = OpCodes.OP_FAIL
630
622
  op.error = evaluate
@@ -633,44 +625,44 @@ export const failCauseSync = <E>(
633
625
 
634
626
  /** @internal */
635
627
  export const flatMap = dual<
636
- <OutDone, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>(
637
- f: (d: OutDone) => Channel.Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>
638
- ) => <Env, InErr, InElem, InDone, OutErr, OutElem>(
639
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
628
+ <OutDone, OutElem1, InElem1, OutErr1, InErr1, OutDone2, InDone1, Env1>(
629
+ f: (d: OutDone) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone2, InDone1, Env1>
630
+ ) => <OutElem, InElem, OutErr, InErr, InDone, Env>(
631
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
640
632
  ) => Channel.Channel<
641
- Env1 | Env,
642
- InErr & InErr1,
633
+ OutElem1 | OutElem,
643
634
  InElem & InElem1,
644
- InDone & InDone1,
645
635
  OutErr1 | OutErr,
646
- OutElem1 | OutElem,
647
- OutDone2
636
+ InErr & InErr1,
637
+ OutDone2,
638
+ InDone & InDone1,
639
+ Env1 | Env
648
640
  >,
649
- <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>(
650
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
651
- f: (d: OutDone) => Channel.Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>
641
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone2, InDone1, Env1>(
642
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
643
+ f: (d: OutDone) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone2, InDone1, Env1>
652
644
  ) => Channel.Channel<
653
- Env1 | Env,
654
- InErr & InErr1,
645
+ OutElem1 | OutElem,
655
646
  InElem & InElem1,
656
- InDone & InDone1,
657
647
  OutErr1 | OutErr,
658
- OutElem1 | OutElem,
659
- OutDone2
648
+ InErr & InErr1,
649
+ OutDone2,
650
+ InDone & InDone1,
651
+ Env1 | Env
660
652
  >
661
653
  >(
662
654
  2,
663
- <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>(
664
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
665
- f: (d: OutDone) => Channel.Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>
655
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone2, InDone1, Env1>(
656
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
657
+ f: (d: OutDone) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone2, InDone1, Env1>
666
658
  ): Channel.Channel<
667
- Env | Env1,
668
- InErr & InErr1,
659
+ OutElem | OutElem1,
669
660
  InElem & InElem1,
670
- InDone & InDone1,
671
661
  OutErr | OutErr1,
672
- OutElem | OutElem1,
673
- OutDone2
662
+ InErr & InErr1,
663
+ OutDone2,
664
+ InDone & InDone1,
665
+ Env | Env1
674
666
  > => {
675
667
  const op = Object.create(proto)
676
668
  op._tag = OpCodes.OP_FOLD
@@ -683,119 +675,119 @@ export const flatMap = dual<
683
675
  /** @internal */
684
676
  export const foldCauseChannel = dual<
685
677
  <
686
- Env1,
687
- Env2,
688
- InErr1,
689
- InErr2,
690
- InElem1,
691
- InElem2,
692
- InDone1,
693
- InDone2,
694
678
  OutErr,
695
- OutErr2,
696
- OutErr3,
697
679
  OutElem1,
698
- OutElem2,
699
- OutDone,
680
+ InElem1,
681
+ OutErr2,
682
+ InErr1,
700
683
  OutDone2,
701
- OutDone3
684
+ InDone1,
685
+ Env1,
686
+ OutDone,
687
+ OutElem2,
688
+ InElem2,
689
+ OutErr3,
690
+ InErr2,
691
+ OutDone3,
692
+ InDone2,
693
+ Env2
702
694
  >(
703
695
  options: {
704
696
  readonly onFailure: (
705
697
  c: Cause.Cause<OutErr>
706
- ) => Channel.Channel<Env1, InErr1, InElem1, InDone1, OutErr2, OutElem1, OutDone2>
707
- readonly onSuccess: (o: OutDone) => Channel.Channel<Env2, InErr2, InElem2, InDone2, OutErr3, OutElem2, OutDone3>
698
+ ) => Channel.Channel<OutElem1, InElem1, OutErr2, InErr1, OutDone2, InDone1, Env1>
699
+ readonly onSuccess: (o: OutDone) => Channel.Channel<OutElem2, InElem2, OutErr3, InErr2, OutDone3, InDone2, Env2>
708
700
  }
709
701
  ) => <Env, InErr, InElem, InDone, OutElem>(
710
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
702
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
711
703
  ) => Channel.Channel<
712
- Env1 | Env2 | Env,
713
- InErr & InErr1 & InErr2,
704
+ OutElem1 | OutElem2 | OutElem,
714
705
  InElem & InElem1 & InElem2,
715
- InDone & InDone1 & InDone2,
716
706
  OutErr2 | OutErr3,
717
- OutElem1 | OutElem2 | OutElem,
718
- OutDone2 | OutDone3
707
+ InErr & InErr1 & InErr2,
708
+ OutDone2 | OutDone3,
709
+ InDone & InDone1 & InDone2,
710
+ Env1 | Env2 | Env
719
711
  >,
720
712
  <
721
- Env,
722
- InErr,
713
+ OutElem,
723
714
  InElem,
715
+ OutErr,
716
+ InErr,
717
+ OutDone,
724
718
  InDone,
725
- OutElem,
726
- Env1,
727
- Env2,
728
- InErr1,
729
- InErr2,
719
+ Env,
720
+ OutElem1,
730
721
  InElem1,
731
- InElem2,
732
- InDone1,
733
- InDone2,
734
- OutErr,
735
722
  OutErr2,
736
- OutErr3,
737
- OutElem1,
738
- OutElem2,
739
- OutDone,
723
+ InErr1,
740
724
  OutDone2,
741
- OutDone3
725
+ InDone1,
726
+ Env1,
727
+ OutElem2,
728
+ InElem2,
729
+ OutErr3,
730
+ InErr2,
731
+ OutDone3,
732
+ InDone2,
733
+ Env2
742
734
  >(
743
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
735
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
744
736
  options: {
745
737
  readonly onFailure: (
746
738
  c: Cause.Cause<OutErr>
747
- ) => Channel.Channel<Env1, InErr1, InElem1, InDone1, OutErr2, OutElem1, OutDone2>
748
- readonly onSuccess: (o: OutDone) => Channel.Channel<Env2, InErr2, InElem2, InDone2, OutErr3, OutElem2, OutDone3>
739
+ ) => Channel.Channel<OutElem1, InElem1, OutErr2, InErr1, OutDone2, InDone1, Env1>
740
+ readonly onSuccess: (o: OutDone) => Channel.Channel<OutElem2, InElem2, OutErr3, InErr2, OutDone3, InDone2, Env2>
749
741
  }
750
742
  ) => Channel.Channel<
751
- Env1 | Env2 | Env,
752
- InErr & InErr1 & InErr2,
743
+ OutElem1 | OutElem2 | OutElem,
753
744
  InElem & InElem1 & InElem2,
754
- InDone & InDone1 & InDone2,
755
745
  OutErr2 | OutErr3,
756
- OutElem1 | OutElem2 | OutElem,
757
- OutDone2 | OutDone3
746
+ InErr & InErr1 & InErr2,
747
+ OutDone2 | OutDone3,
748
+ InDone & InDone1 & InDone2,
749
+ Env1 | Env2 | Env
758
750
  >
759
751
  >(
760
752
  2,
761
753
  <
762
- Env,
763
- InErr,
754
+ OutElem,
764
755
  InElem,
756
+ OutErr,
757
+ InErr,
758
+ OutDone,
765
759
  InDone,
766
- OutElem,
767
- Env1,
768
- Env2,
769
- InErr1,
770
- InErr2,
760
+ Env,
761
+ OutElem1,
771
762
  InElem1,
772
- InElem2,
773
- InDone1,
774
- InDone2,
775
- OutErr,
776
763
  OutErr2,
777
- OutErr3,
778
- OutElem1,
779
- OutElem2,
780
- OutDone,
764
+ InErr1,
781
765
  OutDone2,
782
- OutDone3
766
+ InDone1,
767
+ Env1,
768
+ OutElem2,
769
+ InElem2,
770
+ OutErr3,
771
+ InErr2,
772
+ OutDone3,
773
+ InDone2,
774
+ Env2
783
775
  >(
784
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
776
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
785
777
  options: {
786
778
  readonly onFailure: (
787
779
  c: Cause.Cause<OutErr>
788
- ) => Channel.Channel<Env1, InErr1, InElem1, InDone1, OutErr2, OutElem1, OutDone2>
789
- readonly onSuccess: (o: OutDone) => Channel.Channel<Env2, InErr2, InElem2, InDone2, OutErr3, OutElem2, OutDone3>
780
+ ) => Channel.Channel<OutElem1, InElem1, OutErr2, InErr1, OutDone2, InDone1, Env1>
781
+ readonly onSuccess: (o: OutDone) => Channel.Channel<OutElem2, InElem2, OutErr3, InErr2, OutDone3, InDone2, Env2>
790
782
  }
791
783
  ): Channel.Channel<
792
- Env | Env1 | Env2,
793
- InErr & InErr1 & InErr2,
784
+ OutElem | OutElem1 | OutElem2,
794
785
  InElem & InElem1 & InElem2,
795
- InDone & InDone1 & InDone2,
796
786
  OutErr2 | OutErr3,
797
- OutElem | OutElem1 | OutElem2,
798
- OutDone2 | OutDone3
787
+ InErr & InErr1 & InErr2,
788
+ OutDone2 | OutDone3,
789
+ InDone & InDone1 & InDone2,
790
+ Env | Env1 | Env2
799
791
  > => {
800
792
  const op = Object.create(proto)
801
793
  op._tag = OpCodes.OP_FOLD
@@ -806,9 +798,9 @@ export const foldCauseChannel = dual<
806
798
  )
807
799
 
808
800
  /** @internal */
809
- export const fromEffect = <R, E, A>(
810
- effect: Effect.Effect<R, E, A>
811
- ): Channel.Channel<R, unknown, unknown, unknown, E, never, A> => {
801
+ export const fromEffect = <A, E, R>(
802
+ effect: Effect.Effect<A, E, R>
803
+ ): Channel.Channel<never, unknown, E, unknown, A, unknown, R> => {
812
804
  const op = Object.create(proto)
813
805
  op._tag = OpCodes.OP_FROM_EFFECT
814
806
  op.effect = () => effect
@@ -817,21 +809,21 @@ export const fromEffect = <R, E, A>(
817
809
 
818
810
  /** @internal */
819
811
  export const pipeTo = dual<
820
- <Env2, OutErr, OutElem, OutDone, OutErr2, OutElem2, OutDone2>(
821
- that: Channel.Channel<Env2, OutErr, OutElem, OutDone, OutErr2, OutElem2, OutDone2>
822
- ) => <Env, InErr, InElem, InDone>(
823
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
824
- ) => Channel.Channel<Env2 | Env, InErr, InElem, InDone, OutErr2, OutElem2, OutDone2>,
825
- <Env, InErr, InElem, InDone, Env2, OutErr, OutElem, OutDone, OutErr2, OutElem2, OutDone2>(
826
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
827
- that: Channel.Channel<Env2, OutErr, OutElem, OutDone, OutErr2, OutElem2, OutDone2>
828
- ) => Channel.Channel<Env2 | Env, InErr, InElem, InDone, OutErr2, OutElem2, OutDone2>
812
+ <OutElem2, OutElem, OutErr2, OutErr, OutDone2, OutDone, Env2>(
813
+ that: Channel.Channel<OutElem2, OutElem, OutErr2, OutErr, OutDone2, OutDone, Env2>
814
+ ) => <InElem, InErr, InDone, Env>(
815
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
816
+ ) => Channel.Channel<OutElem2, InElem, OutErr2, InErr, OutDone2, InDone, Env2 | Env>,
817
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem2, OutErr2, OutDone2, Env2>(
818
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
819
+ that: Channel.Channel<OutElem2, OutElem, OutErr2, OutErr, OutDone2, OutDone, Env2>
820
+ ) => Channel.Channel<OutElem2, InElem, OutErr2, InErr, OutDone2, InDone, Env2 | Env>
829
821
  >(
830
822
  2,
831
- <Env, InErr, InElem, InDone, Env2, OutErr, OutElem, OutDone, OutErr2, OutElem2, OutDone2>(
832
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
833
- that: Channel.Channel<Env2, OutErr, OutElem, OutDone, OutErr2, OutElem2, OutDone2>
834
- ): Channel.Channel<Env | Env2, InErr, InElem, InDone, OutErr2, OutElem2, OutDone2> => {
823
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem2, OutErr2, OutDone2, Env2>(
824
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
825
+ that: Channel.Channel<OutElem2, OutElem, OutErr2, OutErr, OutDone2, OutDone, Env2>
826
+ ): Channel.Channel<OutElem2, InElem, OutErr2, InErr, OutDone2, InDone, Env | Env2> => {
835
827
  const op = Object.create(proto)
836
828
  op._tag = OpCodes.OP_PIPE_TO
837
829
  op.left = () => self
@@ -844,19 +836,19 @@ export const pipeTo = dual<
844
836
  export const provideContext = dual<
845
837
  <Env>(
846
838
  env: Context.Context<Env>
847
- ) => <InErr, InElem, InDone, OutErr, OutElem, OutDone>(
848
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
849
- ) => Channel.Channel<never, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
850
- <InErr, InElem, InDone, OutErr, OutElem, OutDone, Env>(
851
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
839
+ ) => <OutElem, InElem, OutErr, InErr, OutDone, InDone>(
840
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
841
+ ) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone>,
842
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
843
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
852
844
  env: Context.Context<Env>
853
- ) => Channel.Channel<never, InErr, InElem, InDone, OutErr, OutElem, OutDone>
845
+ ) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone>
854
846
  >(
855
847
  2,
856
- <InErr, InElem, InDone, OutErr, OutElem, OutDone, Env>(
857
- self: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
848
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
849
+ self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
858
850
  env: Context.Context<Env>
859
- ): Channel.Channel<never, InErr, InElem, InDone, OutErr, OutElem, OutDone> => {
851
+ ): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone> => {
860
852
  const op = Object.create(proto)
861
853
  op._tag = OpCodes.OP_PROVIDE
862
854
  op.context = () => env
@@ -866,9 +858,9 @@ export const provideContext = dual<
866
858
  )
867
859
 
868
860
  /** @internal */
869
- export const readOrFail = <In, E>(
861
+ export const readOrFail = <E, In = unknown>(
870
862
  error: E
871
- ): Channel.Channel<never, unknown, In, unknown, E, never, In> => {
863
+ ): Channel.Channel<never, In, E, unknown, In, unknown> => {
872
864
  const op = Object.create(proto)
873
865
  op._tag = OpCodes.OP_READ
874
866
  op.more = succeed
@@ -878,35 +870,35 @@ export const readOrFail = <In, E>(
878
870
 
879
871
  /** @internal */
880
872
  export const readWith = <
881
- Env,
882
- InErr,
883
873
  InElem,
884
- InDone,
885
- OutErr,
886
874
  OutElem,
875
+ OutErr,
876
+ InErr,
887
877
  OutDone,
888
- Env2,
889
- OutErr2,
878
+ InDone,
879
+ Env,
890
880
  OutElem2,
881
+ OutErr2,
891
882
  OutDone2,
892
- Env3,
893
- OutErr3,
883
+ Env2,
894
884
  OutElem3,
895
- OutDone3
885
+ OutErr3,
886
+ OutDone3,
887
+ Env3
896
888
  >(
897
889
  options: {
898
- readonly onInput: (input: InElem) => Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
899
- readonly onFailure: (error: InErr) => Channel.Channel<Env2, InErr, InElem, InDone, OutErr2, OutElem2, OutDone2>
900
- readonly onDone: (done: InDone) => Channel.Channel<Env3, InErr, InElem, InDone, OutErr3, OutElem3, OutDone3>
890
+ readonly onInput: (input: InElem) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
891
+ readonly onFailure: (error: InErr) => Channel.Channel<OutElem2, InElem, OutErr2, InErr, OutDone2, InDone, Env2>
892
+ readonly onDone: (done: InDone) => Channel.Channel<OutElem3, InElem, OutErr3, InErr, OutDone3, InDone, Env3>
901
893
  }
902
894
  ): Channel.Channel<
903
- Env | Env2 | Env3,
904
- InErr,
895
+ OutElem | OutElem2 | OutElem3,
905
896
  InElem,
906
- InDone,
907
897
  OutErr | OutErr2 | OutErr3,
908
- OutElem | OutElem2 | OutElem3,
909
- OutDone | OutDone2 | OutDone3
898
+ InErr,
899
+ OutDone | OutDone2 | OutDone3,
900
+ InDone,
901
+ Env | Env2 | Env3
910
902
  > =>
911
903
  readWithCause({
912
904
  onInput: options.onInput,
@@ -916,37 +908,37 @@ export const readWith = <
916
908
 
917
909
  /** @internal */
918
910
  export const readWithCause = <
919
- Env,
920
- InErr,
921
911
  InElem,
922
- InDone,
923
- OutErr,
924
912
  OutElem,
913
+ OutErr,
914
+ InErr,
925
915
  OutDone,
926
- Env2,
927
- OutErr2,
916
+ InDone,
917
+ Env,
928
918
  OutElem2,
919
+ OutErr2,
929
920
  OutDone2,
930
- Env3,
931
- OutErr3,
921
+ Env2,
932
922
  OutElem3,
933
- OutDone3
923
+ OutErr3,
924
+ OutDone3,
925
+ Env3
934
926
  >(
935
927
  options: {
936
- readonly onInput: (input: InElem) => Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
928
+ readonly onInput: (input: InElem) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
937
929
  readonly onFailure: (
938
930
  cause: Cause.Cause<InErr>
939
- ) => Channel.Channel<Env2, InErr, InElem, InDone, OutErr2, OutElem2, OutDone2>
940
- readonly onDone: (done: InDone) => Channel.Channel<Env3, InErr, InElem, InDone, OutErr3, OutElem3, OutDone3>
931
+ ) => Channel.Channel<OutElem2, InElem, OutErr2, InErr, OutDone2, InDone, Env2>
932
+ readonly onDone: (done: InDone) => Channel.Channel<OutElem3, InElem, OutErr3, InErr, OutDone3, InDone, Env3>
941
933
  }
942
934
  ): Channel.Channel<
943
- Env | Env2 | Env3,
944
- InErr,
935
+ OutElem | OutElem2 | OutElem3,
945
936
  InElem,
946
- InDone,
947
937
  OutErr | OutErr2 | OutErr3,
948
- OutElem | OutElem2 | OutElem3,
949
- OutDone | OutDone2 | OutDone3
938
+ InErr,
939
+ OutDone | OutDone2 | OutDone3,
940
+ InDone,
941
+ Env | Env2 | Env3
950
942
  > => {
951
943
  const op = Object.create(proto)
952
944
  op._tag = OpCodes.OP_READ
@@ -958,12 +950,12 @@ export const readWithCause = <
958
950
  /** @internal */
959
951
  export const succeed = <A>(
960
952
  value: A
961
- ): Channel.Channel<never, unknown, unknown, unknown, never, never, A> => sync(() => value)
953
+ ): Channel.Channel<never, unknown, never, unknown, A, unknown> => sync(() => value)
962
954
 
963
955
  /** @internal */
964
956
  export const succeedNow = <OutDone>(
965
957
  result: OutDone
966
- ): Channel.Channel<never, unknown, unknown, unknown, never, never, OutDone> => {
958
+ ): Channel.Channel<never, unknown, never, unknown, OutDone, unknown> => {
967
959
  const op = Object.create(proto)
968
960
  op._tag = OpCodes.OP_SUCCEED_NOW
969
961
  op.terminal = result
@@ -971,9 +963,9 @@ export const succeedNow = <OutDone>(
971
963
  }
972
964
 
973
965
  /** @internal */
974
- export const suspend = <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
975
- evaluate: LazyArg<Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>>
976
- ): Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> => {
966
+ export const suspend = <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
967
+ evaluate: LazyArg<Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>>
968
+ ): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env> => {
977
969
  const op = Object.create(proto)
978
970
  op._tag = OpCodes.OP_SUSPEND
979
971
  op.channel = evaluate
@@ -982,7 +974,7 @@ export const suspend = <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
982
974
 
983
975
  export const sync = <OutDone>(
984
976
  evaluate: LazyArg<OutDone>
985
- ): Channel.Channel<never, unknown, unknown, unknown, never, never, OutDone> => {
977
+ ): Channel.Channel<never, unknown, never, unknown, OutDone, unknown> => {
986
978
  const op = Object.create(proto)
987
979
  op._tag = OpCodes.OP_SUCCEED
988
980
  op.evaluate = evaluate
@@ -990,12 +982,12 @@ export const sync = <OutDone>(
990
982
  }
991
983
 
992
984
  /** @internal */
993
- export const unit: Channel.Channel<never, unknown, unknown, unknown, never, never, void> = succeedNow(void 0)
985
+ export const unit: Channel.Channel<never> = succeedNow(void 0)
994
986
 
995
987
  /** @internal */
996
988
  export const write = <OutElem>(
997
989
  out: OutElem
998
- ): Channel.Channel<never, unknown, unknown, unknown, never, OutElem, void> => {
990
+ ): Channel.Channel<OutElem, unknown, never, unknown, void, unknown> => {
999
991
  const op = Object.create(proto)
1000
992
  op._tag = OpCodes.OP_EMIT
1001
993
  op.out = out