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
@@ -38,7 +38,7 @@ export type MapValue<Key, Error, Value> =
38
38
  export interface Complete<out Key, out Error, out Value> {
39
39
  readonly _tag: "Complete"
40
40
  readonly key: MapKey<Key>
41
- readonly exit: Exit.Exit<Error, Value>
41
+ readonly exit: Exit.Exit<Value, Error>
42
42
  readonly entryStats: Cache.EntryStats
43
43
  readonly timeToLiveMillis: number
44
44
  }
@@ -47,25 +47,25 @@ export interface Complete<out Key, out Error, out Value> {
47
47
  export interface Pending<out Key, in out Error, in out Value> {
48
48
  readonly _tag: "Pending"
49
49
  readonly key: MapKey<Key>
50
- readonly deferred: Deferred.Deferred<Error, Value>
50
+ readonly deferred: Deferred.Deferred<Value, Error>
51
51
  }
52
52
 
53
53
  /** @internal */
54
54
  export interface Refreshing<out Key, in out Error, in out Value> {
55
55
  readonly _tag: "Refreshing"
56
- readonly deferred: Deferred.Deferred<Error, Value>
56
+ readonly deferred: Deferred.Deferred<Value, Error>
57
57
  readonly complete: Complete<Key, Error, Value>
58
58
  }
59
59
 
60
60
  /** @internal */
61
61
  export const complete = <Key, Error, Value>(
62
62
  key: MapKey<Key>,
63
- exit: Exit.Exit<Error, Value>,
63
+ exit: Exit.Exit<Value, Error>,
64
64
  entryStats: Cache.EntryStats,
65
65
  timeToLiveMillis: number
66
66
  ): MapValue<Key, Error, Value> =>
67
67
  Data.struct({
68
- _tag: "Complete",
68
+ _tag: "Complete" as const,
69
69
  key,
70
70
  exit,
71
71
  entryStats,
@@ -75,21 +75,21 @@ export const complete = <Key, Error, Value>(
75
75
  /** @internal */
76
76
  export const pending = <Key, Error, Value>(
77
77
  key: MapKey<Key>,
78
- deferred: Deferred.Deferred<Error, Value>
78
+ deferred: Deferred.Deferred<Value, Error>
79
79
  ): MapValue<Key, Error, Value> =>
80
80
  Data.struct({
81
- _tag: "Pending",
81
+ _tag: "Pending" as const,
82
82
  key,
83
83
  deferred
84
84
  })
85
85
 
86
86
  /** @internal */
87
87
  export const refreshing = <Key, Error, Value>(
88
- deferred: Deferred.Deferred<Error, Value>,
88
+ deferred: Deferred.Deferred<Value, Error>,
89
89
  complete: Complete<Key, Error, Value>
90
90
  ): MapValue<Key, Error, Value> =>
91
91
  Data.struct({
92
- _tag: "Refreshing",
92
+ _tag: "Refreshing" as const,
93
93
  deferred,
94
94
  complete
95
95
  })
@@ -299,16 +299,16 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
299
299
  readonly context: Context.Context<any>,
300
300
  readonly fiberId: FiberId.FiberId,
301
301
  readonly lookup: Cache.Lookup<Key, any, Error, Value>,
302
- readonly timeToLive: (exit: Exit.Exit<Error, Value>) => Duration.DurationInput
302
+ readonly timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.DurationInput
303
303
  ) {
304
304
  this.cacheState = initialCacheState()
305
305
  }
306
306
 
307
- get(key: Key): Effect.Effect<never, Error, Value> {
307
+ get(key: Key): Effect.Effect<Value, Error> {
308
308
  return core.map(this.getEither(key), Either.merge)
309
309
  }
310
310
 
311
- get cacheStats(): Effect.Effect<never, never, Cache.CacheStats> {
311
+ get cacheStats(): Effect.Effect<Cache.CacheStats> {
312
312
  return core.sync(() =>
313
313
  makeCacheStats({
314
314
  hits: this.cacheState.hits,
@@ -318,7 +318,7 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
318
318
  )
319
319
  }
320
320
 
321
- getOption(key: Key): Effect.Effect<never, Error, Option.Option<Value>> {
321
+ getOption(key: Key): Effect.Effect<Option.Option<Value>, Error> {
322
322
  return core.suspend(() =>
323
323
  Option.match(MutableHashMap.get(this.cacheState.map, key), {
324
324
  onNone: () => {
@@ -332,7 +332,7 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
332
332
  )
333
333
  }
334
334
 
335
- getOptionComplete(key: Key): Effect.Effect<never, never, Option.Option<Value>> {
335
+ getOptionComplete(key: Key): Effect.Effect<Option.Option<Value>> {
336
336
  return core.suspend(() =>
337
337
  Option.match(MutableHashMap.get(this.cacheState.map, key), {
338
338
  onNone: () => {
@@ -341,16 +341,16 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
341
341
  this.trackMiss()
342
342
  return core.succeed(Option.none<Value>())
343
343
  },
344
- onSome: (value) => this.resolveMapValue(value, true) as Effect.Effect<never, never, Option.Option<Value>>
344
+ onSome: (value) => this.resolveMapValue(value, true) as Effect.Effect<Option.Option<Value>>
345
345
  })
346
346
  )
347
347
  }
348
348
 
349
- contains(key: Key): Effect.Effect<never, never, boolean> {
349
+ contains(key: Key): Effect.Effect<boolean> {
350
350
  return core.sync(() => MutableHashMap.has(this.cacheState.map, key))
351
351
  }
352
352
 
353
- entryStats(key: Key): Effect.Effect<never, never, Option.Option<Cache.EntryStats>> {
353
+ entryStats(key: Key): Effect.Effect<Option.Option<Cache.EntryStats>> {
354
354
  return core.sync(() => {
355
355
  const option = MutableHashMap.get(this.cacheState.map, key)
356
356
  if (Option.isSome(option)) {
@@ -372,14 +372,14 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
372
372
  })
373
373
  }
374
374
 
375
- getEither(key: Key): Effect.Effect<never, Error, Either.Either<Value, Value>> {
376
- return core.suspend((): Effect.Effect<never, Error, Either.Either<Value, Value>> => {
375
+ getEither(key: Key): Effect.Effect<Either.Either<Value, Value>, Error> {
376
+ return core.suspend((): Effect.Effect<Either.Either<Value, Value>, Error> => {
377
377
  const k = key
378
378
  let mapKey: MapKey<Key> | undefined = undefined
379
- let deferred: Deferred.Deferred<Error, Value> | undefined = undefined
379
+ let deferred: Deferred.Deferred<Value, Error> | undefined = undefined
380
380
  let value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k))
381
381
  if (value === undefined) {
382
- deferred = Deferred.unsafeMake<Error, Value>(this.fiberId)
382
+ deferred = Deferred.unsafeMake<Value, Error>(this.fiberId)
383
383
  mapKey = makeMapKey(k)
384
384
  if (MutableHashMap.has(this.cacheState.map, k)) {
385
385
  value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k))
@@ -403,13 +403,13 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
403
403
  })
404
404
  }
405
405
 
406
- invalidate(key: Key): Effect.Effect<never, never, void> {
406
+ invalidate(key: Key): Effect.Effect<void> {
407
407
  return core.sync(() => {
408
408
  MutableHashMap.remove(this.cacheState.map, key)
409
409
  })
410
410
  }
411
411
 
412
- invalidateWhen(key: Key, when: (value: Value) => boolean): Effect.Effect<never, never, void> {
412
+ invalidateWhen(key: Key, when: (value: Value) => boolean): Effect.Effect<void> {
413
413
  return core.sync(() => {
414
414
  const value = MutableHashMap.get(this.cacheState.map, key)
415
415
  if (Option.isSome(value) && value.value._tag === "Complete") {
@@ -422,17 +422,17 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
422
422
  })
423
423
  }
424
424
 
425
- get invalidateAll(): Effect.Effect<never, never, void> {
425
+ get invalidateAll(): Effect.Effect<void> {
426
426
  return core.sync(() => {
427
427
  this.cacheState.map = MutableHashMap.empty()
428
428
  })
429
429
  }
430
430
 
431
- refresh(key: Key): Effect.Effect<never, Error, void> {
431
+ refresh(key: Key): Effect.Effect<void, Error> {
432
432
  return effect.clockWith((clock) =>
433
433
  core.suspend(() => {
434
434
  const k = key
435
- const deferred: Deferred.Deferred<Error, Value> = Deferred.unsafeMake(this.fiberId)
435
+ const deferred: Deferred.Deferred<Value, Error> = Deferred.unsafeMake(this.fiberId)
436
436
  let value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k))
437
437
  if (value === undefined) {
438
438
  if (MutableHashMap.has(this.cacheState.map, k)) {
@@ -480,7 +480,7 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
480
480
  )
481
481
  }
482
482
 
483
- set(key: Key, value: Value): Effect.Effect<never, never, void> {
483
+ set(key: Key, value: Value): Effect.Effect<void> {
484
484
  return effect.clockWith((clock) =>
485
485
  core.sync(() => {
486
486
  const now = clock.unsafeCurrentTimeMillis()
@@ -501,13 +501,13 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
501
501
  )
502
502
  }
503
503
 
504
- get size(): Effect.Effect<never, never, number> {
504
+ get size(): Effect.Effect<number> {
505
505
  return core.sync(() => {
506
506
  return MutableHashMap.size(this.cacheState.map)
507
507
  })
508
508
  }
509
509
 
510
- get values(): Effect.Effect<never, never, Array<Value>> {
510
+ get values(): Effect.Effect<Array<Value>> {
511
511
  return core.sync(() => {
512
512
  const values: Array<Value> = []
513
513
  for (const entry of this.cacheState.map) {
@@ -519,7 +519,7 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
519
519
  })
520
520
  }
521
521
 
522
- get entries(): Effect.Effect<never, never, Array<[Key, Value]>> {
522
+ get entries(): Effect.Effect<Array<[Key, Value]>> {
523
523
  return core.sync(() => {
524
524
  const values: Array<[Key, Value]> = []
525
525
  for (const entry of this.cacheState.map) {
@@ -531,7 +531,7 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
531
531
  })
532
532
  }
533
533
 
534
- get keys(): Effect.Effect<never, never, Array<Key>> {
534
+ get keys(): Effect.Effect<Array<Key>> {
535
535
  return core.sync(() => {
536
536
  const keys: Array<Key> = []
537
537
  for (const entry of this.cacheState.map) {
@@ -546,7 +546,7 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
546
546
  resolveMapValue(
547
547
  value: MapValue<Key, Error, Value>,
548
548
  ignorePending = false
549
- ): Effect.Effect<never, Error, Option.Option<Value>> {
549
+ ): Effect.Effect<Option.Option<Value>, Error> {
550
550
  return effect.clockWith((clock) => {
551
551
  switch (value._tag) {
552
552
  case "Complete": {
@@ -625,8 +625,8 @@ class CacheImpl<in out Key, in out Error, in out Value> implements Cache.Cache<K
625
625
 
626
626
  lookupValueOf(
627
627
  input: Key,
628
- deferred: Deferred.Deferred<Error, Value>
629
- ): Effect.Effect<never, Error, Value> {
628
+ deferred: Deferred.Deferred<Value, Error>
629
+ ): Effect.Effect<Value, Error> {
630
630
  return effect.clockWith((clock) =>
631
631
  core.suspend(() => {
632
632
  const key = input
@@ -670,7 +670,7 @@ export const make = <Key, Environment, Error, Value>(
670
670
  readonly timeToLive: Duration.DurationInput
671
671
  readonly lookup: Cache.Lookup<Key, Environment, Error, Value>
672
672
  }
673
- ): Effect.Effect<Environment, never, Cache.Cache<Key, Error, Value>> => {
673
+ ): Effect.Effect<Cache.Cache<Key, Error, Value>, never, Environment> => {
674
674
  const timeToLive = Duration.decode(options.timeToLive)
675
675
  return makeWith({
676
676
  capacity: options.capacity,
@@ -684,9 +684,9 @@ export const makeWith = <Key, Environment, Error, Value>(
684
684
  options: {
685
685
  readonly capacity: number
686
686
  readonly lookup: Cache.Lookup<Key, Environment, Error, Value>
687
- readonly timeToLive: (exit: Exit.Exit<Error, Value>) => Duration.DurationInput
687
+ readonly timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.DurationInput
688
688
  }
689
- ): Effect.Effect<Environment, never, Cache.Cache<Key, Error, Value>> =>
689
+ ): Effect.Effect<Cache.Cache<Key, Error, Value>, never, Environment> =>
690
690
  core.map(
691
691
  fiberRuntime.all([core.context<Environment>(), core.fiberId]),
692
692
  ([context, fiberId]) =>
@@ -703,7 +703,7 @@ export const makeWith = <Key, Environment, Error, Value>(
703
703
  export const unsafeMakeWith = <Key, Error, Value>(
704
704
  capacity: number,
705
705
  lookup: Cache.Lookup<Key, never, Error, Value>,
706
- timeToLive: (exit: Exit.Exit<Error, Value>) => Duration.DurationInput
706
+ timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.DurationInput
707
707
  ): Cache.Cache<Key, Error, Value> =>
708
708
  new CacheImpl<Key, Error, Value>(
709
709
  capacity,
@@ -22,26 +22,10 @@ import * as Continuation from "./continuation.js"
22
22
  import * as Subexecutor from "./subexecutor.js"
23
23
  import * as upstreamPullRequest from "./upstreamPullRequest.js"
24
24
 
25
- export type ErasedChannel<R> = Channel.Channel<
26
- R,
27
- unknown,
28
- unknown,
29
- unknown,
30
- unknown,
31
- unknown,
32
- unknown
33
- >
25
+ export type ErasedChannel<R> = Channel.Channel<unknown, unknown, unknown, unknown, unknown, unknown, R>
34
26
 
35
27
  /** @internal */
36
- export type ErasedExecutor<R> = ChannelExecutor<
37
- R,
38
- unknown,
39
- unknown,
40
- unknown,
41
- unknown,
42
- unknown,
43
- unknown
44
- >
28
+ export type ErasedExecutor<R> = ChannelExecutor<unknown, unknown, unknown, unknown, unknown, unknown, R>
45
29
 
46
30
  /** @internal */
47
31
  export type ErasedContinuation<R> = Continuation.Continuation<
@@ -57,15 +41,23 @@ export type ErasedContinuation<R> = Continuation.Continuation<
57
41
  >
58
42
 
59
43
  /** @internal */
60
- export type ErasedFinalizer<R> = (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R, never, unknown>
44
+ export type ErasedFinalizer<R> = (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<unknown, never, R>
61
45
 
62
46
  /** @internal */
63
- export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out OutErr, out OutElem, out OutDone> {
47
+ export class ChannelExecutor<
48
+ out OutElem,
49
+ in InElem = unknown,
50
+ out OutErr = never,
51
+ in InErr = unknown,
52
+ out OutDone = void,
53
+ in InDone = unknown,
54
+ in out Env = never
55
+ > {
64
56
  private _activeSubexecutor: Subexecutor.Subexecutor<Env> | undefined = undefined
65
57
 
66
58
  private _cancelled: Exit.Exit<OutErr, OutDone> | undefined = undefined
67
59
 
68
- private _closeLastSubstream: Effect.Effect<Env, never, unknown> | undefined = undefined
60
+ private _closeLastSubstream: Effect.Effect<unknown, never, Env> | undefined = undefined
69
61
 
70
62
  private _currentChannel: core.Primitive | undefined
71
63
 
@@ -76,19 +68,19 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
76
68
  private _emitted: unknown | undefined = undefined
77
69
 
78
70
  private _executeCloseLastSubstream: (
79
- effect: Effect.Effect<Env, never, unknown>
80
- ) => Effect.Effect<Env, never, unknown>
71
+ effect: Effect.Effect<unknown, never, Env>
72
+ ) => Effect.Effect<unknown, never, Env>
81
73
 
82
74
  private _input: ErasedExecutor<Env> | undefined = undefined
83
75
 
84
- private _inProgressFinalizer: Effect.Effect<Env, never, unknown> | undefined = undefined
76
+ private _inProgressFinalizer: Effect.Effect<unknown, never, Env> | undefined = undefined
85
77
 
86
78
  private _providedEnv: Context.Context<unknown> | undefined
87
79
 
88
80
  constructor(
89
- initialChannel: Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
81
+ initialChannel: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
90
82
  providedEnv: Context.Context<unknown> | undefined,
91
- executeCloseLastSubstream: (effect: Effect.Effect<Env, never, unknown>) => Effect.Effect<Env, never, unknown>
83
+ executeCloseLastSubstream: (effect: Effect.Effect<unknown, never, Env>) => Effect.Effect<unknown, never, Env>
92
84
  ) {
93
85
  this._currentChannel = initialChannel as core.Primitive
94
86
  this._executeCloseLastSubstream = executeCloseLastSubstream
@@ -128,7 +120,7 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
128
120
  const inputExecutor = this._input
129
121
  this._input = undefined
130
122
 
131
- const drainer = (): Effect.Effect<Env, never, unknown> =>
123
+ const drainer = (): Effect.Effect<unknown, never, Env> =>
132
124
  Effect.flatMap(bridgeInput.awaitRead(), () =>
133
125
  Effect.suspend(() => {
134
126
  const state = inputExecutor.run() as ChannelState.Primitive
@@ -159,7 +151,7 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
159
151
  )
160
152
  }
161
153
  }
162
- })) as Effect.Effect<Env, never, unknown>
154
+ })) as Effect.Effect<unknown, never, Env>
163
155
 
164
156
  result = ChannelState.FromEffect(
165
157
  Effect.flatMap(
@@ -184,13 +176,13 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
184
176
  case ChannelOpCodes.OP_CONCAT_ALL: {
185
177
  const executor: ErasedExecutor<Env> = new ChannelExecutor(
186
178
  this._currentChannel.value() as Channel.Channel<
187
- Env,
188
- unknown,
189
- unknown,
179
+ never,
190
180
  unknown,
191
181
  never,
182
+ unknown,
192
183
  never,
193
- never
184
+ unknown,
185
+ Env
194
186
  >,
195
187
  this._providedEnv,
196
188
  (effect) =>
@@ -278,7 +270,7 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
278
270
  const previousInput = this._input
279
271
 
280
272
  const leftExec: ErasedExecutor<Env> = new ChannelExecutor(
281
- this._currentChannel.left() as Channel.Channel<Env, unknown, unknown, unknown, never, never, never>,
273
+ this._currentChannel.left() as Channel.Channel<never, unknown, never, unknown, never, unknown, Env>,
282
274
  this._providedEnv,
283
275
  (effect) => this._executeCloseLastSubstream(effect)
284
276
  )
@@ -361,8 +353,8 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
361
353
  return result
362
354
  }
363
355
 
364
- getDone(): Exit.Exit<OutErr, OutDone> {
365
- return this._done as Exit.Exit<OutErr, OutDone>
356
+ getDone(): Exit.Exit<OutDone, OutErr> {
357
+ return this._done as Exit.Exit<OutDone, OutErr>
366
358
  }
367
359
 
368
360
  getEmit(): OutElem {
@@ -377,11 +369,11 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
377
369
  this._inProgressFinalizer = undefined
378
370
  }
379
371
 
380
- storeInProgressFinalizer(finalizer: Effect.Effect<Env, never, unknown> | undefined): void {
372
+ storeInProgressFinalizer(finalizer: Effect.Effect<unknown, never, Env> | undefined): void {
381
373
  this._inProgressFinalizer = finalizer
382
374
  }
383
375
 
384
- popAllFinalizers(exit: Exit.Exit<unknown, unknown>): Effect.Effect<Env, never, unknown> {
376
+ popAllFinalizers(exit: Exit.Exit<unknown, unknown>): Effect.Effect<unknown, never, Env> {
385
377
  const finalizers: Array<ErasedFinalizer<Env>> = []
386
378
  let next = this._doneStack.pop() as Continuation.Primitive | undefined
387
379
  while (next) {
@@ -391,9 +383,9 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
391
383
  next = this._doneStack.pop() as Continuation.Primitive | undefined
392
384
  }
393
385
  const effect = (finalizers.length === 0 ? Effect.unit : runFinalizers(finalizers, exit)) as Effect.Effect<
394
- Env,
386
+ unknown,
395
387
  never,
396
- unknown
388
+ Env
397
389
  >
398
390
  this.storeInProgressFinalizer(effect)
399
391
  return effect
@@ -415,7 +407,7 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
415
407
  restorePipe(
416
408
  exit: Exit.Exit<unknown, unknown>,
417
409
  prev: ErasedExecutor<Env> | undefined
418
- ): Effect.Effect<Env, never, unknown> | undefined {
410
+ ): Effect.Effect<unknown, never, Env> | undefined {
419
411
  const currInput = this._input
420
412
  this._input = prev
421
413
  if (currInput !== undefined) {
@@ -425,8 +417,8 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
425
417
  return Effect.unit
426
418
  }
427
419
 
428
- close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<Env, never, unknown> | undefined {
429
- let runInProgressFinalizers: Effect.Effect<Env, never, unknown> | undefined = undefined
420
+ close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<unknown, never, Env> | undefined {
421
+ let runInProgressFinalizers: Effect.Effect<unknown, never, Env> | undefined = undefined
430
422
  const finalizer = this._inProgressFinalizer
431
423
  if (finalizer !== undefined) {
432
424
  runInProgressFinalizers = pipe(
@@ -435,7 +427,7 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
435
427
  )
436
428
  }
437
429
 
438
- let closeSelf: Effect.Effect<Env, never, unknown> | undefined = undefined
430
+ let closeSelf: Effect.Effect<unknown, never, Env> | undefined = undefined
439
431
  const selfFinalizers = this.popAllFinalizers(exit)
440
432
  if (selfFinalizers !== undefined) {
441
433
  closeSelf = pipe(
@@ -546,7 +538,7 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
546
538
 
547
539
  runBracketOut(bracketOut: core.BracketOut): ChannelState.ChannelState<Env, unknown> {
548
540
  const effect = Effect.uninterruptible(
549
- Effect.matchCauseEffect(this.provide(bracketOut.acquire() as Effect.Effect<Env, OutErr, OutDone>), {
541
+ Effect.matchCauseEffect(this.provide(bracketOut.acquire() as Effect.Effect<OutDone, OutErr, Env>), {
550
542
  onFailure: (cause) =>
551
543
  Effect.sync(() => {
552
544
  this._currentChannel = core.failCause(cause) as core.Primitive
@@ -554,7 +546,7 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
554
546
  onSuccess: (out) =>
555
547
  Effect.sync(() => {
556
548
  this.addFinalizer((exit) =>
557
- this.provide(bracketOut.finalizer(out, exit)) as Effect.Effect<Env, never, unknown>
549
+ this.provide(bracketOut.finalizer(out, exit)) as Effect.Effect<unknown, never, Env>
558
550
  )
559
551
  this._currentChannel = core.write(out) as core.Primitive
560
552
  })
@@ -609,7 +601,7 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
609
601
  this._activeSubexecutor = nextSubExec
610
602
  }
611
603
 
612
- finishWithExit(exit: Exit.Exit<unknown, unknown>): Effect.Effect<Env, unknown, unknown> {
604
+ finishWithExit(exit: Exit.Exit<unknown, unknown>): Effect.Effect<unknown, unknown, Env> {
613
605
  const state = Exit.match(exit, {
614
606
  onFailure: (cause) => this.doneHalt(cause),
615
607
  onSuccess: (value) => this.doneSucceed(value)
@@ -622,7 +614,7 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
622
614
 
623
615
  finishSubexecutorWithCloseEffect(
624
616
  subexecutorDone: Exit.Exit<unknown, unknown>,
625
- ...closeFuncs: Array<(exit: Exit.Exit<unknown, unknown>) => Effect.Effect<Env, never, unknown> | undefined>
617
+ ...closeFuncs: Array<(exit: Exit.Exit<unknown, unknown>) => Effect.Effect<unknown, never, Env> | undefined>
626
618
  ): ChannelState.ChannelState<Env, unknown> | undefined {
627
619
  this.addFinalizer(() =>
628
620
  pipe(
@@ -695,7 +687,7 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
695
687
  const state = this.handleSubexecutorFailure(childExecutor, parentSubexecutor, cause)
696
688
  return state === undefined ?
697
689
  undefined :
698
- ChannelState.effectOrUndefinedIgnored(state) as Effect.Effect<Env, never, void>
690
+ ChannelState.effectOrUndefinedIgnored(state) as Effect.Effect<void, never, Env>
699
691
  },
700
692
  onSuccess: (doneValue) => {
701
693
  this.finishWithDoneValue(childExecutor, parentSubexecutor, doneValue)
@@ -1006,17 +998,17 @@ export class ChannelExecutor<in out Env, in InErr, in InElem, in InDone, out Out
1006
998
  }
1007
999
  }
1008
1000
 
1009
- const ifNotNull = <Env>(effect: Effect.Effect<Env, never, unknown> | undefined): Effect.Effect<Env, never, unknown> =>
1001
+ const ifNotNull = <Env>(effect: Effect.Effect<unknown, never, Env> | undefined): Effect.Effect<unknown, never, Env> =>
1010
1002
  effect !== undefined ? effect : Effect.unit
1011
1003
 
1012
1004
  const runFinalizers = <Env>(
1013
1005
  finalizers: Array<ErasedFinalizer<Env>>,
1014
1006
  exit: Exit.Exit<unknown, unknown>
1015
- ): Effect.Effect<Env, never, unknown> => {
1007
+ ): Effect.Effect<unknown, never, Env> => {
1016
1008
  return pipe(
1017
1009
  Effect.forEach(finalizers, (fin) => Effect.exit(fin(exit))),
1018
1010
  Effect.map((exits) => pipe(Exit.all(exits), Option.getOrElse(() => Exit.unit))),
1019
- Effect.flatMap((exit) => Effect.suspend(() => exit as Exit.Exit<never, unknown>))
1011
+ Effect.flatMap((exit) => Effect.suspend(() => exit as Exit.Exit<unknown>))
1020
1012
  )
1021
1013
  }
1022
1014
 
@@ -1025,11 +1017,11 @@ const runFinalizers = <Env>(
1025
1017
  */
1026
1018
  export const readUpstream = <R, E, E2, A>(
1027
1019
  r: ChannelState.Read,
1028
- onSuccess: () => Effect.Effect<R, E2, A>,
1029
- onFailure: (cause: Cause.Cause<E>) => Effect.Effect<R, E2, A>
1030
- ): Effect.Effect<R, E2, A> => {
1020
+ onSuccess: () => Effect.Effect<A, E2, R>,
1021
+ onFailure: (cause: Cause.Cause<E>) => Effect.Effect<A, E2, R>
1022
+ ): Effect.Effect<A, E2, R> => {
1031
1023
  const readStack = [r as ChannelState.Read]
1032
- const read = (): Effect.Effect<R, E2, A> => {
1024
+ const read = (): Effect.Effect<A, E2, R> => {
1033
1025
  const current = readStack.pop()
1034
1026
  if (current === undefined || current.upstream === undefined) {
1035
1027
  return Effect.dieMessage("Unexpected end of input for channel execution")
@@ -1043,7 +1035,7 @@ export const readUpstream = <R, E, E2, A>(
1043
1035
  return Effect.suspend(onSuccess)
1044
1036
  }
1045
1037
  return pipe(
1046
- emitEffect as Effect.Effect<never, never, void>,
1038
+ emitEffect as Effect.Effect<void>,
1047
1039
  Effect.matchCauseEffect({ onFailure, onSuccess })
1048
1040
  )
1049
1041
  }
@@ -1051,7 +1043,7 @@ export const readUpstream = <R, E, E2, A>(
1051
1043
  return Effect.suspend(() => read())
1052
1044
  }
1053
1045
  return pipe(
1054
- emitEffect as Effect.Effect<never, never, void>,
1046
+ emitEffect as Effect.Effect<void>,
1055
1047
  Effect.matchCauseEffect({ onFailure, onSuccess: () => read() })
1056
1048
  )
1057
1049
  }
@@ -1063,7 +1055,7 @@ export const readUpstream = <R, E, E2, A>(
1063
1055
  return Effect.suspend(onSuccess)
1064
1056
  }
1065
1057
  return pipe(
1066
- doneEffect as Effect.Effect<never, never, void>,
1058
+ doneEffect as Effect.Effect<void>,
1067
1059
  Effect.matchCauseEffect({ onFailure, onSuccess })
1068
1060
  )
1069
1061
  }
@@ -1071,7 +1063,7 @@ export const readUpstream = <R, E, E2, A>(
1071
1063
  return Effect.suspend(() => read())
1072
1064
  }
1073
1065
  return pipe(
1074
- doneEffect as Effect.Effect<never, never, void>,
1066
+ doneEffect as Effect.Effect<void>,
1075
1067
  Effect.matchCauseEffect({ onFailure, onSuccess: () => read() })
1076
1068
  )
1077
1069
  }
@@ -1079,10 +1071,10 @@ export const readUpstream = <R, E, E2, A>(
1079
1071
  case ChannelStateOpCodes.OP_FROM_EFFECT: {
1080
1072
  readStack.push(current)
1081
1073
  return pipe(
1082
- current.onEffect(state.effect as Effect.Effect<never, never, void>) as Effect.Effect<never, never, void>,
1074
+ current.onEffect(state.effect as Effect.Effect<void>) as Effect.Effect<void>,
1083
1075
  Effect.catchAllCause((cause) =>
1084
1076
  Effect.suspend(() => {
1085
- const doneEffect = current.onDone(Exit.failCause(cause)) as Effect.Effect<never, never, void>
1077
+ const doneEffect = current.onDone(Exit.failCause(cause)) as Effect.Effect<void>
1086
1078
  return doneEffect === undefined ? Effect.unit : doneEffect
1087
1079
  })
1088
1080
  ),
@@ -1102,16 +1094,16 @@ export const readUpstream = <R, E, E2, A>(
1102
1094
 
1103
1095
  /** @internal */
1104
1096
  export const run = <Env, InErr, InDone, OutErr, OutDone>(
1105
- self: Channel.Channel<Env, InErr, unknown, InDone, OutErr, never, OutDone>
1106
- ): Effect.Effect<Env, OutErr, OutDone> => pipe(runScoped(self), Effect.scoped)
1097
+ self: Channel.Channel<never, unknown, OutErr, InErr, OutDone, InDone, Env>
1098
+ ): Effect.Effect<OutDone, OutErr, Env> => pipe(runScoped(self), Effect.scoped)
1107
1099
 
1108
1100
  /** @internal */
1109
1101
  export const runScoped = <Env, InErr, InDone, OutErr, OutDone>(
1110
- self: Channel.Channel<Env, InErr, unknown, InDone, OutErr, never, OutDone>
1111
- ): Effect.Effect<Env | Scope.Scope, OutErr, OutDone> => {
1102
+ self: Channel.Channel<never, unknown, OutErr, InErr, OutDone, InDone, Env>
1103
+ ): Effect.Effect<OutDone, OutErr, Env | Scope.Scope> => {
1112
1104
  const run = (
1113
- channelDeferred: Deferred.Deferred<OutErr, OutDone>,
1114
- scopeDeferred: Deferred.Deferred<never, void>,
1105
+ channelDeferred: Deferred.Deferred<OutDone, OutErr>,
1106
+ scopeDeferred: Deferred.Deferred<void>,
1115
1107
  scope: Scope.Scope
1116
1108
  ) =>
1117
1109
  Effect.acquireUseRelease(
@@ -1141,8 +1133,8 @@ export const runScoped = <Env, InErr, InDone, OutErr, OutDone>(
1141
1133
  pipe(
1142
1134
  Effect.all([
1143
1135
  Scope.fork(parent, ExecutionStrategy.sequential),
1144
- Deferred.make<OutErr, OutDone>(),
1145
- Deferred.make<never, void>()
1136
+ Deferred.make<OutDone, OutErr>(),
1137
+ Deferred.make<void>()
1146
1138
  ]),
1147
1139
  Effect.flatMap(([child, channelDeferred, scopeDeferred]) =>
1148
1140
  pipe(
@@ -1163,13 +1155,13 @@ export const runScoped = <Env, InErr, InDone, OutErr, OutDone>(
1163
1155
  /** @internal */
1164
1156
  const runScopedInterpret = <Env, InErr, InDone, OutErr, OutDone>(
1165
1157
  channelState: ChannelState.ChannelState<Env, OutErr>,
1166
- exec: ChannelExecutor<Env, InErr, unknown, InDone, OutErr, never, OutDone>
1167
- ): Effect.Effect<Env, OutErr, OutDone> => {
1158
+ exec: ChannelExecutor<never, unknown, OutErr, InErr, OutDone, InDone, Env>
1159
+ ): Effect.Effect<OutDone, OutErr, Env> => {
1168
1160
  const op = channelState as ChannelState.Primitive
1169
1161
  switch (op._tag) {
1170
1162
  case ChannelStateOpCodes.OP_FROM_EFFECT: {
1171
1163
  return pipe(
1172
- op.effect as Effect.Effect<Env, OutErr, OutDone>,
1164
+ op.effect as Effect.Effect<OutDone, OutErr, Env>,
1173
1165
  Effect.flatMap(() => runScopedInterpret(exec.run() as ChannelState.ChannelState<Env, OutErr>, exec))
1174
1166
  )
1175
1167
  }
@@ -1188,7 +1180,7 @@ const runScopedInterpret = <Env, InErr, InDone, OutErr, OutDone>(
1188
1180
  op,
1189
1181
  () => runScopedInterpret(exec.run() as ChannelState.ChannelState<Env, OutErr>, exec),
1190
1182
  Effect.failCause
1191
- ) as Effect.Effect<Env, OutErr, OutDone>
1183
+ ) as Effect.Effect<OutDone, OutErr, Env>
1192
1184
  }
1193
1185
  }
1194
1186
  }