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
@@ -66,7 +66,7 @@ const indexOf = <K>(k: K, capacity: number): number => hash(k) & (capacity - 1)
66
66
  const allocate = <K, V>(
67
67
  capacity: number,
68
68
  data: Chunk.Chunk<readonly [K, V]>
69
- ): STM.STM<never, never, TMap.TMap<K, V>> => {
69
+ ): STM.STM<TMap.TMap<K, V>> => {
70
70
  const buckets = Array.from({ length: capacity }, () => Chunk.empty<readonly [K, V]>())
71
71
  const distinct = new Map<K, V>(data)
72
72
  let size = 0
@@ -92,17 +92,17 @@ const allocate = <K, V>(
92
92
  }
93
93
 
94
94
  /** @internal */
95
- export const empty = <K, V>(): STM.STM<never, never, TMap.TMap<K, V>> => fromIterable<K, V>([])
95
+ export const empty = <K, V>(): STM.STM<TMap.TMap<K, V>> => fromIterable<K, V>([])
96
96
 
97
97
  /** @internal */
98
98
  export const find = dual<
99
99
  <K, V, A>(
100
100
  pf: (key: K, value: V) => Option.Option<A>
101
- ) => (self: TMap.TMap<K, V>) => STM.STM<never, never, Option.Option<A>>,
101
+ ) => (self: TMap.TMap<K, V>) => STM.STM<Option.Option<A>>,
102
102
  <K, V, A>(
103
103
  self: TMap.TMap<K, V>,
104
104
  pf: (key: K, value: V) => Option.Option<A>
105
- ) => STM.STM<never, never, Option.Option<A>>
105
+ ) => STM.STM<Option.Option<A>>
106
106
  >(2, (self, pf) =>
107
107
  findSTM(self, (key, value) => {
108
108
  const option = pf(key, value)
@@ -115,15 +115,15 @@ export const find = dual<
115
115
  /** @internal */
116
116
  export const findSTM = dual<
117
117
  <K, V, R, E, A>(
118
- f: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>
119
- ) => (self: TMap.TMap<K, V>) => STM.STM<R, E, Option.Option<A>>,
118
+ f: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
119
+ ) => (self: TMap.TMap<K, V>) => STM.STM<Option.Option<A>, E, R>,
120
120
  <K, V, R, E, A>(
121
121
  self: TMap.TMap<K, V>,
122
- f: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>
123
- ) => STM.STM<R, E, Option.Option<A>>
122
+ f: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
123
+ ) => STM.STM<Option.Option<A>, E, R>
124
124
  >(2, <K, V, R, E, A>(
125
125
  self: TMap.TMap<K, V>,
126
- f: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>
126
+ f: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
127
127
  ) =>
128
128
  reduceSTM(self, Option.none<A>(), (acc, value, key) =>
129
129
  Option.isNone(acc) ?
@@ -140,11 +140,11 @@ export const findSTM = dual<
140
140
  export const findAll = dual<
141
141
  <K, V, A>(
142
142
  pf: (key: K, value: V) => Option.Option<A>
143
- ) => (self: TMap.TMap<K, V>) => STM.STM<never, never, Array<A>>,
143
+ ) => (self: TMap.TMap<K, V>) => STM.STM<Array<A>>,
144
144
  <K, V, A>(
145
145
  self: TMap.TMap<K, V>,
146
146
  pf: (key: K, value: V) => Option.Option<A>
147
- ) => STM.STM<never, never, Array<A>>
147
+ ) => STM.STM<Array<A>>
148
148
  >(2, (self, pf) =>
149
149
  findAllSTM(self, (key, value) => {
150
150
  const option = pf(key, value)
@@ -157,15 +157,15 @@ export const findAll = dual<
157
157
  /** @internal */
158
158
  export const findAllSTM = dual<
159
159
  <K, V, R, E, A>(
160
- pf: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>
161
- ) => (self: TMap.TMap<K, V>) => STM.STM<R, E, Array<A>>,
160
+ pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
161
+ ) => (self: TMap.TMap<K, V>) => STM.STM<Array<A>, E, R>,
162
162
  <K, V, R, E, A>(
163
163
  self: TMap.TMap<K, V>,
164
- pf: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>
165
- ) => STM.STM<R, E, Array<A>>
164
+ pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
165
+ ) => STM.STM<Array<A>, E, R>
166
166
  >(2, <K, V, R, E, A>(
167
167
  self: TMap.TMap<K, V>,
168
- pf: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>
168
+ pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
169
169
  ) =>
170
170
  core.map(
171
171
  reduceSTM(self, Chunk.empty<A>(), (acc, value, key) =>
@@ -181,8 +181,8 @@ export const findAllSTM = dual<
181
181
 
182
182
  /** @internal */
183
183
  export const forEach = dual<
184
- <K, V, R, E, _>(f: (key: K, value: V) => STM.STM<R, E, _>) => (self: TMap.TMap<K, V>) => STM.STM<R, E, void>,
185
- <K, V, R, E, _>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<R, E, _>) => STM.STM<R, E, void>
184
+ <K, V, R, E, _>(f: (key: K, value: V) => STM.STM<_, E, R>) => (self: TMap.TMap<K, V>) => STM.STM<void, E, R>,
185
+ <K, V, R, E, _>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<_, E, R>) => STM.STM<void, E, R>
186
186
  >(2, (self, f) =>
187
187
  reduceSTM(
188
188
  self,
@@ -191,7 +191,7 @@ export const forEach = dual<
191
191
  ))
192
192
 
193
193
  /** @internal */
194
- export const fromIterable = <K, V>(iterable: Iterable<readonly [K, V]>): STM.STM<never, never, TMap.TMap<K, V>> =>
194
+ export const fromIterable = <K, V>(iterable: Iterable<readonly [K, V]>): STM.STM<TMap.TMap<K, V>> =>
195
195
  stm.suspend(() => {
196
196
  const data = Chunk.fromIterable(iterable)
197
197
  const capacity = data.length < InitialCapacity
@@ -202,8 +202,8 @@ export const fromIterable = <K, V>(iterable: Iterable<readonly [K, V]>): STM.STM
202
202
 
203
203
  /** @internal */
204
204
  export const get = dual<
205
- <K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<never, never, Option.Option<V>>,
206
- <K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<never, never, Option.Option<V>>
205
+ <K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<Option.Option<V>>,
206
+ <K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<Option.Option<V>>
207
207
  >(2, <K, V>(self: TMap.TMap<K, V>, key: K) =>
208
208
  core.effect<never, Option.Option<V>>((journal) => {
209
209
  const buckets = tRef.unsafeGet(self.tBuckets, journal)
@@ -217,8 +217,8 @@ export const get = dual<
217
217
 
218
218
  /** @internal */
219
219
  export const getOrElse = dual<
220
- <K, V>(key: K, fallback: LazyArg<V>) => (self: TMap.TMap<K, V>) => STM.STM<never, never, V>,
221
- <K, V>(self: TMap.TMap<K, V>, key: K, fallback: LazyArg<V>) => STM.STM<never, never, V>
220
+ <K, V>(key: K, fallback: LazyArg<V>) => (self: TMap.TMap<K, V>) => STM.STM<V>,
221
+ <K, V>(self: TMap.TMap<K, V>, key: K, fallback: LazyArg<V>) => STM.STM<V>
222
222
  >(3, (self, key, fallback) =>
223
223
  core.map(
224
224
  get(self, key),
@@ -227,26 +227,25 @@ export const getOrElse = dual<
227
227
 
228
228
  /** @internal */
229
229
  export const has = dual<
230
- <K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<never, never, boolean>,
231
- <K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<never, never, boolean>
230
+ <K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<boolean>,
231
+ <K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<boolean>
232
232
  >(2, (self, key) => core.map(get(self, key), Option.isSome))
233
233
 
234
234
  /** @internal */
235
- export const isEmpty = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, boolean> =>
235
+ export const isEmpty = <K, V>(self: TMap.TMap<K, V>): STM.STM<boolean> =>
236
236
  core.map(tRef.get(self.tSize), (size) => size === 0)
237
237
 
238
238
  /** @internal */
239
- export const keys = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Array<K>> =>
239
+ export const keys = <K, V>(self: TMap.TMap<K, V>): STM.STM<Array<K>> =>
240
240
  core.map(toReadonlyArray(self), RA.map((entry) => entry[0]))
241
241
 
242
242
  /** @internal */
243
- export const make = <K, V>(...entries: Array<readonly [K, V]>): STM.STM<never, never, TMap.TMap<K, V>> =>
244
- fromIterable(entries)
243
+ export const make = <K, V>(...entries: Array<readonly [K, V]>): STM.STM<TMap.TMap<K, V>> => fromIterable(entries)
245
244
 
246
245
  /** @internal */
247
246
  export const merge = dual<
248
- <K, V>(key: K, value: V, f: (x: V, y: V) => V) => (self: TMap.TMap<K, V>) => STM.STM<never, never, V>,
249
- <K, V>(self: TMap.TMap<K, V>, key: K, value: V, f: (x: V, y: V) => V) => STM.STM<never, never, V>
247
+ <K, V>(key: K, value: V, f: (x: V, y: V) => V) => (self: TMap.TMap<K, V>) => STM.STM<V>,
248
+ <K, V>(self: TMap.TMap<K, V>, key: K, value: V, f: (x: V, y: V) => V) => STM.STM<V>
250
249
  >(4, (self, key, value, f) =>
251
250
  core.flatMap(
252
251
  get(self, key),
@@ -261,8 +260,8 @@ export const merge = dual<
261
260
 
262
261
  /** @internal */
263
262
  export const reduce = dual<
264
- <Z, K, V>(zero: Z, f: (acc: Z, value: V, key: K) => Z) => (self: TMap.TMap<K, V>) => STM.STM<never, never, Z>,
265
- <K, V, Z>(self: TMap.TMap<K, V>, zero: Z, f: (acc: Z, value: V, key: K) => Z) => STM.STM<never, never, Z>
263
+ <Z, K, V>(zero: Z, f: (acc: Z, value: V, key: K) => Z) => (self: TMap.TMap<K, V>) => STM.STM<Z>,
264
+ <K, V, Z>(self: TMap.TMap<K, V>, zero: Z, f: (acc: Z, value: V, key: K) => Z) => STM.STM<Z>
266
265
  >(
267
266
  3,
268
267
  <K, V, Z>(self: TMap.TMap<K, V>, zero: Z, f: (acc: Z, value: V, key: K) => Z) =>
@@ -284,13 +283,13 @@ export const reduce = dual<
284
283
  export const reduceSTM = dual<
285
284
  <Z, V, K, R, E>(
286
285
  zero: Z,
287
- f: (acc: Z, value: V, key: K) => STM.STM<R, E, Z>
288
- ) => (self: TMap.TMap<K, V>) => STM.STM<R, E, Z>,
286
+ f: (acc: Z, value: V, key: K) => STM.STM<Z, E, R>
287
+ ) => (self: TMap.TMap<K, V>) => STM.STM<Z, E, R>,
289
288
  <Z, V, K, R, E>(
290
289
  self: TMap.TMap<K, V>,
291
290
  zero: Z,
292
- f: (acc: Z, value: V, key: K) => STM.STM<R, E, Z>
293
- ) => STM.STM<R, E, Z>
291
+ f: (acc: Z, value: V, key: K) => STM.STM<Z, E, R>
292
+ ) => STM.STM<Z, E, R>
294
293
  >(3, (self, zero, f) =>
295
294
  core.flatMap(
296
295
  toReadonlyArray(self),
@@ -299,8 +298,8 @@ export const reduceSTM = dual<
299
298
 
300
299
  /** @internal */
301
300
  export const remove = dual<
302
- <K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<never, never, void>,
303
- <K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<never, never, void>
301
+ <K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<void>,
302
+ <K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<void>
304
303
  >(2, (self, key) =>
305
304
  core.effect<never, void>((journal) => {
306
305
  const buckets = tRef.unsafeGet(self.tBuckets, journal)
@@ -316,8 +315,8 @@ export const remove = dual<
316
315
 
317
316
  /** @internal */
318
317
  export const removeAll = dual<
319
- <K>(keys: Iterable<K>) => <V>(self: TMap.TMap<K, V>) => STM.STM<never, never, void>,
320
- <K, V>(self: TMap.TMap<K, V>, keys: Iterable<K>) => STM.STM<never, never, void>
318
+ <K>(keys: Iterable<K>) => <V>(self: TMap.TMap<K, V>) => STM.STM<void>,
319
+ <K, V>(self: TMap.TMap<K, V>, keys: Iterable<K>) => STM.STM<void>
321
320
  >(2, <K, V>(self: TMap.TMap<K, V>, keys: Iterable<K>) =>
322
321
  core.effect<never, void>((journal) => {
323
322
  const iterator = keys[Symbol.iterator]()
@@ -342,27 +341,27 @@ export const removeIf: {
342
341
  options: {
343
342
  readonly discard: true
344
343
  }
345
- ): (self: TMap.TMap<K, V>) => STM.STM<never, never, void>
344
+ ): (self: TMap.TMap<K, V>) => STM.STM<void>
346
345
  <K, V>(
347
346
  predicate: (key: K, value: V) => boolean,
348
347
  options?: {
349
348
  readonly discard: false
350
349
  }
351
- ): (self: TMap.TMap<K, V>) => STM.STM<never, never, Array<[K, V]>>
350
+ ): (self: TMap.TMap<K, V>) => STM.STM<Array<[K, V]>>
352
351
  <K, V>(
353
352
  self: TMap.TMap<K, V>,
354
353
  predicate: (key: K, value: V) => boolean,
355
354
  options: {
356
355
  readonly discard: true
357
356
  }
358
- ): STM.STM<never, never, void>
357
+ ): STM.STM<void>
359
358
  <K, V>(
360
359
  self: TMap.TMap<K, V>,
361
360
  predicate: (key: K, value: V) => boolean,
362
361
  options?: {
363
362
  readonly discard: false
364
363
  }
365
- ): STM.STM<never, never, Array<[K, V]>>
364
+ ): STM.STM<Array<[K, V]>>
366
365
  } = dual((args) => isTMap(args[0]), <K, V>(
367
366
  self: TMap.TMap<K, V>,
368
367
  predicate: (key: K, value: V) => boolean,
@@ -409,27 +408,27 @@ export const retainIf: {
409
408
  options: {
410
409
  readonly discard: true
411
410
  }
412
- ): (self: TMap.TMap<K, V>) => STM.STM<never, never, void>
411
+ ): (self: TMap.TMap<K, V>) => STM.STM<void>
413
412
  <K, V>(
414
413
  predicate: (key: K, value: V) => boolean,
415
414
  options?: {
416
415
  readonly discard: false
417
416
  }
418
- ): (self: TMap.TMap<K, V>) => STM.STM<never, never, Array<[K, V]>>
417
+ ): (self: TMap.TMap<K, V>) => STM.STM<Array<[K, V]>>
419
418
  <K, V>(
420
419
  self: TMap.TMap<K, V>,
421
420
  predicate: (key: K, value: V) => boolean,
422
421
  options: {
423
422
  readonly discard: true
424
423
  }
425
- ): STM.STM<never, never, void>
424
+ ): STM.STM<void>
426
425
  <K, V>(
427
426
  self: TMap.TMap<K, V>,
428
427
  predicate: (key: K, value: V) => boolean,
429
428
  options?: {
430
429
  readonly discard: false
431
430
  }
432
- ): STM.STM<never, never, Array<[K, V]>>
431
+ ): STM.STM<Array<[K, V]>>
433
432
  } = dual(
434
433
  (args) => isTMap(args[0]),
435
434
  (self, predicate, options) => removeIf(self, (key, value) => !predicate(key, value), options)
@@ -437,8 +436,8 @@ export const retainIf: {
437
436
 
438
437
  /** @internal */
439
438
  export const set = dual<
440
- <K, V>(key: K, value: V) => (self: TMap.TMap<K, V>) => STM.STM<never, never, void>,
441
- <K, V>(self: TMap.TMap<K, V>, key: K, value: V) => STM.STM<never, never, void>
439
+ <K, V>(key: K, value: V) => (self: TMap.TMap<K, V>) => STM.STM<void>,
440
+ <K, V>(self: TMap.TMap<K, V>, key: K, value: V) => STM.STM<void>
442
441
  >(3, <K, V>(self: TMap.TMap<K, V>, key: K, value: V) => {
443
442
  const resize = (journal: Journal.Journal, buckets: TArray.TArray<Chunk.Chunk<readonly [K, V]>>): void => {
444
443
  const capacity = buckets.chunk.length
@@ -495,8 +494,8 @@ export const set = dual<
495
494
 
496
495
  /** @internal */
497
496
  export const setIfAbsent = dual<
498
- <K, V>(key: K, value: V) => (self: TMap.TMap<K, V>) => STM.STM<never, never, void>,
499
- <K, V>(self: TMap.TMap<K, V>, key: K, value: V) => STM.STM<never, never, void>
497
+ <K, V>(key: K, value: V) => (self: TMap.TMap<K, V>) => STM.STM<void>,
498
+ <K, V>(self: TMap.TMap<K, V>, key: K, value: V) => STM.STM<void>
500
499
  >(3, (self, key, value) =>
501
500
  core.flatMap(
502
501
  get(self, key),
@@ -507,12 +506,12 @@ export const setIfAbsent = dual<
507
506
  ))
508
507
 
509
508
  /** @internal */
510
- export const size = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, number> => tRef.get(self.tSize)
509
+ export const size = <K, V>(self: TMap.TMap<K, V>): STM.STM<number> => tRef.get(self.tSize)
511
510
 
512
511
  /** @internal */
513
512
  export const takeFirst = dual<
514
- <K, V, A>(pf: (key: K, value: V) => Option.Option<A>) => (self: TMap.TMap<K, V>) => STM.STM<never, never, A>,
515
- <K, V, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>) => STM.STM<never, never, A>
513
+ <K, V, A>(pf: (key: K, value: V) => Option.Option<A>) => (self: TMap.TMap<K, V>) => STM.STM<A>,
514
+ <K, V, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>) => STM.STM<A>
516
515
  >(2, <K, V, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>) =>
517
516
  pipe(
518
517
  core.effect<never, Option.Option<A>>((journal) => {
@@ -555,9 +554,9 @@ export const takeFirst = dual<
555
554
  /** @internal */
556
555
  export const takeFirstSTM = dual<
557
556
  <K, V, R, E, A>(
558
- pf: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>
559
- ) => (self: TMap.TMap<K, V>) => STM.STM<R, E, A>,
560
- <K, V, R, E, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>) => STM.STM<R, E, A>
557
+ pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
558
+ ) => (self: TMap.TMap<K, V>) => STM.STM<A, E, R>,
559
+ <K, V, R, E, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>) => STM.STM<A, E, R>
561
560
  >(2, (self, pf) =>
562
561
  pipe(
563
562
  findSTM(self, (key, value) => core.map(pf(key, value), (a) => [key, a] as const)),
@@ -569,11 +568,11 @@ export const takeFirstSTM = dual<
569
568
  export const takeSome = dual<
570
569
  <K, V, A>(
571
570
  pf: (key: K, value: V) => Option.Option<A>
572
- ) => (self: TMap.TMap<K, V>) => STM.STM<never, never, RA.NonEmptyArray<A>>,
571
+ ) => (self: TMap.TMap<K, V>) => STM.STM<RA.NonEmptyArray<A>>,
573
572
  <K, V, A>(
574
573
  self: TMap.TMap<K, V>,
575
574
  pf: (key: K, value: V) => Option.Option<A>
576
- ) => STM.STM<never, never, RA.NonEmptyArray<A>>
575
+ ) => STM.STM<RA.NonEmptyArray<A>>
577
576
  >(2, <K, V, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>) =>
578
577
  pipe(
579
578
  core.effect<never, Option.Option<RA.NonEmptyArray<A>>>((journal) => {
@@ -620,15 +619,15 @@ export const takeSome = dual<
620
619
  /** @internal */
621
620
  export const takeSomeSTM = dual<
622
621
  <K, V, R, E, A>(
623
- pf: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>
624
- ) => (self: TMap.TMap<K, V>) => STM.STM<R, E, RA.NonEmptyArray<A>>,
622
+ pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
623
+ ) => (self: TMap.TMap<K, V>) => STM.STM<RA.NonEmptyArray<A>, E, R>,
625
624
  <K, V, R, E, A>(
626
625
  self: TMap.TMap<K, V>,
627
- pf: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>
628
- ) => STM.STM<R, E, RA.NonEmptyArray<A>>
626
+ pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
627
+ ) => STM.STM<RA.NonEmptyArray<A>, E, R>
629
628
  >(2, <K, V, R, E, A>(
630
629
  self: TMap.TMap<K, V>,
631
- pf: (key: K, value: V) => STM.STM<R, Option.Option<E>, A>
630
+ pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
632
631
  ) =>
633
632
  pipe(
634
633
  findAllSTM(
@@ -653,7 +652,7 @@ export const takeSomeSTM = dual<
653
652
  )
654
653
  ))
655
654
 
656
- const toReadonlyArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, ReadonlyArray<readonly [K, V]>> =>
655
+ const toReadonlyArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<ReadonlyArray<readonly [K, V]>> =>
657
656
  core.effect<never, Array<readonly [K, V]>>((journal) => {
658
657
  const buckets = tRef.unsafeGet(self.tBuckets, journal)
659
658
  const capacity = buckets.chunk.length
@@ -670,7 +669,7 @@ const toReadonlyArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Rea
670
669
  })
671
670
 
672
671
  /** @internal */
673
- export const toChunk = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Chunk.Chunk<[K, V]>> =>
672
+ export const toChunk = <K, V>(self: TMap.TMap<K, V>): STM.STM<Chunk.Chunk<[K, V]>> =>
674
673
  reduce(
675
674
  self,
676
675
  Chunk.empty<[K, V]>(),
@@ -678,7 +677,7 @@ export const toChunk = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Chun
678
677
  )
679
678
 
680
679
  /** @internal */
681
- export const toHashMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, HashMap.HashMap<K, V>> =>
680
+ export const toHashMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<HashMap.HashMap<K, V>> =>
682
681
  reduce(
683
682
  self,
684
683
  HashMap.empty<K, V>(),
@@ -686,7 +685,7 @@ export const toHashMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Ha
686
685
  )
687
686
 
688
687
  /** @internal */
689
- export const toArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Array<[K, V]>> =>
688
+ export const toArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<Array<[K, V]>> =>
690
689
  reduce(
691
690
  self,
692
691
  [] as Array<[K, V]>,
@@ -697,7 +696,7 @@ export const toArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Arra
697
696
  )
698
697
 
699
698
  /** @internal */
700
- export const toMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Map<K, V>> =>
699
+ export const toMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<Map<K, V>> =>
701
700
  reduce(
702
701
  self,
703
702
  new Map<K, V>(),
@@ -706,8 +705,8 @@ export const toMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Map<K,
706
705
 
707
706
  /** @internal */
708
707
  export const transform = dual<
709
- <K, V>(f: (key: K, value: V) => readonly [K, V]) => (self: TMap.TMap<K, V>) => STM.STM<never, never, void>,
710
- <K, V>(self: TMap.TMap<K, V>, f: (key: K, value: V) => readonly [K, V]) => STM.STM<never, never, void>
708
+ <K, V>(f: (key: K, value: V) => readonly [K, V]) => (self: TMap.TMap<K, V>) => STM.STM<void>,
709
+ <K, V>(self: TMap.TMap<K, V>, f: (key: K, value: V) => readonly [K, V]) => STM.STM<void>
711
710
  >(
712
711
  2,
713
712
  <K, V>(self: TMap.TMap<K, V>, f: (key: K, value: V) => readonly [K, V]) =>
@@ -745,12 +744,12 @@ export const transform = dual<
745
744
  /** @internal */
746
745
  export const transformSTM = dual<
747
746
  <K, V, R, E>(
748
- f: (key: K, value: V) => STM.STM<R, E, readonly [K, V]>
749
- ) => (self: TMap.TMap<K, V>) => STM.STM<R, E, void>,
750
- <K, V, R, E>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<R, E, readonly [K, V]>) => STM.STM<R, E, void>
747
+ f: (key: K, value: V) => STM.STM<readonly [K, V], E, R>
748
+ ) => (self: TMap.TMap<K, V>) => STM.STM<void, E, R>,
749
+ <K, V, R, E>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<readonly [K, V], E, R>) => STM.STM<void, E, R>
751
750
  >(
752
751
  2,
753
- <K, V, R, E>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<R, E, readonly [K, V]>) =>
752
+ <K, V, R, E>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<readonly [K, V], E, R>) =>
754
753
  pipe(
755
754
  core.flatMap(
756
755
  toReadonlyArray(self),
@@ -785,14 +784,14 @@ export const transformSTM = dual<
785
784
 
786
785
  /** @internal */
787
786
  export const transformValues = dual<
788
- <V>(f: (value: V) => V) => <K>(self: TMap.TMap<K, V>) => STM.STM<never, never, void>,
789
- <K, V>(self: TMap.TMap<K, V>, f: (value: V) => V) => STM.STM<never, never, void>
787
+ <V>(f: (value: V) => V) => <K>(self: TMap.TMap<K, V>) => STM.STM<void>,
788
+ <K, V>(self: TMap.TMap<K, V>, f: (value: V) => V) => STM.STM<void>
790
789
  >(2, (self, f) => transform(self, (key, value) => [key, f(value)]))
791
790
 
792
791
  /** @internal */
793
792
  export const transformValuesSTM = dual<
794
- <V, R, E>(f: (value: V) => STM.STM<R, E, V>) => <K>(self: TMap.TMap<K, V>) => STM.STM<R, E, void>,
795
- <K, V, R, E>(self: TMap.TMap<K, V>, f: (value: V) => STM.STM<R, E, V>) => STM.STM<R, E, void>
793
+ <V, R, E>(f: (value: V) => STM.STM<V, E, R>) => <K>(self: TMap.TMap<K, V>) => STM.STM<void, E, R>,
794
+ <K, V, R, E>(self: TMap.TMap<K, V>, f: (value: V) => STM.STM<V, E, R>) => STM.STM<void, E, R>
796
795
  >(2, (self, f) =>
797
796
  transformSTM(
798
797
  self,
@@ -804,12 +803,12 @@ export const updateWith = dual<
804
803
  <K, V>(
805
804
  key: K,
806
805
  f: (value: Option.Option<V>) => Option.Option<V>
807
- ) => (self: TMap.TMap<K, V>) => STM.STM<never, never, Option.Option<V>>,
806
+ ) => (self: TMap.TMap<K, V>) => STM.STM<Option.Option<V>>,
808
807
  <K, V>(
809
808
  self: TMap.TMap<K, V>,
810
809
  key: K,
811
810
  f: (value: Option.Option<V>) => Option.Option<V>
812
- ) => STM.STM<never, never, Option.Option<V>>
811
+ ) => STM.STM<Option.Option<V>>
813
812
  >(3, (self, key, f) =>
814
813
  core.flatMap(get(self, key), (option) =>
815
814
  Option.match(
@@ -821,5 +820,5 @@ export const updateWith = dual<
821
820
  )))
822
821
 
823
822
  /** @internal */
824
- export const values = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Array<V>> =>
823
+ export const values = <K, V>(self: TMap.TMap<K, V>): STM.STM<Array<V>> =>
825
824
  core.map(toReadonlyArray(self), RA.map((entry) => entry[1]))
@@ -31,7 +31,7 @@ export class TPriorityQueueImpl<in out A> implements TPriorityQueue.TPriorityQue
31
31
  }
32
32
 
33
33
  /** @internal */
34
- export const empty = <A>(order: Order.Order<A>): STM.STM<never, never, TPriorityQueue.TPriorityQueue<A>> =>
34
+ export const empty = <A>(order: Order.Order<A>): STM.STM<TPriorityQueue.TPriorityQueue<A>> =>
35
35
  pipe(
36
36
  tRef.make(SortedMap.empty<A, [A, ...Array<A>]>(order)),
37
37
  core.map((ref) => new TPriorityQueueImpl(ref))
@@ -39,7 +39,7 @@ export const empty = <A>(order: Order.Order<A>): STM.STM<never, never, TPriority
39
39
 
40
40
  /** @internal */
41
41
  export const fromIterable =
42
- <A>(order: Order.Order<A>) => (iterable: Iterable<A>): STM.STM<never, never, TPriorityQueue.TPriorityQueue<A>> =>
42
+ <A>(order: Order.Order<A>) => (iterable: Iterable<A>): STM.STM<TPriorityQueue.TPriorityQueue<A>> =>
43
43
  pipe(
44
44
  tRef.make(
45
45
  Array.from(iterable).reduce(
@@ -65,22 +65,21 @@ export const fromIterable =
65
65
  )
66
66
 
67
67
  /** @internal */
68
- export const isEmpty = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never, never, boolean> =>
68
+ export const isEmpty = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<boolean> =>
69
69
  core.map(tRef.get(self.ref), SortedMap.isEmpty)
70
70
 
71
71
  /** @internal */
72
- export const isNonEmpty = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never, never, boolean> =>
72
+ export const isNonEmpty = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<boolean> =>
73
73
  core.map(tRef.get(self.ref), SortedMap.isNonEmpty)
74
74
 
75
75
  /** @internal */
76
- export const make =
77
- <A>(order: Order.Order<A>) => (...elements: Array<A>): STM.STM<never, never, TPriorityQueue.TPriorityQueue<A>> =>
78
- fromIterable(order)(elements)
76
+ export const make = <A>(order: Order.Order<A>) => (...elements: Array<A>): STM.STM<TPriorityQueue.TPriorityQueue<A>> =>
77
+ fromIterable(order)(elements)
79
78
 
80
79
  /** @internal */
81
80
  export const offer = dual<
82
- <A>(value: A) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<never, never, void>,
83
- <A>(self: TPriorityQueue.TPriorityQueue<A>, value: A) => STM.STM<never, never, void>
81
+ <A>(value: A) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<void>,
82
+ <A>(self: TPriorityQueue.TPriorityQueue<A>, value: A) => STM.STM<void>
84
83
  >(2, (self, value) =>
85
84
  tRef.update(self.ref, (map) =>
86
85
  SortedMap.set(
@@ -94,8 +93,8 @@ export const offer = dual<
94
93
 
95
94
  /** @internal */
96
95
  export const offerAll = dual<
97
- <A>(values: Iterable<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<never, never, void>,
98
- <A>(self: TPriorityQueue.TPriorityQueue<A>, values: Iterable<A>) => STM.STM<never, never, void>
96
+ <A>(values: Iterable<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<void>,
97
+ <A>(self: TPriorityQueue.TPriorityQueue<A>, values: Iterable<A>) => STM.STM<void>
99
98
  >(2, (self, values) =>
100
99
  tRef.update(self.ref, (map) =>
101
100
  Array.from(values).reduce(
@@ -112,7 +111,7 @@ export const offerAll = dual<
112
111
  )))
113
112
 
114
113
  /** @internal */
115
- export const peek = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never, never, A> =>
114
+ export const peek = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<A> =>
116
115
  core.withSTMRuntime((runtime) => {
117
116
  const map = tRef.unsafeGet(self.ref, runtime.journal)
118
117
  return Option.match(
@@ -125,7 +124,7 @@ export const peek = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never,
125
124
  })
126
125
 
127
126
  /** @internal */
128
- export const peekOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never, never, Option.Option<A>> =>
127
+ export const peekOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<Option.Option<A>> =>
129
128
  tRef.modify(self.ref, (map) => [
130
129
  Option.map(SortedMap.headOption(map), (elements) => elements[0]),
131
130
  map
@@ -133,14 +132,14 @@ export const peekOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<n
133
132
 
134
133
  /** @internal */
135
134
  export const removeIf = dual<
136
- <A>(predicate: Predicate<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<never, never, void>,
137
- <A>(self: TPriorityQueue.TPriorityQueue<A>, predicate: Predicate<A>) => STM.STM<never, never, void>
135
+ <A>(predicate: Predicate<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<void>,
136
+ <A>(self: TPriorityQueue.TPriorityQueue<A>, predicate: Predicate<A>) => STM.STM<void>
138
137
  >(2, (self, predicate) => retainIf(self, (a) => !predicate(a)))
139
138
 
140
139
  /** @internal */
141
140
  export const retainIf = dual<
142
- <A>(predicate: Predicate<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<never, never, void>,
143
- <A>(self: TPriorityQueue.TPriorityQueue<A>, predicate: Predicate<A>) => STM.STM<never, never, void>
141
+ <A>(predicate: Predicate<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<void>,
142
+ <A>(self: TPriorityQueue.TPriorityQueue<A>, predicate: Predicate<A>) => STM.STM<void>
144
143
  >(
145
144
  2,
146
145
  <A>(self: TPriorityQueue.TPriorityQueue<A>, predicate: Predicate<A>) =>
@@ -157,14 +156,14 @@ export const retainIf = dual<
157
156
  )
158
157
 
159
158
  /** @internal */
160
- export const size = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never, never, number> =>
159
+ export const size = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<number> =>
161
160
  tRef.modify(
162
161
  self.ref,
163
162
  (map) => [SortedMap.reduce(map, 0, (n, as) => n + as.length), map]
164
163
  )
165
164
 
166
165
  /** @internal */
167
- export const take = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never, never, A> =>
166
+ export const take = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<A> =>
168
167
  core.withSTMRuntime((runtime) => {
169
168
  const map = tRef.unsafeGet(self.ref, runtime.journal)
170
169
  return Option.match(SortedMap.headOption(map), {
@@ -185,7 +184,7 @@ export const take = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never,
185
184
  })
186
185
 
187
186
  /** @internal */
188
- export const takeAll = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never, never, Array<A>> =>
187
+ export const takeAll = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<Array<A>> =>
189
188
  tRef.modify(self.ref, (map) => {
190
189
  const builder: Array<A> = []
191
190
  for (const entry of map) {
@@ -197,7 +196,7 @@ export const takeAll = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<neve
197
196
  })
198
197
 
199
198
  /** @internal */
200
- export const takeOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never, never, Option.Option<A>> =>
199
+ export const takeOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<Option.Option<A>> =>
201
200
  core.effect<never, Option.Option<A>>((journal) => {
202
201
  const map = pipe(self.ref, tRef.unsafeGet(journal))
203
202
  return Option.match(SortedMap.headOption(map), {
@@ -218,8 +217,8 @@ export const takeOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<n
218
217
 
219
218
  /** @internal */
220
219
  export const takeUpTo = dual<
221
- (n: number) => <A>(self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<never, never, Array<A>>,
222
- <A>(self: TPriorityQueue.TPriorityQueue<A>, n: number) => STM.STM<never, never, Array<A>>
220
+ (n: number) => <A>(self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<Array<A>>,
221
+ <A>(self: TPriorityQueue.TPriorityQueue<A>, n: number) => STM.STM<Array<A>>
223
222
  >(2, <A>(self: TPriorityQueue.TPriorityQueue<A>, n: number) =>
224
223
  tRef.modify(self.ref, (map) => {
225
224
  const builder: Array<A> = []
@@ -244,7 +243,7 @@ export const takeUpTo = dual<
244
243
  }))
245
244
 
246
245
  /** @internal */
247
- export const toChunk = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never, never, Chunk.Chunk<A>> =>
246
+ export const toChunk = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<Chunk.Chunk<A>> =>
248
247
  tRef.modify(self.ref, (map) => {
249
248
  const builder: Array<A> = []
250
249
  for (const entry of map) {
@@ -256,7 +255,7 @@ export const toChunk = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<neve
256
255
  })
257
256
 
258
257
  /** @internal */
259
- export const toArray = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never, never, Array<A>> =>
258
+ export const toArray = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<Array<A>> =>
260
259
  tRef.modify(self.ref, (map) => {
261
260
  const builder: Array<A> = []
262
261
  for (const entry of map) {