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
@@ -57,12 +57,12 @@ class TPubSubImpl<in out A> implements TPubSub.TPubSub<A> {
57
57
  readonly subscribers: TRef.TRef<HashSet.HashSet<TRef.TRef<TRef.TRef<Node<A>> | undefined>>>
58
58
  ) {}
59
59
 
60
- isShutdown: STM.STM<never, never, boolean> = core.effect<never, boolean>((journal) => {
60
+ isShutdown: STM.STM<boolean> = core.effect<never, boolean>((journal) => {
61
61
  const currentPublisherTail = tRef.unsafeGet(this.publisherTail, journal)
62
62
  return currentPublisherTail === undefined
63
63
  })
64
64
 
65
- awaitShutdown: STM.STM<never, never, void> = core.flatMap(
65
+ awaitShutdown: STM.STM<void> = core.flatMap(
66
66
  this.isShutdown,
67
67
  (isShutdown) => isShutdown ? stm.unit : core.retry
68
68
  )
@@ -71,7 +71,7 @@ class TPubSubImpl<in out A> implements TPubSub.TPubSub<A> {
71
71
  return this.requestedCapacity
72
72
  }
73
73
 
74
- size: STM.STM<never, never, number> = core.withSTMRuntime((runtime) => {
74
+ size: STM.STM<number> = core.withSTMRuntime((runtime) => {
75
75
  const currentPublisherTail = tRef.unsafeGet(this.publisherTail, runtime.journal)
76
76
  if (currentPublisherTail === undefined) {
77
77
  return core.interruptAs(runtime.fiberId)
@@ -79,11 +79,11 @@ class TPubSubImpl<in out A> implements TPubSub.TPubSub<A> {
79
79
  return core.succeed(tRef.unsafeGet(this.pubsubSize, runtime.journal))
80
80
  })
81
81
 
82
- isEmpty: STM.STM<never, never, boolean> = core.map(this.size, (size) => size === 0)
82
+ isEmpty: STM.STM<boolean> = core.map(this.size, (size) => size === 0)
83
83
 
84
- isFull: STM.STM<never, never, boolean> = core.map(this.size, (size) => size === this.capacity())
84
+ isFull: STM.STM<boolean> = core.map(this.size, (size) => size === this.capacity())
85
85
 
86
- offer(value: A): STM.STM<never, never, boolean> {
86
+ offer(value: A): STM.STM<boolean> {
87
87
  return core.withSTMRuntime((runtime) => {
88
88
  const currentPublisherTail = tRef.unsafeGet(this.publisherTail, runtime.journal)
89
89
  if (currentPublisherTail === undefined) {
@@ -155,14 +155,14 @@ class TPubSubImpl<in out A> implements TPubSub.TPubSub<A> {
155
155
  })
156
156
  }
157
157
 
158
- offerAll(iterable: Iterable<A>): STM.STM<never, never, boolean> {
158
+ offerAll(iterable: Iterable<A>): STM.STM<boolean> {
159
159
  return core.map(
160
160
  stm.forEach(iterable, (a) => this.offer(a)),
161
161
  RA.every(identity)
162
162
  )
163
163
  }
164
164
 
165
- shutdown: STM.STM<never, never, void> = core.effect<never, void>((journal) => {
165
+ shutdown: STM.STM<void> = core.effect<never, void>((journal) => {
166
166
  const currentPublisherTail = tRef.unsafeGet(this.publisherTail, journal)
167
167
  if (currentPublisherTail !== undefined) {
168
168
  tRef.unsafeSet<TRef.TRef<Node<A> | undefined> | undefined>(this.publisherTail, void 0, journal)
@@ -188,12 +188,12 @@ class TPubSubSubscriptionImpl<in out A> implements TQueue.TDequeue<A> {
188
188
  readonly subscribers: TRef.TRef<HashSet.HashSet<TRef.TRef<TRef.TRef<Node<A>> | undefined>>>
189
189
  ) {}
190
190
 
191
- isShutdown: STM.STM<never, never, boolean> = core.effect<never, boolean>((journal) => {
191
+ isShutdown: STM.STM<boolean> = core.effect<never, boolean>((journal) => {
192
192
  const currentSubscriberHead = tRef.unsafeGet(this.subscriberHead, journal)
193
193
  return currentSubscriberHead === undefined
194
194
  })
195
195
 
196
- awaitShutdown: STM.STM<never, never, void> = core.flatMap(
196
+ awaitShutdown: STM.STM<void> = core.flatMap(
197
197
  this.isShutdown,
198
198
  (isShutdown) => isShutdown ? stm.unit : core.retry
199
199
  )
@@ -201,7 +201,7 @@ class TPubSubSubscriptionImpl<in out A> implements TQueue.TDequeue<A> {
201
201
  capacity(): number {
202
202
  return this.requestedCapacity
203
203
  }
204
- size: STM.STM<never, never, number> = core.withSTMRuntime((runtime) => {
204
+ size: STM.STM<number> = core.withSTMRuntime((runtime) => {
205
205
  let currentSubscriberHead = tRef.unsafeGet(this.subscriberHead, runtime.journal)
206
206
  if (currentSubscriberHead === undefined) {
207
207
  return core.interruptAs(runtime.fiberId)
@@ -227,11 +227,11 @@ class TPubSubSubscriptionImpl<in out A> implements TQueue.TDequeue<A> {
227
227
  return core.succeed(size)
228
228
  })
229
229
 
230
- isEmpty: STM.STM<never, never, boolean> = core.map(this.size, (size) => size === 0)
230
+ isEmpty: STM.STM<boolean> = core.map(this.size, (size) => size === 0)
231
231
 
232
- isFull: STM.STM<never, never, boolean> = core.map(this.size, (size) => size === this.capacity())
232
+ isFull: STM.STM<boolean> = core.map(this.size, (size) => size === this.capacity())
233
233
 
234
- peek: STM.STM<never, never, A> = core.withSTMRuntime((runtime) => {
234
+ peek: STM.STM<A> = core.withSTMRuntime((runtime) => {
235
235
  let currentSubscriberHead = tRef.unsafeGet(this.subscriberHead, runtime.journal)
236
236
  if (currentSubscriberHead === undefined) {
237
237
  return core.interruptAs(runtime.fiberId)
@@ -255,7 +255,7 @@ class TPubSubSubscriptionImpl<in out A> implements TQueue.TDequeue<A> {
255
255
  return core.succeed(value as A)
256
256
  })
257
257
 
258
- peekOption: STM.STM<never, never, Option.Option<A>> = core.withSTMRuntime((runtime) => {
258
+ peekOption: STM.STM<Option.Option<A>> = core.withSTMRuntime((runtime) => {
259
259
  let currentSubscriberHead = tRef.unsafeGet(this.subscriberHead, runtime.journal)
260
260
  if (currentSubscriberHead === undefined) {
261
261
  return core.interruptAs(runtime.fiberId)
@@ -281,7 +281,7 @@ class TPubSubSubscriptionImpl<in out A> implements TQueue.TDequeue<A> {
281
281
  return core.succeed(value)
282
282
  })
283
283
 
284
- shutdown: STM.STM<never, never, void> = core.effect<never, void>((journal) => {
284
+ shutdown: STM.STM<void> = core.effect<never, void>((journal) => {
285
285
  let currentSubscriberHead = tRef.unsafeGet(this.subscriberHead, journal)
286
286
  if (currentSubscriberHead !== undefined) {
287
287
  tRef.unsafeSet<TRef.TRef<Node<A> | undefined> | undefined>(this.subscriberHead, void 0, journal)
@@ -322,7 +322,7 @@ class TPubSubSubscriptionImpl<in out A> implements TQueue.TDequeue<A> {
322
322
  }
323
323
  })
324
324
 
325
- take: STM.STM<never, never, A> = core.withSTMRuntime((runtime) => {
325
+ take: STM.STM<A> = core.withSTMRuntime((runtime) => {
326
326
  let currentSubscriberHead = tRef.unsafeGet(this.subscriberHead, runtime.journal)
327
327
  if (currentSubscriberHead === undefined) {
328
328
  return core.interruptAs(runtime.fiberId)
@@ -362,9 +362,9 @@ class TPubSubSubscriptionImpl<in out A> implements TQueue.TDequeue<A> {
362
362
  return core.succeed(value as A)
363
363
  })
364
364
 
365
- takeAll: STM.STM<never, never, Array<A>> = this.takeUpTo(Number.POSITIVE_INFINITY)
365
+ takeAll: STM.STM<Array<A>> = this.takeUpTo(Number.POSITIVE_INFINITY)
366
366
 
367
- takeUpTo(max: number): STM.STM<never, never, Array<A>> {
367
+ takeUpTo(max: number): STM.STM<Array<A>> {
368
368
  return core.withSTMRuntime((runtime) => {
369
369
  let currentSubscriberHead = tRef.unsafeGet(this.subscriberHead, runtime.journal)
370
370
  if (currentSubscriberHead === undefined) {
@@ -411,7 +411,7 @@ class TPubSubSubscriptionImpl<in out A> implements TQueue.TDequeue<A> {
411
411
  const makeTPubSub = <A>(
412
412
  requestedCapacity: number,
413
413
  strategy: tQueue.TQueueStrategy
414
- ): STM.STM<never, never, TPubSub.TPubSub<A>> =>
414
+ ): STM.STM<TPubSub.TPubSub<A>> =>
415
415
  pipe(
416
416
  stm.all([
417
417
  tRef.make<Node<A> | undefined>(void 0),
@@ -447,7 +447,7 @@ const makeSubscription = <A>(
447
447
  requestedCapacity: number,
448
448
  subscriberCount: TRef.TRef<number>,
449
449
  subscribers: TRef.TRef<HashSet.HashSet<TRef.TRef<TRef.TRef<Node<A>> | undefined>>>
450
- ): STM.STM<never, never, TQueue.TDequeue<A>> =>
450
+ ): STM.STM<TQueue.TDequeue<A>> =>
451
451
  pipe(
452
452
  tRef.get(publisherTail),
453
453
  core.flatMap((currentPublisherTail) =>
@@ -484,52 +484,52 @@ const makeSubscription = <A>(
484
484
  )
485
485
 
486
486
  /** @internal */
487
- export const awaitShutdown = <A>(self: TPubSub.TPubSub<A>): STM.STM<never, never, void> => self.awaitShutdown
487
+ export const awaitShutdown = <A>(self: TPubSub.TPubSub<A>): STM.STM<void> => self.awaitShutdown
488
488
 
489
489
  /** @internal */
490
- export const bounded = <A>(requestedCapacity: number): STM.STM<never, never, TPubSub.TPubSub<A>> =>
490
+ export const bounded = <A>(requestedCapacity: number): STM.STM<TPubSub.TPubSub<A>> =>
491
491
  makeTPubSub<A>(requestedCapacity, tQueue.BackPressure)
492
492
 
493
493
  /** @internal */
494
494
  export const capacity = <A>(self: TPubSub.TPubSub<A>): number => self.capacity()
495
495
 
496
496
  /** @internal */
497
- export const dropping = <A>(requestedCapacity: number): STM.STM<never, never, TPubSub.TPubSub<A>> =>
497
+ export const dropping = <A>(requestedCapacity: number): STM.STM<TPubSub.TPubSub<A>> =>
498
498
  makeTPubSub<A>(requestedCapacity, tQueue.Dropping)
499
499
 
500
500
  /** @internal */
501
- export const isEmpty = <A>(self: TPubSub.TPubSub<A>): STM.STM<never, never, boolean> => self.isEmpty
501
+ export const isEmpty = <A>(self: TPubSub.TPubSub<A>): STM.STM<boolean> => self.isEmpty
502
502
 
503
503
  /** @internal */
504
- export const isFull = <A>(self: TPubSub.TPubSub<A>): STM.STM<never, never, boolean> => self.isFull
504
+ export const isFull = <A>(self: TPubSub.TPubSub<A>): STM.STM<boolean> => self.isFull
505
505
 
506
506
  /** @internal */
507
- export const isShutdown = <A>(self: TPubSub.TPubSub<A>): STM.STM<never, never, boolean> => self.isShutdown
507
+ export const isShutdown = <A>(self: TPubSub.TPubSub<A>): STM.STM<boolean> => self.isShutdown
508
508
 
509
509
  /** @internal */
510
510
  export const publish = dual<
511
- <A>(value: A) => (self: TPubSub.TPubSub<A>) => STM.STM<never, never, boolean>,
512
- <A>(self: TPubSub.TPubSub<A>, value: A) => STM.STM<never, never, boolean>
511
+ <A>(value: A) => (self: TPubSub.TPubSub<A>) => STM.STM<boolean>,
512
+ <A>(self: TPubSub.TPubSub<A>, value: A) => STM.STM<boolean>
513
513
  >(2, (self, value) => self.offer(value))
514
514
 
515
515
  /** @internal */
516
516
  export const publishAll = dual<
517
- <A>(iterable: Iterable<A>) => (self: TPubSub.TPubSub<A>) => STM.STM<never, never, boolean>,
518
- <A>(self: TPubSub.TPubSub<A>, iterable: Iterable<A>) => STM.STM<never, never, boolean>
517
+ <A>(iterable: Iterable<A>) => (self: TPubSub.TPubSub<A>) => STM.STM<boolean>,
518
+ <A>(self: TPubSub.TPubSub<A>, iterable: Iterable<A>) => STM.STM<boolean>
519
519
  >(2, (self, iterable) => self.offerAll(iterable))
520
520
 
521
521
  /** @internal */
522
- export const size = <A>(self: TPubSub.TPubSub<A>): STM.STM<never, never, number> => self.size
522
+ export const size = <A>(self: TPubSub.TPubSub<A>): STM.STM<number> => self.size
523
523
 
524
524
  /** @internal */
525
- export const shutdown = <A>(self: TPubSub.TPubSub<A>): STM.STM<never, never, void> => self.shutdown
525
+ export const shutdown = <A>(self: TPubSub.TPubSub<A>): STM.STM<void> => self.shutdown
526
526
 
527
527
  /** @internal */
528
- export const sliding = <A>(requestedCapacity: number): STM.STM<never, never, TPubSub.TPubSub<A>> =>
528
+ export const sliding = <A>(requestedCapacity: number): STM.STM<TPubSub.TPubSub<A>> =>
529
529
  makeTPubSub<A>(requestedCapacity, tQueue.Sliding)
530
530
 
531
531
  /** @internal */
532
- export const subscribe = <A>(self: TPubSub.TPubSub<A>): STM.STM<never, never, TQueue.TDequeue<A>> =>
532
+ export const subscribe = <A>(self: TPubSub.TPubSub<A>): STM.STM<TQueue.TDequeue<A>> =>
533
533
  makeSubscription(
534
534
  self.pubsubSize,
535
535
  self.publisherHead,
@@ -540,12 +540,11 @@ export const subscribe = <A>(self: TPubSub.TPubSub<A>): STM.STM<never, never, TQ
540
540
  )
541
541
 
542
542
  /** @internal */
543
- export const subscribeScoped = <A>(self: TPubSub.TPubSub<A>): Effect.Effect<Scope.Scope, never, TQueue.TDequeue<A>> =>
543
+ export const subscribeScoped = <A>(self: TPubSub.TPubSub<A>): Effect.Effect<TQueue.TDequeue<A>, never, Scope.Scope> =>
544
544
  Effect.acquireRelease(
545
545
  subscribe(self),
546
546
  (dequeue) => tQueue.shutdown(dequeue)
547
547
  )
548
548
 
549
549
  /** @internal */
550
- export const unbounded = <A>(): STM.STM<never, never, TPubSub.TPubSub<A>> =>
551
- makeTPubSub<A>(Number.MAX_SAFE_INTEGER, tQueue.Dropping)
550
+ export const unbounded = <A>(): STM.STM<TPubSub.TPubSub<A>> => makeTPubSub<A>(Number.MAX_SAFE_INTEGER, tQueue.Dropping)
@@ -96,7 +96,7 @@ class TQueueImpl<in out A> implements TQueue.TQueue<A> {
96
96
  return this.requestedCapacity
97
97
  }
98
98
 
99
- size: STM.STM<never, never, number> = core.withSTMRuntime((runtime) => {
99
+ size: STM.STM<number> = core.withSTMRuntime((runtime) => {
100
100
  const queue = tRef.unsafeGet(this.ref, runtime.journal)
101
101
  if (queue === undefined) {
102
102
  return STM.interruptAs(runtime.fiberId)
@@ -104,26 +104,26 @@ class TQueueImpl<in out A> implements TQueue.TQueue<A> {
104
104
  return core.succeed(queue.length)
105
105
  })
106
106
 
107
- isFull: STM.STM<never, never, boolean> = core.map(this.size, (size) => size === this.requestedCapacity)
107
+ isFull: STM.STM<boolean> = core.map(this.size, (size) => size === this.requestedCapacity)
108
108
 
109
- isEmpty: STM.STM<never, never, boolean> = core.map(this.size, (size) => size === 0)
109
+ isEmpty: STM.STM<boolean> = core.map(this.size, (size) => size === 0)
110
110
 
111
- shutdown: STM.STM<never, never, void> = core.withSTMRuntime<never, never, void>((runtime) => {
111
+ shutdown: STM.STM<void> = core.withSTMRuntime((runtime) => {
112
112
  tRef.unsafeSet(this.ref, void 0, runtime.journal)
113
113
  return stm.unit
114
114
  })
115
115
 
116
- isShutdown: STM.STM<never, never, boolean> = core.effect<never, boolean>((journal) => {
116
+ isShutdown: STM.STM<boolean> = core.effect<never, boolean>((journal) => {
117
117
  const queue = tRef.unsafeGet(this.ref, journal)
118
118
  return queue === undefined
119
119
  })
120
120
 
121
- awaitShutdown: STM.STM<never, never, void> = core.flatMap(
121
+ awaitShutdown: STM.STM<void> = core.flatMap(
122
122
  this.isShutdown,
123
123
  (isShutdown) => isShutdown ? stm.unit : core.retry
124
124
  )
125
125
 
126
- offer(value: A): STM.STM<never, never, boolean> {
126
+ offer(value: A): STM.STM<boolean> {
127
127
  return core.withSTMRuntime((runtime) => {
128
128
  const queue = pipe(this.ref, tRef.unsafeGet(runtime.journal))
129
129
  if (queue === undefined) {
@@ -154,7 +154,7 @@ class TQueueImpl<in out A> implements TQueue.TQueue<A> {
154
154
  })
155
155
  }
156
156
 
157
- offerAll(iterable: Iterable<A>): STM.STM<never, never, boolean> {
157
+ offerAll(iterable: Iterable<A>): STM.STM<boolean> {
158
158
  return core.withSTMRuntime((runtime) => {
159
159
  const as = Array.from(iterable)
160
160
  const queue = tRef.unsafeGet(this.ref, runtime.journal)
@@ -185,7 +185,7 @@ class TQueueImpl<in out A> implements TQueue.TQueue<A> {
185
185
  })
186
186
  }
187
187
 
188
- peek: STM.STM<never, never, A> = core.withSTMRuntime((runtime) => {
188
+ peek: STM.STM<A> = core.withSTMRuntime((runtime) => {
189
189
  const queue = tRef.unsafeGet(this.ref, runtime.journal)
190
190
  if (queue === undefined) {
191
191
  return core.interruptAs(runtime.fiberId)
@@ -196,7 +196,7 @@ class TQueueImpl<in out A> implements TQueue.TQueue<A> {
196
196
  return core.succeed(queue[0])
197
197
  })
198
198
 
199
- peekOption: STM.STM<never, never, Option.Option<A>> = core.withSTMRuntime((runtime) => {
199
+ peekOption: STM.STM<Option.Option<A>> = core.withSTMRuntime((runtime) => {
200
200
  const queue = tRef.unsafeGet(this.ref, runtime.journal)
201
201
  if (queue === undefined) {
202
202
  return core.interruptAs(runtime.fiberId)
@@ -204,7 +204,7 @@ class TQueueImpl<in out A> implements TQueue.TQueue<A> {
204
204
  return core.succeed(Option.fromNullable(queue[0]))
205
205
  })
206
206
 
207
- take: STM.STM<never, never, A> = core.withSTMRuntime((runtime) => {
207
+ take: STM.STM<A> = core.withSTMRuntime((runtime) => {
208
208
  const queue = tRef.unsafeGet(this.ref, runtime.journal)
209
209
  if (queue === undefined) {
210
210
  return core.interruptAs(runtime.fiberId)
@@ -217,7 +217,7 @@ class TQueueImpl<in out A> implements TQueue.TQueue<A> {
217
217
  return core.succeed(dequeued)
218
218
  })
219
219
 
220
- takeAll: STM.STM<never, never, Array<A>> = core.withSTMRuntime((runtime) => {
220
+ takeAll: STM.STM<Array<A>> = core.withSTMRuntime((runtime) => {
221
221
  const queue = tRef.unsafeGet(this.ref, runtime.journal)
222
222
  if (queue === undefined) {
223
223
  return core.interruptAs(runtime.fiberId)
@@ -226,7 +226,7 @@ class TQueueImpl<in out A> implements TQueue.TQueue<A> {
226
226
  return core.succeed(queue)
227
227
  })
228
228
 
229
- takeUpTo(max: number): STM.STM<never, never, Array<A>> {
229
+ takeUpTo(max: number): STM.STM<Array<A>> {
230
230
  return core.withSTMRuntime((runtime) => {
231
231
  const queue = tRef.unsafeGet(this.ref, runtime.journal)
232
232
  if (queue === undefined) {
@@ -251,11 +251,10 @@ export const isTEnqueue = (u: unknown): u is TQueue.TEnqueue<unknown> => hasProp
251
251
  export const isTDequeue = (u: unknown): u is TQueue.TDequeue<unknown> => hasProperty(u, TDequeueTypeId)
252
252
 
253
253
  /** @internal */
254
- export const awaitShutdown = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<never, never, void> =>
255
- self.awaitShutdown
254
+ export const awaitShutdown = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<void> => self.awaitShutdown
256
255
 
257
256
  /** @internal */
258
- export const bounded = <A>(requestedCapacity: number): STM.STM<never, never, TQueue.TQueue<A>> =>
257
+ export const bounded = <A>(requestedCapacity: number): STM.STM<TQueue.TQueue<A>> =>
259
258
  makeQueue<A>(requestedCapacity, BackPressure)
260
259
 
261
260
  /** @internal */
@@ -264,83 +263,81 @@ export const capacity = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): numb
264
263
  }
265
264
 
266
265
  /** @internal */
267
- export const dropping = <A>(requestedCapacity: number): STM.STM<never, never, TQueue.TQueue<A>> =>
266
+ export const dropping = <A>(requestedCapacity: number): STM.STM<TQueue.TQueue<A>> =>
268
267
  makeQueue<A>(requestedCapacity, Dropping)
269
268
 
270
269
  /** @internal */
271
- export const isEmpty = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<never, never, boolean> =>
272
- self.isEmpty
270
+ export const isEmpty = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<boolean> => self.isEmpty
273
271
 
274
272
  /** @internal */
275
- export const isFull = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<never, never, boolean> => self.isFull
273
+ export const isFull = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<boolean> => self.isFull
276
274
 
277
275
  /** @internal */
278
- export const isShutdown = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<never, never, boolean> =>
279
- self.isShutdown
276
+ export const isShutdown = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<boolean> => self.isShutdown
280
277
 
281
278
  /** @internal */
282
279
  export const offer = dual<
283
- <A>(value: A) => (self: TQueue.TEnqueue<A>) => STM.STM<never, never, void>,
284
- <A>(self: TQueue.TEnqueue<A>, value: A) => STM.STM<never, never, void>
280
+ <A>(value: A) => (self: TQueue.TEnqueue<A>) => STM.STM<void>,
281
+ <A>(self: TQueue.TEnqueue<A>, value: A) => STM.STM<void>
285
282
  >(2, (self, value) => self.offer(value))
286
283
 
287
284
  /** @internal */
288
285
  export const offerAll = dual<
289
- <A>(iterable: Iterable<A>) => (self: TQueue.TEnqueue<A>) => STM.STM<never, never, boolean>,
290
- <A>(self: TQueue.TEnqueue<A>, iterable: Iterable<A>) => STM.STM<never, never, boolean>
286
+ <A>(iterable: Iterable<A>) => (self: TQueue.TEnqueue<A>) => STM.STM<boolean>,
287
+ <A>(self: TQueue.TEnqueue<A>, iterable: Iterable<A>) => STM.STM<boolean>
291
288
  >(2, (self, iterable) => self.offerAll(iterable))
292
289
 
293
290
  /** @internal */
294
- export const peek = <A>(self: TQueue.TDequeue<A>): STM.STM<never, never, A> => self.peek
291
+ export const peek = <A>(self: TQueue.TDequeue<A>): STM.STM<A> => self.peek
295
292
 
296
293
  /** @internal */
297
- export const peekOption = <A>(self: TQueue.TDequeue<A>): STM.STM<never, never, Option.Option<A>> => self.peekOption
294
+ export const peekOption = <A>(self: TQueue.TDequeue<A>): STM.STM<Option.Option<A>> => self.peekOption
298
295
 
299
296
  /** @internal */
300
- export const poll = <A>(self: TQueue.TDequeue<A>): STM.STM<never, never, Option.Option<A>> =>
297
+ export const poll = <A>(self: TQueue.TDequeue<A>): STM.STM<Option.Option<A>> =>
301
298
  pipe(self.takeUpTo(1), core.map(RA.head))
302
299
 
303
300
  /** @internal */
304
301
  export const seek = dual<
305
- <A>(predicate: Predicate<A>) => (self: TQueue.TDequeue<A>) => STM.STM<never, never, A>,
306
- <A>(self: TQueue.TDequeue<A>, predicate: Predicate<A>) => STM.STM<never, never, A>
302
+ <A>(predicate: Predicate<A>) => (self: TQueue.TDequeue<A>) => STM.STM<A>,
303
+ <A>(self: TQueue.TDequeue<A>, predicate: Predicate<A>) => STM.STM<A>
307
304
  >(2, (self, predicate) => seekLoop(self, predicate))
308
305
 
309
- const seekLoop = <A>(self: TQueue.TDequeue<A>, predicate: Predicate<A>): STM.STM<never, never, A> =>
306
+ const seekLoop = <A>(self: TQueue.TDequeue<A>, predicate: Predicate<A>): STM.STM<A> =>
310
307
  core.flatMap(
311
308
  self.take,
312
309
  (a) => predicate(a) ? core.succeed(a) : seekLoop(self, predicate)
313
310
  )
314
311
 
315
312
  /** @internal */
316
- export const shutdown = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<never, never, void> => self.shutdown
313
+ export const shutdown = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<void> => self.shutdown
317
314
 
318
315
  /** @internal */
319
- export const size = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<never, never, number> => self.size
316
+ export const size = <A>(self: TQueue.TDequeue<A> | TQueue.TEnqueue<A>): STM.STM<number> => self.size
320
317
 
321
318
  /** @internal */
322
- export const sliding = <A>(requestedCapacity: number): STM.STM<never, never, TQueue.TQueue<A>> =>
319
+ export const sliding = <A>(requestedCapacity: number): STM.STM<TQueue.TQueue<A>> =>
323
320
  makeQueue<A>(requestedCapacity, Sliding)
324
321
 
325
322
  /** @internal */
326
- export const take = <A>(self: TQueue.TDequeue<A>): STM.STM<never, never, A> => self.take
323
+ export const take = <A>(self: TQueue.TDequeue<A>): STM.STM<A> => self.take
327
324
 
328
325
  /** @internal */
329
- export const takeAll = <A>(self: TQueue.TDequeue<A>): STM.STM<never, never, Array<A>> => self.takeAll
326
+ export const takeAll = <A>(self: TQueue.TDequeue<A>): STM.STM<Array<A>> => self.takeAll
330
327
 
331
328
  /** @internal */
332
329
  export const takeBetween = dual<
333
- (min: number, max: number) => <A>(self: TQueue.TDequeue<A>) => STM.STM<never, never, Array<A>>,
334
- <A>(self: TQueue.TDequeue<A>, min: number, max: number) => STM.STM<never, never, Array<A>>
330
+ (min: number, max: number) => <A>(self: TQueue.TDequeue<A>) => STM.STM<Array<A>>,
331
+ <A>(self: TQueue.TDequeue<A>, min: number, max: number) => STM.STM<Array<A>>
335
332
  >(
336
333
  3,
337
- <A>(self: TQueue.TDequeue<A>, min: number, max: number): STM.STM<never, never, Array<A>> =>
334
+ <A>(self: TQueue.TDequeue<A>, min: number, max: number): STM.STM<Array<A>> =>
338
335
  stm.suspend(() => {
339
336
  const takeRemainder = (
340
337
  min: number,
341
338
  max: number,
342
339
  acc: Chunk.Chunk<A>
343
- ): STM.STM<never, never, Chunk.Chunk<A>> => {
340
+ ): STM.STM<Chunk.Chunk<A>> => {
344
341
  if (max < min) {
345
342
  return core.succeed(acc)
346
343
  }
@@ -376,21 +373,20 @@ export const takeBetween = dual<
376
373
 
377
374
  /** @internal */
378
375
  export const takeN = dual<
379
- (n: number) => <A>(self: TQueue.TDequeue<A>) => STM.STM<never, never, Array<A>>,
380
- <A>(self: TQueue.TDequeue<A>, n: number) => STM.STM<never, never, Array<A>>
376
+ (n: number) => <A>(self: TQueue.TDequeue<A>) => STM.STM<Array<A>>,
377
+ <A>(self: TQueue.TDequeue<A>, n: number) => STM.STM<Array<A>>
381
378
  >(2, (self, n) => pipe(self, takeBetween(n, n)))
382
379
 
383
380
  /** @internal */
384
381
  export const takeUpTo = dual<
385
- (max: number) => <A>(self: TQueue.TDequeue<A>) => STM.STM<never, never, Array<A>>,
386
- <A>(self: TQueue.TDequeue<A>, max: number) => STM.STM<never, never, Array<A>>
382
+ (max: number) => <A>(self: TQueue.TDequeue<A>) => STM.STM<Array<A>>,
383
+ <A>(self: TQueue.TDequeue<A>, max: number) => STM.STM<Array<A>>
387
384
  >(2, (self, max) => self.takeUpTo(max))
388
385
 
389
386
  /** @internal */
390
- export const unbounded = <A>(): STM.STM<never, never, TQueue.TQueue<A>> =>
391
- makeQueue<A>(Number.MAX_SAFE_INTEGER, Dropping)
387
+ export const unbounded = <A>(): STM.STM<TQueue.TQueue<A>> => makeQueue<A>(Number.MAX_SAFE_INTEGER, Dropping)
392
388
 
393
- const makeQueue = <A>(requestedCapacity: number, strategy: TQueueStrategy): STM.STM<never, never, TQueue.TQueue<A>> =>
389
+ const makeQueue = <A>(requestedCapacity: number, strategy: TQueueStrategy): STM.STM<TQueue.TQueue<A>> =>
394
390
  core.map(
395
391
  tRef.make<Array<A> | undefined>([]),
396
392
  (ref) => new TQueueImpl<A>(ref, requestedCapacity, strategy)
@@ -41,15 +41,15 @@ const randomNumber = (state: Random.PCGRandomState): [number, Random.PCGRandomSt
41
41
  const withState = <A>(
42
42
  state: TRef.TRef<Random.PCGRandomState>,
43
43
  f: (state: Random.PCGRandomState) => [A, Random.PCGRandomState]
44
- ): STM.STM<never, never, A> => {
44
+ ): STM.STM<A> => {
45
45
  return pipe(state, tRef.modify(f))
46
46
  }
47
47
 
48
48
  const shuffleWith = <A>(
49
49
  iterable: Iterable<A>,
50
- nextIntBounded: (n: number) => STM.STM<never, never, number>
51
- ): STM.STM<never, never, Array<A>> => {
52
- const swap = (buffer: TArray.TArray<A>, index1: number, index2: number): STM.STM<never, never, void> =>
50
+ nextIntBounded: (n: number) => STM.STM<number>
51
+ ): STM.STM<Array<A>> => {
52
+ const swap = (buffer: TArray.TArray<A>, index1: number, index2: number): STM.STM<void> =>
53
53
  pipe(
54
54
  buffer,
55
55
  tArray.get(index1),
@@ -83,7 +83,7 @@ const shuffleWith = <A>(
83
83
  }
84
84
 
85
85
  /** @internal */
86
- export const Tag = Context.Tag<TRandom.TRandom>()
86
+ export const Tag = Context.GenericTag<TRandom.TRandom>("effect/TRandom")
87
87
 
88
88
  class TRandomImpl implements TRandom.TRandom {
89
89
  readonly [TRandomTypeId]: TRandom.TRandomTypeId = TRandomTypeId
@@ -93,23 +93,23 @@ class TRandomImpl implements TRandom.TRandom {
93
93
  this.nextInt = withState(this.state, randomInteger)
94
94
  }
95
95
 
96
- next: STM.STM<never, never, number>
97
- nextBoolean: STM.STM<never, never, boolean>
98
- nextInt: STM.STM<never, never, number>
96
+ next: STM.STM<number>
97
+ nextBoolean: STM.STM<boolean>
98
+ nextInt: STM.STM<number>
99
99
 
100
- nextRange(min: number, max: number): STM.STM<never, never, number> {
100
+ nextRange(min: number, max: number): STM.STM<number> {
101
101
  return core.flatMap(this.next, (n) => core.succeed((max - min) * n + min))
102
102
  }
103
- nextIntBetween(low: number, high: number): STM.STM<never, never, number> {
103
+ nextIntBetween(low: number, high: number): STM.STM<number> {
104
104
  return withState(this.state, randomIntegerBetween(low, high))
105
105
  }
106
- shuffle<A>(elements: Iterable<A>): STM.STM<never, never, Array<A>> {
106
+ shuffle<A>(elements: Iterable<A>): STM.STM<Array<A>> {
107
107
  return shuffleWith(elements, (n) => this.nextIntBetween(0, n))
108
108
  }
109
109
  }
110
110
 
111
111
  /** @internal */
112
- export const live: Layer.Layer<never, never, TRandom.TRandom> = Layer.effect(
112
+ export const live: Layer.Layer<TRandom.TRandom> = Layer.effect(
113
113
  Tag,
114
114
  pipe(
115
115
  tRef.make(new Random.PCGRandom((Math.random() * 4294967296) >>> 0).getState()),
@@ -119,22 +119,22 @@ export const live: Layer.Layer<never, never, TRandom.TRandom> = Layer.effect(
119
119
  )
120
120
 
121
121
  /** @internal */
122
- export const next: STM.STM<TRandom.TRandom, never, number> = core.flatMap(Tag, (random) => random.next)
122
+ export const next: STM.STM<number, never, TRandom.TRandom> = core.flatMap(Tag, (random) => random.next)
123
123
 
124
124
  /** @internal */
125
- export const nextBoolean: STM.STM<TRandom.TRandom, never, boolean> = core.flatMap(Tag, (random) => random.nextBoolean)
125
+ export const nextBoolean: STM.STM<boolean, never, TRandom.TRandom> = core.flatMap(Tag, (random) => random.nextBoolean)
126
126
 
127
127
  /** @internal */
128
- export const nextInt: STM.STM<TRandom.TRandom, never, number> = core.flatMap(Tag, (random) => random.nextInt)
128
+ export const nextInt: STM.STM<number, never, TRandom.TRandom> = core.flatMap(Tag, (random) => random.nextInt)
129
129
 
130
130
  /** @internal */
131
- export const nextIntBetween = (low: number, high: number): STM.STM<TRandom.TRandom, never, number> =>
131
+ export const nextIntBetween = (low: number, high: number): STM.STM<number, never, TRandom.TRandom> =>
132
132
  core.flatMap(Tag, (random) => random.nextIntBetween(low, high))
133
133
 
134
134
  /** @internal */
135
- export const nextRange = (min: number, max: number): STM.STM<TRandom.TRandom, never, number> =>
135
+ export const nextRange = (min: number, max: number): STM.STM<number, never, TRandom.TRandom> =>
136
136
  core.flatMap(Tag, (random) => random.nextRange(min, max))
137
137
 
138
138
  /** @internal */
139
- export const shuffle = <A>(elements: Iterable<A>): STM.STM<TRandom.TRandom, never, Array<A>> =>
139
+ export const shuffle = <A>(elements: Iterable<A>): STM.STM<Array<A>, never, TRandom.TRandom> =>
140
140
  core.flatMap(Tag, (random) => random.shuffle(elements))