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
@@ -7,9 +7,7 @@ export const make = (label: string, startTime: number): LogSpan.LogSpan => ({
7
7
  })
8
8
 
9
9
  /** @internal */
10
- export const render = (now: number) => {
11
- return (self: LogSpan.LogSpan): string => {
12
- const label = self.label.replace(/[\s="]/g, "_")
13
- return `${label}=${now - self.startTime}ms`
14
- }
10
+ export const render = (now: number) => (self: LogSpan.LogSpan): string => {
11
+ const label = self.label.replace(/[\s="]/g, "_")
12
+ return `${label}=${now - self.startTime}ms`
15
13
  }
@@ -22,7 +22,7 @@ export const MetricPollingTypeId: MetricPolling.MetricPollingTypeId = Symbol.for
22
22
  /** @internal */
23
23
  export const make = <Type, In, Out, R, E>(
24
24
  metric: Metric.Metric<Type, In, Out>,
25
- poll: Effect.Effect<R, E, In>
25
+ poll: Effect.Effect<In, E, R>
26
26
  ): MetricPolling.MetricPolling<Type, In, R, E, Out> => {
27
27
  return {
28
28
  [MetricPollingTypeId]: MetricPollingTypeId,
@@ -68,11 +68,11 @@ export const launch = dual<
68
68
  schedule: Schedule.Schedule<R2, unknown, A2>
69
69
  ) => <Type, In, R, E, Out>(
70
70
  self: MetricPolling.MetricPolling<Type, In, R, E, Out>
71
- ) => Effect.Effect<R | R2 | Scope.Scope, never, Fiber.Fiber<E, A2>>,
71
+ ) => Effect.Effect<Fiber.Fiber<A2, E>, never, R | R2 | Scope.Scope>,
72
72
  <Type, In, R, E, Out, R2, A2>(
73
73
  self: MetricPolling.MetricPolling<Type, In, R, E, Out>,
74
74
  schedule: Schedule.Schedule<R2, unknown, A2>
75
- ) => Effect.Effect<R | R2 | Scope.Scope, never, Fiber.Fiber<E, A2>>
75
+ ) => Effect.Effect<Fiber.Fiber<A2, E>, never, R | R2 | Scope.Scope>
76
76
  >(2, (self, schedule) =>
77
77
  pipe(
78
78
  pollAndUpdate(self),
@@ -83,12 +83,12 @@ export const launch = dual<
83
83
  /** @internal */
84
84
  export const poll = <Type, In, R, E, Out>(
85
85
  self: MetricPolling.MetricPolling<Type, In, R, E, Out>
86
- ): Effect.Effect<R, E, In> => self.poll
86
+ ): Effect.Effect<In, E, R> => self.poll
87
87
 
88
88
  /** @internal */
89
89
  export const pollAndUpdate = <Type, In, R, E, Out>(
90
90
  self: MetricPolling.MetricPolling<Type, In, R, E, Out>
91
- ): Effect.Effect<R, E, void> => core.flatMap(self.poll, (value) => metric.update(self.metric, value))
91
+ ): Effect.Effect<void, E, R> => core.flatMap(self.poll, (value) => metric.update(self.metric, value))
92
92
 
93
93
  /** @internal */
94
94
  export const retry = dual<
@@ -53,7 +53,7 @@ export const make: Metric.MetricApply = function<Type, In, Out>(
53
53
  unsafeValue: (extraTags: ReadonlyArray<MetricLabel.MetricLabel>) => Out
54
54
  ): Metric.Metric<Type, In, Out> {
55
55
  const metric: Metric.Metric<Type, In, Out> = Object.assign(
56
- <R, E, A extends In>(effect: Effect.Effect<R, E, A>): Effect.Effect<R, E, A> =>
56
+ <A extends In, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
57
57
  core.tap(
58
58
  effect,
59
59
  (a) => core.sync(() => unsafeUpdate(a, []))
@@ -173,18 +173,17 @@ export const histogram = (name: string, boundaries: MetricBoundaries.MetricBound
173
173
  /* @internal */
174
174
  export const increment = (
175
175
  self: Metric.Metric.Counter<number> | Metric.Metric.Counter<bigint>
176
- ): Effect.Effect<never, never, void> =>
177
- update(self as Metric.Metric.Counter<number>, self.keyType.bigint ? BigInt(1) as any : 1)
176
+ ): Effect.Effect<void> => update(self as Metric.Metric.Counter<number>, self.keyType.bigint ? BigInt(1) as any : 1)
178
177
 
179
178
  /* @internal */
180
179
  export const incrementBy = dual<
181
180
  {
182
- (amount: number): (self: Metric.Metric.Counter<number>) => Effect.Effect<never, never, void>
183
- (amount: bigint): (self: Metric.Metric.Counter<bigint>) => Effect.Effect<never, never, void>
181
+ (amount: number): (self: Metric.Metric.Counter<number>) => Effect.Effect<void>
182
+ (amount: bigint): (self: Metric.Metric.Counter<bigint>) => Effect.Effect<void>
184
183
  },
185
184
  {
186
- (self: Metric.Metric.Counter<number>, amount: number): Effect.Effect<never, never, void>
187
- (self: Metric.Metric.Counter<bigint>, amount: bigint): Effect.Effect<never, never, void>
185
+ (self: Metric.Metric.Counter<number>, amount: number): Effect.Effect<void>
186
+ (self: Metric.Metric.Counter<bigint>, amount: bigint): Effect.Effect<void>
188
187
  }
189
188
  >(2, (self, amount) => update(self as any, amount))
190
189
 
@@ -215,12 +214,12 @@ export const mapType = dual<
215
214
  /* @internal */
216
215
  export const set = dual<
217
216
  {
218
- (value: number): (self: Metric.Metric.Gauge<number>) => Effect.Effect<never, never, void>
219
- (value: bigint): (self: Metric.Metric.Gauge<bigint>) => Effect.Effect<never, never, void>
217
+ (value: number): (self: Metric.Metric.Gauge<number>) => Effect.Effect<void>
218
+ (value: bigint): (self: Metric.Metric.Gauge<bigint>) => Effect.Effect<void>
220
219
  },
221
220
  {
222
- (self: Metric.Metric.Gauge<number>, value: number): Effect.Effect<never, never, void>
223
- (self: Metric.Metric.Gauge<bigint>, value: bigint): Effect.Effect<never, never, void>
221
+ (self: Metric.Metric.Gauge<number>, value: number): Effect.Effect<void>
222
+ (self: Metric.Metric.Gauge<bigint>, value: bigint): Effect.Effect<void>
224
223
  }
225
224
  >(2, (self, value) => update(self as any, value))
226
225
 
@@ -339,11 +338,11 @@ export const trackAll = dual<
339
338
  input: In
340
339
  ) => <Type, Out>(
341
340
  self: Metric.Metric<Type, In, Out>
342
- ) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
341
+ ) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
343
342
  <Type, In, Out>(
344
343
  self: Metric.Metric<Type, In, Out>,
345
344
  input: In
346
- ) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
345
+ ) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
347
346
  >(2, (self, input) => (effect) =>
348
347
  core.matchCauseEffect(effect, {
349
348
  onFailure: (cause) => {
@@ -360,11 +359,11 @@ export const trackAll = dual<
360
359
  export const trackDefect = dual<
361
360
  <Type, Out>(
362
361
  metric: Metric.Metric<Type, unknown, Out>
363
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
364
- <R, E, A, Type, Out>(
365
- self: Effect.Effect<R, E, A>,
362
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
363
+ <A, E, R, Type, Out>(
364
+ self: Effect.Effect<A, E, R>,
366
365
  metric: Metric.Metric<Type, unknown, Out>
367
- ) => Effect.Effect<R, E, A>
366
+ ) => Effect.Effect<A, E, R>
368
367
  >(2, (self, metric) => trackDefectWith(self, metric, identity))
369
368
 
370
369
  /* @internal */
@@ -372,12 +371,12 @@ export const trackDefectWith = dual<
372
371
  <Type, In, Out>(
373
372
  metric: Metric.Metric<Type, In, Out>,
374
373
  f: (defect: unknown) => In
375
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
376
- <R, E, A, Type, In, Out>(
377
- self: Effect.Effect<R, E, A>,
374
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
375
+ <A, E, R, Type, In, Out>(
376
+ self: Effect.Effect<A, E, R>,
378
377
  metric: Metric.Metric<Type, In, Out>,
379
378
  f: (defect: unknown) => In
380
- ) => Effect.Effect<R, E, A>
379
+ ) => Effect.Effect<A, E, R>
381
380
  >(3, (self, metric, f) => {
382
381
  const updater = (defect: unknown): void => metric.unsafeUpdate(f(defect), [])
383
382
  return _effect.tapDefect(self, (cause) =>
@@ -393,11 +392,11 @@ export const trackDefectWith = dual<
393
392
  export const trackDuration = dual<
394
393
  <Type, Out>(
395
394
  metric: Metric.Metric<Type, Duration.Duration, Out>
396
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
397
- <R, E, A, Type, Out>(
398
- self: Effect.Effect<R, E, A>,
395
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
396
+ <A, E, R, Type, Out>(
397
+ self: Effect.Effect<A, E, R>,
399
398
  metric: Metric.Metric<Type, Duration.Duration, Out>
400
- ) => Effect.Effect<R, E, A>
399
+ ) => Effect.Effect<A, E, R>
401
400
  >(2, (self, metric) => trackDurationWith(self, metric, identity))
402
401
 
403
402
  /* @internal */
@@ -405,12 +404,12 @@ export const trackDurationWith = dual<
405
404
  <Type, In, Out>(
406
405
  metric: Metric.Metric<Type, In, Out>,
407
406
  f: (duration: Duration.Duration) => In
408
- ) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
409
- <R, E, A, Type, In, Out>(
410
- self: Effect.Effect<R, E, A>,
407
+ ) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
408
+ <A, E, R, Type, In, Out>(
409
+ self: Effect.Effect<A, E, R>,
411
410
  metric: Metric.Metric<Type, In, Out>,
412
411
  f: (duration: Duration.Duration) => In
413
- ) => Effect.Effect<R, E, A>
412
+ ) => Effect.Effect<A, E, R>
414
413
  >(3, (self, metric, f) =>
415
414
  Clock.clockWith((clock) => {
416
415
  const startTime = clock.unsafeCurrentTimeNanos()
@@ -426,13 +425,13 @@ export const trackDurationWith = dual<
426
425
  export const trackError = dual<
427
426
  <Type, In, Out>(
428
427
  metric: Metric.Metric<Type, In, Out>
429
- ) => <R, E extends In, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
428
+ ) => <R, E extends In, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
430
429
  <R, E extends In, A, Type, In, Out>(
431
- self: Effect.Effect<R, E, A>,
430
+ self: Effect.Effect<A, E, R>,
432
431
  metric: Metric.Metric<Type, In, Out>
433
- ) => Effect.Effect<R, E, A>
432
+ ) => Effect.Effect<A, E, R>
434
433
  >(2, <R, E extends In, A, Type, In, Out>(
435
- self: Effect.Effect<R, E, A>,
434
+ self: Effect.Effect<A, E, R>,
436
435
  metric: Metric.Metric<Type, In, Out>
437
436
  ) => trackErrorWith(self, metric, (a: In) => a))
438
437
 
@@ -441,18 +440,18 @@ export const trackErrorWith = dual<
441
440
  <Type, In, Out, In2>(
442
441
  metric: Metric.Metric<Type, In, Out>,
443
442
  f: (error: In2) => In
444
- ) => <R, E extends In2, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
443
+ ) => <R, E extends In2, A>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
445
444
  <R, E extends In2, A, Type, In, Out, In2>(
446
- self: Effect.Effect<R, E, A>,
445
+ self: Effect.Effect<A, E, R>,
447
446
  metric: Metric.Metric<Type, In, Out>,
448
447
  f: (error: In2) => In
449
- ) => Effect.Effect<R, E, A>
448
+ ) => Effect.Effect<A, E, R>
450
449
  >(3, <R, E extends In2, A, Type, In, Out, In2>(
451
- self: Effect.Effect<R, E, A>,
450
+ self: Effect.Effect<A, E, R>,
452
451
  metric: Metric.Metric<Type, In, Out>,
453
452
  f: (error: In2) => In
454
453
  ) => {
455
- const updater = (error: E): Effect.Effect<never, never, void> => update(metric, f(error))
454
+ const updater = (error: E): Effect.Effect<void> => update(metric, f(error))
456
455
  return _effect.tapError(self, updater)
457
456
  })
458
457
 
@@ -460,13 +459,13 @@ export const trackErrorWith = dual<
460
459
  export const trackSuccess = dual<
461
460
  <Type, In, Out>(
462
461
  metric: Metric.Metric<Type, In, Out>
463
- ) => <R, E, A extends In>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
464
- <R, E, A extends In, Type, In, Out>(
465
- self: Effect.Effect<R, E, A>,
462
+ ) => <A extends In, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
463
+ <A extends In, E, R, Type, In, Out>(
464
+ self: Effect.Effect<A, E, R>,
466
465
  metric: Metric.Metric<Type, In, Out>
467
- ) => Effect.Effect<R, E, A>
468
- >(2, <R, E, A extends In, Type, In, Out>(
469
- self: Effect.Effect<R, E, A>,
466
+ ) => Effect.Effect<A, E, R>
467
+ >(2, <A extends In, E, R, Type, In, Out>(
468
+ self: Effect.Effect<A, E, R>,
470
469
  metric: Metric.Metric<Type, In, Out>
471
470
  ) => trackSuccessWith(self, metric, (a: In) => a))
472
471
 
@@ -475,25 +474,25 @@ export const trackSuccessWith = dual<
475
474
  <Type, In, Out, In2>(
476
475
  metric: Metric.Metric<Type, In, Out>,
477
476
  f: (value: In2) => In
478
- ) => <R, E, A extends In2>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
479
- <R, E, A extends In2, Type, In, Out, In2>(
480
- self: Effect.Effect<R, E, A>,
477
+ ) => <A extends In2, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
478
+ <A extends In2, E, R, Type, In, Out, In2>(
479
+ self: Effect.Effect<A, E, R>,
481
480
  metric: Metric.Metric<Type, In, Out>,
482
481
  f: (value: In2) => In
483
- ) => Effect.Effect<R, E, A>
484
- >(3, <R, E, A extends In2, Type, In, Out, In2>(
485
- self: Effect.Effect<R, E, A>,
482
+ ) => Effect.Effect<A, E, R>
483
+ >(3, <A extends In2, E, R, Type, In, Out, In2>(
484
+ self: Effect.Effect<A, E, R>,
486
485
  metric: Metric.Metric<Type, In, Out>,
487
486
  f: (value: In2) => In
488
487
  ) => {
489
- const updater = (value: A): Effect.Effect<never, never, void> => update(metric, f(value))
488
+ const updater = (value: A): Effect.Effect<void> => update(metric, f(value))
490
489
  return core.tap(self, updater)
491
490
  })
492
491
 
493
492
  /* @internal */
494
493
  export const update = dual<
495
- <In>(input: In) => <Type, Out>(self: Metric.Metric<Type, In, Out>) => Effect.Effect<never, never, void>,
496
- <Type, In, Out>(self: Metric.Metric<Type, In, Out>, input: In) => Effect.Effect<never, never, void>
494
+ <In>(input: In) => <Type, Out>(self: Metric.Metric<Type, In, Out>) => Effect.Effect<void>,
495
+ <Type, In, Out>(self: Metric.Metric<Type, In, Out>, input: In) => Effect.Effect<void>
497
496
  >(2, (self, input) =>
498
497
  core.fiberRefGetWith(
499
498
  core.currentMetricLabels,
@@ -503,7 +502,7 @@ export const update = dual<
503
502
  /* @internal */
504
503
  export const value = <Type, In, Out>(
505
504
  self: Metric.Metric<Type, In, Out>
506
- ): Effect.Effect<never, never, Out> =>
505
+ ): Effect.Effect<Out> =>
507
506
  core.fiberRefGetWith(
508
507
  core.currentMetricLabels,
509
508
  (tags) => core.sync(() => self.unsafeValue(tags))
@@ -543,6 +542,6 @@ export const zip = dual<
543
542
  export const unsafeSnapshot = (): ReadonlyArray<MetricPair.MetricPair.Untyped> => globalMetricRegistry.snapshot()
544
543
 
545
544
  /** @internal */
546
- export const snapshot: Effect.Effect<never, never, ReadonlyArray<MetricPair.MetricPair.Untyped>> = core.sync(
545
+ export const snapshot: Effect.Effect<ReadonlyArray<MetricPair.MetricPair.Untyped>> = core.sync(
547
546
  unsafeSnapshot
548
547
  )
@@ -39,9 +39,9 @@ interface PoolState {
39
39
  readonly free: number
40
40
  }
41
41
 
42
- interface Attempted<E, A> {
43
- readonly result: Exit.Exit<E, A>
44
- readonly finalizer: Effect.Effect<never, never, unknown>
42
+ interface Attempted<A, E> {
43
+ readonly result: Exit.Exit<A, E>
44
+ readonly finalizer: Effect.Effect<unknown>
45
45
  }
46
46
 
47
47
  /**
@@ -52,20 +52,20 @@ interface Strategy<S, R, E, A> {
52
52
  /**
53
53
  * Describes how the initial state of the strategy should be allocated.
54
54
  */
55
- initial(): Effect.Effect<R, never, S>
55
+ initial(): Effect.Effect<S, never, R>
56
56
  /**
57
57
  * Describes how the state of the strategy should be updated when an item is
58
58
  * added to the pool or returned to the pool.
59
59
  */
60
- track(state: S, attempted: Exit.Exit<E, A>): Effect.Effect<never, never, void>
60
+ track(state: S, attempted: Exit.Exit<A, E>): Effect.Effect<void>
61
61
  /**
62
62
  * Describes how excess items that are not being used should shrink down.
63
63
  */
64
64
  run(
65
65
  state: S,
66
- getExcess: Effect.Effect<never, never, number>,
67
- shrink: Effect.Effect<never, never, void>
68
- ): Effect.Effect<never, never, void>
66
+ getExcess: Effect.Effect<number>,
67
+ shrink: Effect.Effect<void>
68
+ ): Effect.Effect<void>
69
69
  }
70
70
 
71
71
  /**
@@ -74,13 +74,13 @@ interface Strategy<S, R, E, A> {
74
74
  * nothing to do.
75
75
  */
76
76
  class NoneStrategy implements Strategy<unknown, never, never, never> {
77
- initial(): Effect.Effect<never, never, void> {
77
+ initial(): Effect.Effect<void> {
78
78
  return core.unit
79
79
  }
80
- track(): Effect.Effect<never, never, void> {
80
+ track(): Effect.Effect<void> {
81
81
  return core.unit
82
82
  }
83
- run(): Effect.Effect<never, never, void> {
83
+ run(): Effect.Effect<void> {
84
84
  return core.unit
85
85
  }
86
86
  }
@@ -91,7 +91,7 @@ class NoneStrategy implements Strategy<unknown, never, never, never> {
91
91
  */
92
92
  class TimeToLiveStrategy implements Strategy<readonly [Clock.Clock, Ref.Ref<number>], never, never, never> {
93
93
  constructor(readonly timeToLive: Duration.Duration) {}
94
- initial(): Effect.Effect<never, never, readonly [Clock.Clock, Ref.Ref<number>]> {
94
+ initial(): Effect.Effect<readonly [Clock.Clock, Ref.Ref<number>]> {
95
95
  return core.flatMap(effect.clock, (clock) =>
96
96
  core.flatMap(clock.currentTimeMillis, (now) =>
97
97
  core.map(
@@ -99,7 +99,7 @@ class TimeToLiveStrategy implements Strategy<readonly [Clock.Clock, Ref.Ref<numb
99
99
  (ref) => [clock, ref] as const
100
100
  )))
101
101
  }
102
- track(state: readonly [Clock.Clock, Ref.Ref<number>]): Effect.Effect<never, never, void> {
102
+ track(state: readonly [Clock.Clock, Ref.Ref<number>]): Effect.Effect<void> {
103
103
  return core.asUnit(core.flatMap(
104
104
  state[0].currentTimeMillis,
105
105
  (now) => ref.set(state[1], now)
@@ -107,9 +107,9 @@ class TimeToLiveStrategy implements Strategy<readonly [Clock.Clock, Ref.Ref<numb
107
107
  }
108
108
  run(
109
109
  state: readonly [Clock.Clock, Ref.Ref<number>],
110
- getExcess: Effect.Effect<never, never, number>,
111
- shrink: Effect.Effect<never, never, void>
112
- ): Effect.Effect<never, never, void> {
110
+ getExcess: Effect.Effect<number>,
111
+ shrink: Effect.Effect<void>
112
+ ): Effect.Effect<void> {
113
113
  return core.flatMap(getExcess, (excess) =>
114
114
  excess <= 0
115
115
  ? core.zipRight(
@@ -133,17 +133,17 @@ class TimeToLiveStrategy implements Strategy<readonly [Clock.Clock, Ref.Ref<numb
133
133
  }
134
134
  }
135
135
 
136
- class PoolImpl<in out E, in out A> implements Pool.Pool<E, A> {
136
+ class PoolImpl<in out A, in out E> implements Pool.Pool<A, E> {
137
137
  readonly [PoolTypeId] = poolVariance
138
138
  constructor(
139
- readonly creator: Effect.Effect<Scope.Scope, E, A>,
139
+ readonly creator: Effect.Effect<A, E, Scope.Scope>,
140
140
  readonly min: number,
141
141
  readonly max: number,
142
142
  readonly isShuttingDown: Ref.Ref<boolean>,
143
143
  readonly state: Ref.Ref<PoolState>,
144
- readonly items: Queue.Queue<Attempted<E, A>>,
144
+ readonly items: Queue.Queue<Attempted<A, E>>,
145
145
  readonly invalidated: Ref.Ref<HashSet.HashSet<A>>,
146
- readonly track: (exit: Exit.Exit<E, A>) => Effect.Effect<never, never, unknown>
146
+ readonly track: (exit: Exit.Exit<A, E>) => Effect.Effect<unknown>
147
147
  ) {}
148
148
 
149
149
  [Hash.symbol](): number {
@@ -161,24 +161,24 @@ class PoolImpl<in out E, in out A> implements Pool.Pool<E, A> {
161
161
 
162
162
  [Equal.symbol](that: unknown): boolean {
163
163
  return isPool(that) &&
164
- Equal.equals(this.creator, (that as PoolImpl<E, A>).creator) &&
165
- this.min === (that as PoolImpl<E, A>).min &&
166
- this.max === (that as PoolImpl<E, A>).max &&
167
- Equal.equals(this.isShuttingDown, (that as PoolImpl<E, A>).isShuttingDown) &&
168
- Equal.equals(this.state, (that as PoolImpl<E, A>).state) &&
169
- Equal.equals(this.items, (that as PoolImpl<E, A>).items) &&
170
- Equal.equals(this.invalidated, (that as PoolImpl<E, A>).invalidated) &&
171
- Equal.equals(this.track, (that as PoolImpl<E, A>).track)
164
+ Equal.equals(this.creator, (that as PoolImpl<A, E>).creator) &&
165
+ this.min === (that as PoolImpl<A, E>).min &&
166
+ this.max === (that as PoolImpl<A, E>).max &&
167
+ Equal.equals(this.isShuttingDown, (that as PoolImpl<A, E>).isShuttingDown) &&
168
+ Equal.equals(this.state, (that as PoolImpl<A, E>).state) &&
169
+ Equal.equals(this.items, (that as PoolImpl<A, E>).items) &&
170
+ Equal.equals(this.invalidated, (that as PoolImpl<A, E>).invalidated) &&
171
+ Equal.equals(this.track, (that as PoolImpl<A, E>).track)
172
172
  }
173
173
 
174
174
  pipe() {
175
175
  return pipeArguments(this, arguments)
176
176
  }
177
177
 
178
- get get(): Effect.Effect<Scope.Scope, E, A> {
178
+ get get(): Effect.Effect<A, E, Scope.Scope> {
179
179
  const acquire = (
180
- restore: <RX, EX, AX>(effect: Effect.Effect<RX, EX, AX>) => Effect.Effect<RX, EX, AX>
181
- ): Effect.Effect<never, never, Attempted<E, A>> =>
180
+ restore: <AX, EX, RX>(effect: Effect.Effect<AX, EX, RX>) => Effect.Effect<AX, EX, RX>
181
+ ): Effect.Effect<Attempted<A, E>> =>
182
182
  core.flatMap(ref.get(this.isShuttingDown), (down) =>
183
183
  down
184
184
  ? core.interrupt
@@ -214,7 +214,7 @@ class PoolImpl<in out E, in out A> implements Pool.Pool<E, A> {
214
214
  return [core.interrupt, state] as const
215
215
  })))
216
216
 
217
- const release = (attempted: Attempted<E, A>): Effect.Effect<never, never, unknown> =>
217
+ const release = (attempted: Attempted<A, E>): Effect.Effect<unknown> =>
218
218
  core.exitMatch(attempted.result, {
219
219
  onFailure: () =>
220
220
  core.flatten(ref.modify(this.state, (state) => {
@@ -252,22 +252,22 @@ class PoolImpl<in out E, in out A> implements Pool.Pool<E, A> {
252
252
  )
253
253
  }
254
254
 
255
- invalidate(item: A): Effect.Effect<never, never, void> {
255
+ invalidate(item: A): Effect.Effect<void> {
256
256
  return ref.update(this.invalidated, HashSet.add(item))
257
257
  }
258
258
  }
259
259
 
260
- const allocate = <E, A>(
261
- self: PoolImpl<E, A>,
262
- restore: <RX, EX, AX>(effect: Effect.Effect<RX, EX, AX>) => Effect.Effect<RX, EX, AX>
263
- ): Effect.Effect<never, never, unknown> =>
260
+ const allocate = <A, E>(
261
+ self: PoolImpl<A, E>,
262
+ restore: <AX, EX, RX>(effect: Effect.Effect<AX, EX, RX>) => Effect.Effect<AX, EX, RX>
263
+ ): Effect.Effect<unknown> =>
264
264
  core.flatMap(fiberRuntime.scopeMake(), (scope) =>
265
265
  core.flatMap(
266
266
  core.exit(restore(fiberRuntime.scopeExtend(self.creator, scope))),
267
267
  (exit) =>
268
268
  core.flatMap(
269
- core.succeed<Attempted<E, A>>({
270
- result: exit as Exit.Exit<E, A>,
269
+ core.succeed<Attempted<A, E>>({
270
+ result: exit as Exit.Exit<A, E>,
271
271
  finalizer: core.scopeClose(scope, core.exitSucceed(void 0))
272
272
  }),
273
273
  (attempted) =>
@@ -280,20 +280,20 @@ const allocate = <E, A>(
280
280
  )
281
281
  ))
282
282
 
283
- const allocateUinterruptible = <E, A>(
284
- self: PoolImpl<E, A>
285
- ): Effect.Effect<never, never, unknown> => core.uninterruptibleMask((restore) => allocate(self, restore))
283
+ const allocateUinterruptible = <A, E>(
284
+ self: PoolImpl<A, E>
285
+ ): Effect.Effect<unknown> => core.uninterruptibleMask((restore) => allocate(self, restore))
286
286
 
287
287
  /**
288
288
  * Returns the number of items in the pool in excess of the minimum size.
289
289
  */
290
- const excess = <E, A>(self: PoolImpl<E, A>): Effect.Effect<never, never, number> =>
290
+ const excess = <A, E>(self: PoolImpl<A, E>): Effect.Effect<number> =>
291
291
  core.map(ref.get(self.state), (state) => state.size - Math.min(self.min, state.free))
292
292
 
293
- const finalizeInvalid = <E, A>(
294
- self: PoolImpl<E, A>,
295
- attempted: Attempted<E, A>
296
- ): Effect.Effect<never, never, unknown> =>
293
+ const finalizeInvalid = <A, E>(
294
+ self: PoolImpl<A, E>,
295
+ attempted: Attempted<A, E>
296
+ ): Effect.Effect<unknown> =>
297
297
  pipe(
298
298
  forEach(attempted, (a) => ref.update(self.invalidated, HashSet.remove(a))),
299
299
  core.zipRight(attempted.finalizer),
@@ -311,7 +311,7 @@ const finalizeInvalid = <E, A>(
311
311
  * Gets items from the pool and shuts them down as long as there are items
312
312
  * free, signalling shutdown of the pool if the pool is empty.
313
313
  */
314
- const getAndShutdown = <E, A>(self: PoolImpl<E, A>): Effect.Effect<never, never, void> =>
314
+ const getAndShutdown = <A, E>(self: PoolImpl<A, E>): Effect.Effect<void> =>
315
315
  core.flatten(ref.modify(self.state, (state) => {
316
316
  if (state.free > 0) {
317
317
  return [
@@ -337,7 +337,7 @@ const getAndShutdown = <E, A>(self: PoolImpl<E, A>): Effect.Effect<never, never,
337
337
  /**
338
338
  * Begins pre-allocating pool entries based on minimum pool size.
339
339
  */
340
- const initialize = <E, A>(self: PoolImpl<E, A>): Effect.Effect<never, never, void> =>
340
+ const initialize = <A, E>(self: PoolImpl<A, E>): Effect.Effect<void> =>
341
341
  fiberRuntime.replicateEffect(
342
342
  core.uninterruptibleMask((restore) =>
343
343
  core.flatten(ref.modify(self.state, (state) => {
@@ -357,7 +357,7 @@ const initialize = <E, A>(self: PoolImpl<E, A>): Effect.Effect<never, never, voi
357
357
  /**
358
358
  * Shrinks the pool down, but never to less than the minimum size.
359
359
  */
360
- const shrink = <E, A>(self: PoolImpl<E, A>): Effect.Effect<never, never, void> =>
360
+ const shrink = <A, E>(self: PoolImpl<A, E>): Effect.Effect<void> =>
361
361
  core.uninterruptible(
362
362
  core.flatten(ref.modify(self.state, (state) => {
363
363
  if (state.size > self.min && state.free > 0) {
@@ -379,50 +379,50 @@ const shrink = <E, A>(self: PoolImpl<E, A>): Effect.Effect<never, never, void> =
379
379
  }))
380
380
  )
381
381
 
382
- const shutdown = <E, A>(self: PoolImpl<E, A>): Effect.Effect<never, never, void> =>
382
+ const shutdown = <A, E>(self: PoolImpl<A, E>): Effect.Effect<void> =>
383
383
  core.flatten(ref.modify(self.isShuttingDown, (down) =>
384
384
  down
385
385
  ? [queue.awaitShutdown(self.items), true] as const
386
386
  : [core.zipRight(getAndShutdown(self), queue.awaitShutdown(self.items)), true]))
387
387
 
388
- const isFailure = <E, A>(self: Attempted<E, A>): boolean => core.exitIsFailure(self.result)
388
+ const isFailure = <A, E>(self: Attempted<A, E>): boolean => core.exitIsFailure(self.result)
389
389
 
390
- const forEach = <E, A, R, E2>(
391
- self: Attempted<E, A>,
392
- f: (a: A) => Effect.Effect<R, E2, unknown>
393
- ): Effect.Effect<R, E2, unknown> =>
390
+ const forEach = <E, A, E2, R>(
391
+ self: Attempted<A, E>,
392
+ f: (a: A) => Effect.Effect<unknown, E2, R>
393
+ ): Effect.Effect<unknown, E2, R> =>
394
394
  core.exitMatch(self.result, {
395
395
  onFailure: () => core.unit,
396
396
  onSuccess: f
397
397
  })
398
398
 
399
- const toEffect = <E, A>(self: Attempted<E, A>): Effect.Effect<never, E, A> => self.result
399
+ const toEffect = <A, E>(self: Attempted<A, E>): Effect.Effect<A, E> => self.result
400
400
 
401
401
  /**
402
402
  * A more powerful variant of `make` that allows specifying a `Strategy` that
403
403
  * describes how a pool whose excess items are not being used will be shrunk
404
404
  * down to the minimum size.
405
405
  */
406
- const makeWith = <R, E, A, S, R2>(
406
+ const makeWith = <A, E, R, S, R2>(
407
407
  options: {
408
- readonly acquire: Effect.Effect<R, E, A>
408
+ readonly acquire: Effect.Effect<A, E, R>
409
409
  readonly min: number
410
410
  readonly max: number
411
411
  readonly strategy: Strategy<S, R2, E, A>
412
412
  }
413
- ): Effect.Effect<R | R2 | Scope.Scope, never, Pool.Pool<E, A>> =>
413
+ ): Effect.Effect<Pool.Pool<A, E>, never, R | R2 | Scope.Scope> =>
414
414
  core.uninterruptibleMask((restore) =>
415
415
  pipe(
416
416
  fiberRuntime.all([
417
417
  core.context<R>(),
418
418
  ref.make(false),
419
419
  ref.make<PoolState>({ size: 0, free: 0 }),
420
- queue.bounded<Attempted<E, A>>(options.max),
420
+ queue.bounded<Attempted<A, E>>(options.max),
421
421
  ref.make(HashSet.empty<A>()),
422
422
  options.strategy.initial()
423
423
  ]),
424
424
  core.flatMap(([context, down, state, items, inv, initial]) => {
425
- const pool = new PoolImpl<E, A>(
425
+ const pool = new PoolImpl<A, E>(
426
426
  core.mapInputContext(options.acquire, (old) => Context.merge(old)(context)),
427
427
  options.min,
428
428
  options.max,
@@ -447,7 +447,7 @@ const makeWith = <R, E, A, S, R2>(
447
447
  )
448
448
  )
449
449
  ),
450
- core.as<Pool.Pool<E, A>>(pool)
450
+ core.as<Pool.Pool<A, E>>(pool)
451
451
  )
452
452
  })
453
453
  )
@@ -457,12 +457,12 @@ const makeWith = <R, E, A, S, R2>(
457
457
  export const isPool = (u: unknown): u is Pool.Pool<unknown, unknown> => hasProperty(u, PoolTypeId)
458
458
 
459
459
  /** @internal */
460
- export const make = <R, E, A>(
460
+ export const make = <A, E, R>(
461
461
  options: {
462
- readonly acquire: Effect.Effect<R, E, A>
462
+ readonly acquire: Effect.Effect<A, E, R>
463
463
  readonly size: number
464
464
  }
465
- ): Effect.Effect<R | Scope.Scope, never, Pool.Pool<E, A>> =>
465
+ ): Effect.Effect<Pool.Pool<A, E>, never, R | Scope.Scope> =>
466
466
  makeWith({
467
467
  acquire: options.acquire,
468
468
  min: options.size,
@@ -471,14 +471,14 @@ export const make = <R, E, A>(
471
471
  })
472
472
 
473
473
  /** @internal */
474
- export const makeWithTTL = <R, E, A>(
474
+ export const makeWithTTL = <A, E, R>(
475
475
  options: {
476
- readonly acquire: Effect.Effect<R, E, A>
476
+ readonly acquire: Effect.Effect<A, E, R>
477
477
  readonly min: number
478
478
  readonly max: number
479
479
  readonly timeToLive: Duration.DurationInput
480
480
  }
481
- ): Effect.Effect<R | Scope.Scope, never, Pool.Pool<E, A>> =>
481
+ ): Effect.Effect<Pool.Pool<A, E>, never, R | Scope.Scope> =>
482
482
  makeWith({
483
483
  acquire: options.acquire,
484
484
  min: options.min,
@@ -487,10 +487,10 @@ export const makeWithTTL = <R, E, A>(
487
487
  })
488
488
 
489
489
  /** @internal */
490
- export const get = <E, A>(self: Pool.Pool<E, A>): Effect.Effect<Scope.Scope, E, A> => self.get
490
+ export const get = <A, E>(self: Pool.Pool<A, E>): Effect.Effect<A, E, Scope.Scope> => self.get
491
491
 
492
492
  /** @internal */
493
493
  export const invalidate = dual<
494
- <A>(value: A) => <E>(self: Pool.Pool<E, A>) => Effect.Effect<Scope.Scope, never, void>,
495
- <E, A>(self: Pool.Pool<E, A>, value: A) => Effect.Effect<Scope.Scope, never, void>
494
+ <A>(value: A) => <E>(self: Pool.Pool<A, E>) => Effect.Effect<void, never, Scope.Scope>,
495
+ <A, E>(self: Pool.Pool<A, E>, value: A) => Effect.Effect<void, never, Scope.Scope>
496
496
  >(2, (self, value) => self.invalidate(value))