effect 2.2.5 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +19 -19
  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 +19 -19
  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
@@ -4,6 +4,7 @@ import type * as Effect from "../Effect.js"
4
4
  import { dual, pipe } from "../Function.js"
5
5
  import * as MutableQueue from "../MutableQueue.js"
6
6
  import * as MutableRef from "../MutableRef.js"
7
+ import { nextPow2 } from "../Number.js"
7
8
  import * as Option from "../Option.js"
8
9
  import { pipeArguments } from "../Pipeable.js"
9
10
  import type * as PubSub from "../PubSub.js"
@@ -41,12 +42,12 @@ interface Subscription<out A> {
41
42
  /** @internal */
42
43
  type Subscribers<A> = Map<
43
44
  Subscription<A>,
44
- Set<MutableQueue.MutableQueue<Deferred.Deferred<never, A>>>
45
+ Set<MutableQueue.MutableQueue<Deferred.Deferred<A>>>
45
46
  >
46
47
 
47
48
  const addSubscribers = <A>(
48
49
  subscription: Subscription<A>,
49
- pollers: MutableQueue.MutableQueue<Deferred.Deferred<never, A>>
50
+ pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
50
51
  ) =>
51
52
  (subscribers: Subscribers<A>) => {
52
53
  if (!subscribers.has(subscription)) {
@@ -58,7 +59,7 @@ const addSubscribers = <A>(
58
59
 
59
60
  const removeSubscribers = <A>(
60
61
  subscription: Subscription<A>,
61
- pollers: MutableQueue.MutableQueue<Deferred.Deferred<never, A>>
62
+ pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
62
63
  ) =>
63
64
  (subscribers: Subscribers<A>) => {
64
65
  if (!subscribers.has(subscription)) {
@@ -72,28 +73,28 @@ const removeSubscribers = <A>(
72
73
  }
73
74
 
74
75
  /** @internal */
75
- export const bounded = <A>(requestedCapacity: number): Effect.Effect<never, never, PubSub.PubSub<A>> =>
76
+ export const bounded = <A>(requestedCapacity: number): Effect.Effect<PubSub.PubSub<A>> =>
76
77
  pipe(
77
78
  core.sync(() => makeBoundedPubSub<A>(requestedCapacity)),
78
79
  core.flatMap((atomicPubSub) => makePubSub(atomicPubSub, new BackPressureStrategy()))
79
80
  )
80
81
 
81
82
  /** @internal */
82
- export const dropping = <A>(requestedCapacity: number): Effect.Effect<never, never, PubSub.PubSub<A>> =>
83
+ export const dropping = <A>(requestedCapacity: number): Effect.Effect<PubSub.PubSub<A>> =>
83
84
  pipe(
84
85
  core.sync(() => makeBoundedPubSub<A>(requestedCapacity)),
85
86
  core.flatMap((atomicPubSub) => makePubSub(atomicPubSub, new DroppingStrategy()))
86
87
  )
87
88
 
88
89
  /** @internal */
89
- export const sliding = <A>(requestedCapacity: number): Effect.Effect<never, never, PubSub.PubSub<A>> =>
90
+ export const sliding = <A>(requestedCapacity: number): Effect.Effect<PubSub.PubSub<A>> =>
90
91
  pipe(
91
92
  core.sync(() => makeBoundedPubSub<A>(requestedCapacity)),
92
93
  core.flatMap((atomicPubSub) => makePubSub(atomicPubSub, new SlidingStrategy()))
93
94
  )
94
95
 
95
96
  /** @internal */
96
- export const unbounded = <A>(): Effect.Effect<never, never, PubSub.PubSub<A>> =>
97
+ export const unbounded = <A>(): Effect.Effect<PubSub.PubSub<A>> =>
97
98
  pipe(
98
99
  core.sync(() => makeUnboundedPubSub<A>()),
99
100
  core.flatMap((atomicPubSub) => makePubSub(atomicPubSub, new DroppingStrategy()))
@@ -103,37 +104,37 @@ export const unbounded = <A>(): Effect.Effect<never, never, PubSub.PubSub<A>> =>
103
104
  export const capacity = <A>(self: PubSub.PubSub<A>): number => self.capacity()
104
105
 
105
106
  /** @internal */
106
- export const size = <A>(self: PubSub.PubSub<A>): Effect.Effect<never, never, number> => self.size
107
+ export const size = <A>(self: PubSub.PubSub<A>): Effect.Effect<number> => self.size
107
108
 
108
109
  /** @internal */
109
- export const isFull = <A>(self: PubSub.PubSub<A>): Effect.Effect<never, never, boolean> => self.isFull
110
+ export const isFull = <A>(self: PubSub.PubSub<A>): Effect.Effect<boolean> => self.isFull
110
111
 
111
112
  /** @internal */
112
- export const isEmpty = <A>(self: PubSub.PubSub<A>): Effect.Effect<never, never, boolean> => self.isEmpty
113
+ export const isEmpty = <A>(self: PubSub.PubSub<A>): Effect.Effect<boolean> => self.isEmpty
113
114
 
114
115
  /** @internal */
115
- export const shutdown = <A>(self: PubSub.PubSub<A>): Effect.Effect<never, never, void> => self.shutdown
116
+ export const shutdown = <A>(self: PubSub.PubSub<A>): Effect.Effect<void> => self.shutdown
116
117
 
117
118
  /** @internal */
118
- export const isShutdown = <A>(self: PubSub.PubSub<A>): Effect.Effect<never, never, boolean> => self.isShutdown
119
+ export const isShutdown = <A>(self: PubSub.PubSub<A>): Effect.Effect<boolean> => self.isShutdown
119
120
 
120
121
  /** @internal */
121
- export const awaitShutdown = <A>(self: PubSub.PubSub<A>): Effect.Effect<never, never, void> => self.awaitShutdown
122
+ export const awaitShutdown = <A>(self: PubSub.PubSub<A>): Effect.Effect<void> => self.awaitShutdown
122
123
 
123
124
  /** @internal */
124
125
  export const publish = dual<
125
- <A>(value: A) => (self: PubSub.PubSub<A>) => Effect.Effect<never, never, boolean>,
126
- <A>(self: PubSub.PubSub<A>, value: A) => Effect.Effect<never, never, boolean>
126
+ <A>(value: A) => (self: PubSub.PubSub<A>) => Effect.Effect<boolean>,
127
+ <A>(self: PubSub.PubSub<A>, value: A) => Effect.Effect<boolean>
127
128
  >(2, (self, value) => self.publish(value))
128
129
 
129
130
  /** @internal */
130
131
  export const publishAll = dual<
131
- <A>(elements: Iterable<A>) => (self: PubSub.PubSub<A>) => Effect.Effect<never, never, boolean>,
132
- <A>(self: PubSub.PubSub<A>, elements: Iterable<A>) => Effect.Effect<never, never, boolean>
132
+ <A>(elements: Iterable<A>) => (self: PubSub.PubSub<A>) => Effect.Effect<boolean>,
133
+ <A>(self: PubSub.PubSub<A>, elements: Iterable<A>) => Effect.Effect<boolean>
133
134
  >(2, (self, elements) => self.publishAll(elements))
134
135
 
135
136
  /** @internal */
136
- export const subscribe = <A>(self: PubSub.PubSub<A>): Effect.Effect<Scope.Scope, never, Queue.Dequeue<A>> =>
137
+ export const subscribe = <A>(self: PubSub.PubSub<A>): Effect.Effect<Queue.Dequeue<A>, never, Scope.Scope> =>
137
138
  self.subscribe
138
139
 
139
140
  /** @internal */
@@ -158,13 +159,13 @@ const makeSubscription = <A>(
158
159
  pubsub: AtomicPubSub<A>,
159
160
  subscribers: Subscribers<A>,
160
161
  strategy: PubSubStrategy<A>
161
- ): Effect.Effect<never, never, Queue.Dequeue<A>> =>
162
- core.map(core.deferredMake<never, void>(), (deferred) =>
162
+ ): Effect.Effect<Queue.Dequeue<A>> =>
163
+ core.map(core.deferredMake<void>(), (deferred) =>
163
164
  unsafeMakeSubscription(
164
165
  pubsub,
165
166
  subscribers,
166
167
  pubsub.subscribe(),
167
- MutableQueue.unbounded<Deferred.Deferred<never, A>>(),
168
+ MutableQueue.unbounded<Deferred.Deferred<A>>(),
168
169
  deferred,
169
170
  MutableRef.make(false),
170
171
  strategy
@@ -175,8 +176,8 @@ export const unsafeMakeSubscription = <A>(
175
176
  pubsub: AtomicPubSub<A>,
176
177
  subscribers: Subscribers<A>,
177
178
  subscription: Subscription<A>,
178
- pollers: MutableQueue.MutableQueue<Deferred.Deferred<never, A>>,
179
- shutdownHook: Deferred.Deferred<never, void>,
179
+ pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>>,
180
+ shutdownHook: Deferred.Deferred<void>,
180
181
  shutdownFlag: MutableRef.MutableRef<boolean>,
181
182
  strategy: PubSubStrategy<A>
182
183
  ): Queue.Dequeue<A> => {
@@ -826,8 +827,8 @@ class SubscriptionImpl<in out A> implements Queue.Dequeue<A> {
826
827
  readonly pubsub: AtomicPubSub<A>,
827
828
  readonly subscribers: Subscribers<A>,
828
829
  readonly subscription: Subscription<A>,
829
- readonly pollers: MutableQueue.MutableQueue<Deferred.Deferred<never, A>>,
830
- readonly shutdownHook: Deferred.Deferred<never, void>,
830
+ readonly pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>>,
831
+ readonly shutdownHook: Deferred.Deferred<void>,
831
832
  readonly shutdownFlag: MutableRef.MutableRef<boolean>,
832
833
  readonly strategy: PubSubStrategy<A>
833
834
  ) {
@@ -845,7 +846,7 @@ class SubscriptionImpl<in out A> implements Queue.Dequeue<A> {
845
846
  return !MutableRef.get(this.shutdownFlag)
846
847
  }
847
848
 
848
- get size(): Effect.Effect<never, never, number> {
849
+ get size(): Effect.Effect<number> {
849
850
  return core.suspend(() =>
850
851
  MutableRef.get(this.shutdownFlag)
851
852
  ? core.interrupt
@@ -860,17 +861,17 @@ class SubscriptionImpl<in out A> implements Queue.Dequeue<A> {
860
861
  return Option.some(this.subscription.size())
861
862
  }
862
863
 
863
- get isFull(): Effect.Effect<never, never, boolean> {
864
+ get isFull(): Effect.Effect<boolean> {
864
865
  return core.map(this.size, (size) => size === this.capacity())
865
866
  }
866
867
 
867
- get isEmpty(): Effect.Effect<never, never, boolean> {
868
+ get isEmpty(): Effect.Effect<boolean> {
868
869
  return core.map(this.size, (size) => size === 0)
869
870
  }
870
871
 
871
- get shutdown(): Effect.Effect<never, never, void> {
872
+ get shutdown(): Effect.Effect<void> {
872
873
  return core.uninterruptible(
873
- core.withFiberRuntime<never, never, void>((state) => {
874
+ core.withFiberRuntime<void>((state) => {
874
875
  MutableRef.set(this.shutdownFlag, true)
875
876
  return pipe(
876
877
  fiberRuntime.forEachParUnbounded(
@@ -890,16 +891,16 @@ class SubscriptionImpl<in out A> implements Queue.Dequeue<A> {
890
891
  )
891
892
  }
892
893
 
893
- get isShutdown(): Effect.Effect<never, never, boolean> {
894
+ get isShutdown(): Effect.Effect<boolean> {
894
895
  return core.sync(() => MutableRef.get(this.shutdownFlag))
895
896
  }
896
897
 
897
- get awaitShutdown(): Effect.Effect<never, never, void> {
898
+ get awaitShutdown(): Effect.Effect<void> {
898
899
  return core.deferredAwait(this.shutdownHook)
899
900
  }
900
901
 
901
- get take(): Effect.Effect<never, never, A> {
902
- return core.withFiberRuntime<never, never, A>((state) => {
902
+ get take(): Effect.Effect<A> {
903
+ return core.withFiberRuntime((state) => {
903
904
  if (MutableRef.get(this.shutdownFlag)) {
904
905
  return core.interrupt
905
906
  }
@@ -907,7 +908,7 @@ class SubscriptionImpl<in out A> implements Queue.Dequeue<A> {
907
908
  ? this.subscription.poll(MutableQueue.EmptyMutableQueue)
908
909
  : MutableQueue.EmptyMutableQueue
909
910
  if (message === MutableQueue.EmptyMutableQueue) {
910
- const deferred = core.deferredUnsafeMake<never, A>(state.id())
911
+ const deferred = core.deferredUnsafeMake<A>(state.id())
911
912
  return pipe(
912
913
  core.suspend(() => {
913
914
  pipe(this.pollers, MutableQueue.offer(deferred))
@@ -929,7 +930,7 @@ class SubscriptionImpl<in out A> implements Queue.Dequeue<A> {
929
930
  })
930
931
  }
931
932
 
932
- get takeAll(): Effect.Effect<never, never, Chunk.Chunk<A>> {
933
+ get takeAll(): Effect.Effect<Chunk.Chunk<A>> {
933
934
  return core.suspend(() => {
934
935
  if (MutableRef.get(this.shutdownFlag)) {
935
936
  return core.interrupt
@@ -942,7 +943,7 @@ class SubscriptionImpl<in out A> implements Queue.Dequeue<A> {
942
943
  })
943
944
  }
944
945
 
945
- takeUpTo(this: this, max: number): Effect.Effect<never, never, Chunk.Chunk<A>> {
946
+ takeUpTo(this: this, max: number): Effect.Effect<Chunk.Chunk<A>> {
946
947
  return core.suspend(() => {
947
948
  if (MutableRef.get(this.shutdownFlag)) {
948
949
  return core.interrupt
@@ -955,7 +956,7 @@ class SubscriptionImpl<in out A> implements Queue.Dequeue<A> {
955
956
  })
956
957
  }
957
958
 
958
- takeBetween(min: number, max: number): Effect.Effect<never, never, Chunk.Chunk<A>> {
959
+ takeBetween(min: number, max: number): Effect.Effect<Chunk.Chunk<A>> {
959
960
  return core.suspend(() => takeRemainderLoop(this, min, max, Chunk.empty()))
960
961
  }
961
962
  }
@@ -966,7 +967,7 @@ const takeRemainderLoop = <A>(
966
967
  min: number,
967
968
  max: number,
968
969
  acc: Chunk.Chunk<A>
969
- ): Effect.Effect<never, never, Chunk.Chunk<A>> => {
970
+ ): Effect.Effect<Chunk.Chunk<A>> => {
970
971
  if (max < min) {
971
972
  return core.succeed(acc)
972
973
  }
@@ -1004,7 +1005,7 @@ class PubSubImpl<in out A> implements PubSub.PubSub<A> {
1004
1005
  readonly pubsub: AtomicPubSub<A>,
1005
1006
  readonly subscribers: Subscribers<A>,
1006
1007
  readonly scope: Scope.Scope.Closeable,
1007
- readonly shutdownHook: Deferred.Deferred<never, void>,
1008
+ readonly shutdownHook: Deferred.Deferred<void>,
1008
1009
  readonly shutdownFlag: MutableRef.MutableRef<boolean>,
1009
1010
  readonly strategy: PubSubStrategy<A>
1010
1011
  ) {
@@ -1014,7 +1015,7 @@ class PubSubImpl<in out A> implements PubSub.PubSub<A> {
1014
1015
  return this.pubsub.capacity
1015
1016
  }
1016
1017
 
1017
- get size(): Effect.Effect<never, never, number> {
1018
+ get size(): Effect.Effect<number> {
1018
1019
  return core.suspend(() =>
1019
1020
  MutableRef.get(this.shutdownFlag) ?
1020
1021
  core.interrupt :
@@ -1029,24 +1030,24 @@ class PubSubImpl<in out A> implements PubSub.PubSub<A> {
1029
1030
  return Option.some(this.pubsub.size())
1030
1031
  }
1031
1032
 
1032
- get isFull(): Effect.Effect<never, never, boolean> {
1033
+ get isFull(): Effect.Effect<boolean> {
1033
1034
  return core.map(this.size, (size) => size === this.capacity())
1034
1035
  }
1035
1036
 
1036
- get isEmpty(): Effect.Effect<never, never, boolean> {
1037
+ get isEmpty(): Effect.Effect<boolean> {
1037
1038
  return core.map(this.size, (size) => size === 0)
1038
1039
  }
1039
1040
 
1040
- get awaitShutdown(): Effect.Effect<never, never, void> {
1041
+ get awaitShutdown(): Effect.Effect<void> {
1041
1042
  return core.deferredAwait(this.shutdownHook)
1042
1043
  }
1043
1044
 
1044
- get isShutdown(): Effect.Effect<never, never, boolean> {
1045
+ get isShutdown(): Effect.Effect<boolean> {
1045
1046
  return core.sync(() => MutableRef.get(this.shutdownFlag))
1046
1047
  }
1047
1048
 
1048
- get shutdown(): Effect.Effect<never, never, void> {
1049
- return core.uninterruptible(core.withFiberRuntime<never, never, void>((state) => {
1049
+ get shutdown(): Effect.Effect<void> {
1050
+ return core.uninterruptible(core.withFiberRuntime((state) => {
1050
1051
  pipe(this.shutdownFlag, MutableRef.set(true))
1051
1052
  return pipe(
1052
1053
  this.scope.close(core.exitInterrupt(state.id())),
@@ -1057,7 +1058,7 @@ class PubSubImpl<in out A> implements PubSub.PubSub<A> {
1057
1058
  }))
1058
1059
  }
1059
1060
 
1060
- publish(value: A): Effect.Effect<never, never, boolean> {
1061
+ publish(value: A): Effect.Effect<boolean> {
1061
1062
  return core.suspend(() => {
1062
1063
  if (MutableRef.get(this.shutdownFlag)) {
1063
1064
  return core.interrupt
@@ -1094,7 +1095,7 @@ class PubSubImpl<in out A> implements PubSub.PubSub<A> {
1094
1095
  return false
1095
1096
  }
1096
1097
 
1097
- publishAll(elements: Iterable<A>): Effect.Effect<never, never, boolean> {
1098
+ publishAll(elements: Iterable<A>): Effect.Effect<boolean> {
1098
1099
  return core.suspend(() => {
1099
1100
  if (MutableRef.get(this.shutdownFlag)) {
1100
1101
  return core.interrupt
@@ -1113,7 +1114,7 @@ class PubSubImpl<in out A> implements PubSub.PubSub<A> {
1113
1114
  })
1114
1115
  }
1115
1116
 
1116
- get subscribe(): Effect.Effect<Scope.Scope, never, Queue.Dequeue<A>> {
1117
+ get subscribe(): Effect.Effect<Queue.Dequeue<A>, never, Scope.Scope> {
1117
1118
  const acquire = core.tap(
1118
1119
  fiberRuntime.all([
1119
1120
  this.scope.fork(executionStrategy.sequential),
@@ -1127,11 +1128,11 @@ class PubSubImpl<in out A> implements PubSub.PubSub<A> {
1127
1128
  )
1128
1129
  }
1129
1130
 
1130
- offer(value: A): Effect.Effect<never, never, boolean> {
1131
+ offer(value: A): Effect.Effect<boolean> {
1131
1132
  return this.publish(value)
1132
1133
  }
1133
1134
 
1134
- offerAll(elements: Iterable<A>): Effect.Effect<never, never, boolean> {
1135
+ offerAll(elements: Iterable<A>): Effect.Effect<boolean> {
1135
1136
  return this.publishAll(elements)
1136
1137
  }
1137
1138
 
@@ -1144,11 +1145,11 @@ class PubSubImpl<in out A> implements PubSub.PubSub<A> {
1144
1145
  export const makePubSub = <A>(
1145
1146
  pubsub: AtomicPubSub<A>,
1146
1147
  strategy: PubSubStrategy<A>
1147
- ): Effect.Effect<never, never, PubSub.PubSub<A>> =>
1148
+ ): Effect.Effect<PubSub.PubSub<A>> =>
1148
1149
  core.flatMap(
1149
1150
  fiberRuntime.scopeMake(),
1150
1151
  (scope) =>
1151
- core.map(core.deferredMake<never, void>(), (deferred) =>
1152
+ core.map(core.deferredMake<void>(), (deferred) =>
1152
1153
  unsafeMakePubSub(
1153
1154
  pubsub,
1154
1155
  new Map(),
@@ -1164,19 +1165,13 @@ export const unsafeMakePubSub = <A>(
1164
1165
  pubsub: AtomicPubSub<A>,
1165
1166
  subscribers: Subscribers<A>,
1166
1167
  scope: Scope.Scope.Closeable,
1167
- shutdownHook: Deferred.Deferred<never, void>,
1168
+ shutdownHook: Deferred.Deferred<void>,
1168
1169
  shutdownFlag: MutableRef.MutableRef<boolean>,
1169
1170
  strategy: PubSubStrategy<A>
1170
1171
  ): PubSub.PubSub<A> => {
1171
1172
  return new PubSubImpl(pubsub, subscribers, scope, shutdownHook, shutdownFlag, strategy)
1172
1173
  }
1173
1174
 
1174
- /** @internal */
1175
- const nextPow2 = (n: number): number => {
1176
- const nextPow = Math.ceil(Math.log(n) / Math.log(2.0))
1177
- return Math.max(Math.pow(2, nextPow), 2)
1178
- }
1179
-
1180
1175
  /** @internal */
1181
1176
  const ensureCapacity = (capacity: number): void => {
1182
1177
  if (capacity <= 0) {
@@ -1185,7 +1180,7 @@ const ensureCapacity = (capacity: number): void => {
1185
1180
  }
1186
1181
 
1187
1182
  /** @internal */
1188
- const unsafeCompleteDeferred = <A>(deferred: Deferred.Deferred<never, A>, a: A): void => {
1183
+ const unsafeCompleteDeferred = <A>(deferred: Deferred.Deferred<A>, a: A): void => {
1189
1184
  core.deferredUnsafeDone(deferred, core.succeed(a))
1190
1185
  }
1191
1186
 
@@ -1236,7 +1231,7 @@ export interface PubSubStrategy<in out A> {
1236
1231
  /**
1237
1232
  * Describes any finalization logic associated with this strategy.
1238
1233
  */
1239
- readonly shutdown: Effect.Effect<never, never, void>
1234
+ readonly shutdown: Effect.Effect<void>
1240
1235
 
1241
1236
  /**
1242
1237
  * Describes how publishers should signal to subscribers that they are
@@ -1247,7 +1242,7 @@ export interface PubSubStrategy<in out A> {
1247
1242
  subscribers: Subscribers<A>,
1248
1243
  elements: Iterable<A>,
1249
1244
  isShutdown: MutableRef.MutableRef<boolean>
1250
- ): Effect.Effect<never, never, boolean>
1245
+ ): Effect.Effect<boolean>
1251
1246
 
1252
1247
  /**
1253
1248
  * Describes how subscribers should signal to publishers waiting for space
@@ -1267,7 +1262,7 @@ export interface PubSubStrategy<in out A> {
1267
1262
  pubsub: AtomicPubSub<A>,
1268
1263
  subscribers: Subscribers<A>,
1269
1264
  subscription: Subscription<A>,
1270
- pollers: MutableQueue.MutableQueue<Deferred.Deferred<never, A>>
1265
+ pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
1271
1266
  ): void
1272
1267
 
1273
1268
  /**
@@ -1291,14 +1286,10 @@ export interface PubSubStrategy<in out A> {
1291
1286
  */
1292
1287
  class BackPressureStrategy<in out A> implements PubSubStrategy<A> {
1293
1288
  publishers: MutableQueue.MutableQueue<
1294
- readonly [
1295
- A,
1296
- Deferred.Deferred<never, boolean>,
1297
- boolean
1298
- ]
1289
+ readonly [A, Deferred.Deferred<boolean>, boolean]
1299
1290
  > = MutableQueue.unbounded()
1300
1291
 
1301
- get shutdown(): Effect.Effect<never, never, void> {
1292
+ get shutdown(): Effect.Effect<void> {
1302
1293
  return core.flatMap(core.fiberId, (fiberId) =>
1303
1294
  core.flatMap(
1304
1295
  core.sync(() => unsafePollAllQueue(this.publishers)),
@@ -1320,9 +1311,9 @@ class BackPressureStrategy<in out A> implements PubSubStrategy<A> {
1320
1311
  subscribers: Subscribers<A>,
1321
1312
  elements: Iterable<A>,
1322
1313
  isShutdown: MutableRef.MutableRef<boolean>
1323
- ): Effect.Effect<never, never, boolean> {
1324
- return core.withFiberRuntime<never, never, boolean>((state) => {
1325
- const deferred = core.deferredUnsafeMake<never, boolean>(state.id())
1314
+ ): Effect.Effect<boolean> {
1315
+ return core.withFiberRuntime((state) => {
1316
+ const deferred = core.deferredUnsafeMake<boolean>(state.id())
1326
1317
  return pipe(
1327
1318
  core.suspend(() => {
1328
1319
  this.unsafeOffer(elements, deferred)
@@ -1365,7 +1356,7 @@ class BackPressureStrategy<in out A> implements PubSubStrategy<A> {
1365
1356
  pubsub: AtomicPubSub<A>,
1366
1357
  subscribers: Subscribers<A>,
1367
1358
  subscription: Subscription<A>,
1368
- pollers: MutableQueue.MutableQueue<Deferred.Deferred<never, A>>
1359
+ pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
1369
1360
  ): void {
1370
1361
  return unsafeStrategyCompletePollers(this, pubsub, subscribers, subscription, pollers)
1371
1362
  }
@@ -1374,7 +1365,7 @@ class BackPressureStrategy<in out A> implements PubSubStrategy<A> {
1374
1365
  return unsafeStrategyCompleteSubscribers(this, pubsub, subscribers)
1375
1366
  }
1376
1367
 
1377
- private unsafeOffer(elements: Iterable<A>, deferred: Deferred.Deferred<never, boolean>): void {
1368
+ private unsafeOffer(elements: Iterable<A>, deferred: Deferred.Deferred<boolean>): void {
1378
1369
  const iterator = elements[Symbol.iterator]()
1379
1370
  let next: IteratorResult<A> = iterator.next()
1380
1371
  if (!next.done) {
@@ -1397,7 +1388,7 @@ class BackPressureStrategy<in out A> implements PubSubStrategy<A> {
1397
1388
  }
1398
1389
  }
1399
1390
 
1400
- unsafeRemove(deferred: Deferred.Deferred<never, boolean>): void {
1391
+ unsafeRemove(deferred: Deferred.Deferred<boolean>): void {
1401
1392
  unsafeOfferAll(
1402
1393
  this.publishers,
1403
1394
  pipe(unsafePollAllQueue(this.publishers), Chunk.filter(([_, a]) => a !== deferred))
@@ -1416,7 +1407,7 @@ class BackPressureStrategy<in out A> implements PubSubStrategy<A> {
1416
1407
  * @internal
1417
1408
  */
1418
1409
  export class DroppingStrategy<in out A> implements PubSubStrategy<A> {
1419
- get shutdown(): Effect.Effect<never, never, void> {
1410
+ get shutdown(): Effect.Effect<void> {
1420
1411
  return core.unit
1421
1412
  }
1422
1413
 
@@ -1425,7 +1416,7 @@ export class DroppingStrategy<in out A> implements PubSubStrategy<A> {
1425
1416
  _subscribers: Subscribers<A>,
1426
1417
  _elements: Iterable<A>,
1427
1418
  _isShutdown: MutableRef.MutableRef<boolean>
1428
- ): Effect.Effect<never, never, boolean> {
1419
+ ): Effect.Effect<boolean> {
1429
1420
  return core.succeed(false)
1430
1421
  }
1431
1422
 
@@ -1440,7 +1431,7 @@ export class DroppingStrategy<in out A> implements PubSubStrategy<A> {
1440
1431
  pubsub: AtomicPubSub<A>,
1441
1432
  subscribers: Subscribers<A>,
1442
1433
  subscription: Subscription<A>,
1443
- pollers: MutableQueue.MutableQueue<Deferred.Deferred<never, A>>
1434
+ pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
1444
1435
  ): void {
1445
1436
  return unsafeStrategyCompletePollers(this, pubsub, subscribers, subscription, pollers)
1446
1437
  }
@@ -1460,7 +1451,7 @@ export class DroppingStrategy<in out A> implements PubSubStrategy<A> {
1460
1451
  * @internal
1461
1452
  */
1462
1453
  export class SlidingStrategy<in out A> implements PubSubStrategy<A> {
1463
- get shutdown(): Effect.Effect<never, never, void> {
1454
+ get shutdown(): Effect.Effect<void> {
1464
1455
  return core.unit
1465
1456
  }
1466
1457
 
@@ -1469,7 +1460,7 @@ export class SlidingStrategy<in out A> implements PubSubStrategy<A> {
1469
1460
  subscribers: Subscribers<A>,
1470
1461
  elements: Iterable<A>,
1471
1462
  _isShutdown: MutableRef.MutableRef<boolean>
1472
- ): Effect.Effect<never, never, boolean> {
1463
+ ): Effect.Effect<boolean> {
1473
1464
  return core.sync(() => {
1474
1465
  this.unsafeSlidingPublish(pubsub, elements)
1475
1466
  this.unsafeCompleteSubscribers(pubsub, subscribers)
@@ -1488,7 +1479,7 @@ export class SlidingStrategy<in out A> implements PubSubStrategy<A> {
1488
1479
  pubsub: AtomicPubSub<A>,
1489
1480
  subscribers: Subscribers<A>,
1490
1481
  subscription: Subscription<A>,
1491
- pollers: MutableQueue.MutableQueue<Deferred.Deferred<never, A>>
1482
+ pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
1492
1483
  ): void {
1493
1484
  return unsafeStrategyCompletePollers(this, pubsub, subscribers, subscription, pollers)
1494
1485
  }
@@ -1522,7 +1513,7 @@ const unsafeStrategyCompletePollers = <A>(
1522
1513
  pubsub: AtomicPubSub<A>,
1523
1514
  subscribers: Subscribers<A>,
1524
1515
  subscription: Subscription<A>,
1525
- pollers: MutableQueue.MutableQueue<Deferred.Deferred<never, A>>
1516
+ pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
1526
1517
  ): void => {
1527
1518
  let keepPolling = true
1528
1519
  while (keepPolling && !subscription.isEmpty()) {
@@ -42,21 +42,19 @@ export const currentCacheEnabled = globalValue(
42
42
  export const fromRequest = <
43
43
  A extends Request.Request<any, any>,
44
44
  Ds extends
45
- | RequestResolver.RequestResolver<A, never>
46
- | Effect.Effect<any, any, RequestResolver.RequestResolver<A, never>>
45
+ | RequestResolver.RequestResolver<A>
46
+ | Effect.Effect<RequestResolver.RequestResolver<A>, any, any>
47
47
  >(
48
48
  request: A,
49
49
  dataSource: Ds
50
50
  ): Effect.Effect<
51
- [Ds] extends [Effect.Effect<any, any, any>] ? Effect.Effect.Context<Ds> : never,
51
+ Request.Request.Success<A>,
52
52
  Request.Request.Error<A>,
53
- Request.Request.Success<A>
53
+ [Ds] extends [Effect.Effect<any, any, any>] ? Effect.Effect.Context<Ds> : never
54
54
  > =>
55
55
  core.flatMap(
56
56
  (core.isEffect(dataSource) ? dataSource : core.succeed(dataSource)) as Effect.Effect<
57
- never,
58
- never,
59
- RequestResolver.RequestResolver<A, never>
57
+ RequestResolver.RequestResolver<A>
60
58
  >,
61
59
  (ds) =>
62
60
  core.fiberIdWith((id) => {
@@ -92,7 +90,7 @@ export const fromRequest = <
92
90
  orNew.right.listeners.increment()
93
91
  return core.blocked(
94
92
  BlockedRequests.single(
95
- ds as RequestResolver.RequestResolver<A, never>,
93
+ ds as RequestResolver.RequestResolver<A>,
96
94
  BlockedRequests.makeEntry({
97
95
  request: proxy,
98
96
  result: orNew.right.handle,
@@ -118,11 +116,11 @@ export const fromRequest = <
118
116
  const listeners = new Listeners()
119
117
  listeners.increment()
120
118
  return core.flatMap(
121
- core.deferredMake<Request.Request.Error<A>, Request.Request.Success<A>>(),
119
+ core.deferredMake<Request.Request.Success<A>, Request.Request.Error<A>>(),
122
120
  (ref) =>
123
121
  core.blocked(
124
122
  BlockedRequests.single(
125
- ds as RequestResolver.RequestResolver<A, never>,
123
+ ds as RequestResolver.RequestResolver<A>,
126
124
  BlockedRequests.makeEntry({
127
125
  request: proxy,
128
126
  result: ref,
@@ -145,7 +143,7 @@ export const fromRequest = <
145
143
  export const cacheRequest = <A extends Request.Request<any, any>>(
146
144
  request: A,
147
145
  result: Request.Request.Result<A>
148
- ): Effect.Effect<never, never, void> => {
146
+ ): Effect.Effect<void> => {
149
147
  return core.fiberRefGetWith(currentCacheEnabled, (cacheEnabled) => {
150
148
  if (cacheEnabled) {
151
149
  return core.fiberRefGetWith(currentCache, (cache) =>
@@ -166,36 +164,36 @@ export const cacheRequest = <A extends Request.Request<any, any>>(
166
164
 
167
165
  /** @internal */
168
166
  export const withRequestCaching: {
169
- (strategy: boolean): <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
170
- <R, E, A>(
171
- self: Effect.Effect<R, E, A>,
167
+ (strategy: boolean): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
168
+ <A, E, R>(
169
+ self: Effect.Effect<A, E, R>,
172
170
  strategy: boolean
173
- ): Effect.Effect<R, E, A>
171
+ ): Effect.Effect<A, E, R>
174
172
  } = dual<
175
173
  (
176
174
  strategy: boolean
177
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
178
- <R, E, A>(
179
- self: Effect.Effect<R, E, A>,
175
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
176
+ <A, E, R>(
177
+ self: Effect.Effect<A, E, R>,
180
178
  strategy: boolean
181
- ) => Effect.Effect<R, E, A>
179
+ ) => Effect.Effect<A, E, R>
182
180
  >(2, (self, strategy) => core.fiberRefLocally(self, currentCacheEnabled, strategy))
183
181
 
184
182
  /** @internal */
185
183
  export const withRequestCache: {
186
- (cache: Request.Cache): <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
187
- <R, E, A>(
188
- self: Effect.Effect<R, E, A>,
184
+ (cache: Request.Cache): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
185
+ <A, E, R>(
186
+ self: Effect.Effect<A, E, R>,
189
187
  cache: Request.Cache
190
- ): Effect.Effect<R, E, A>
188
+ ): Effect.Effect<A, E, R>
191
189
  } = dual<
192
190
  (
193
191
  cache: Request.Cache
194
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
195
- <R, E, A>(
196
- self: Effect.Effect<R, E, A>,
192
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
193
+ <A, E, R>(
194
+ self: Effect.Effect<A, E, R>,
197
195
  cache: Request.Cache
198
- ) => Effect.Effect<R, E, A>
196
+ ) => Effect.Effect<A, E, R>
199
197
  >(
200
198
  2,
201
199
  // @ts-expect-error