effect 2.2.5 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/RateLimiter/package.json +6 -0
  2. package/dist/cjs/Cause.js +14 -1
  3. package/dist/cjs/Cause.js.map +1 -1
  4. package/dist/cjs/Channel.js.map +1 -1
  5. package/dist/cjs/Clock.js.map +1 -1
  6. package/dist/cjs/Console.js.map +1 -1
  7. package/dist/cjs/Context.js +23 -25
  8. package/dist/cjs/Context.js.map +1 -1
  9. package/dist/cjs/Data.js +3 -3
  10. package/dist/cjs/Data.js.map +1 -1
  11. package/dist/cjs/Deferred.js +1 -1
  12. package/dist/cjs/Deferred.js.map +1 -1
  13. package/dist/cjs/Effect.js +9 -9
  14. package/dist/cjs/Effect.js.map +1 -1
  15. package/dist/cjs/Effectable.js.map +1 -1
  16. package/dist/cjs/Either.js.map +1 -1
  17. package/dist/cjs/Exit.js +2 -2
  18. package/dist/cjs/Exit.js.map +1 -1
  19. package/dist/cjs/Fiber.js.map +1 -1
  20. package/dist/cjs/FiberMap.js +3 -3
  21. package/dist/cjs/FiberRef.js.map +1 -1
  22. package/dist/cjs/FiberRefs.js.map +1 -1
  23. package/dist/cjs/FiberSet.js +3 -3
  24. package/dist/cjs/FiberSet.js.map +1 -1
  25. package/dist/cjs/GroupBy.js.map +1 -1
  26. package/dist/cjs/Layer.js.map +1 -1
  27. package/dist/cjs/LogLevel.js.map +1 -1
  28. package/dist/cjs/Logger.js.map +1 -1
  29. package/dist/cjs/Metric.js.map +1 -1
  30. package/dist/cjs/Number.js +20 -1
  31. package/dist/cjs/Number.js.map +1 -1
  32. package/dist/cjs/Option.js.map +1 -1
  33. package/dist/cjs/Pool.js.map +1 -1
  34. package/dist/cjs/PubSub.js.map +1 -1
  35. package/dist/cjs/Queue.js.map +1 -1
  36. package/dist/cjs/Random.js.map +1 -1
  37. package/dist/cjs/RateLimiter.js +38 -0
  38. package/dist/cjs/RateLimiter.js.map +1 -0
  39. package/dist/cjs/ReadonlyRecord.js +45 -9
  40. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  41. package/dist/cjs/Ref.js.map +1 -1
  42. package/dist/cjs/Request.js.map +1 -1
  43. package/dist/cjs/RequestResolver.js.map +1 -1
  44. package/dist/cjs/Resource.js.map +1 -1
  45. package/dist/cjs/Runtime.js +1 -4
  46. package/dist/cjs/Runtime.js.map +1 -1
  47. package/dist/cjs/RuntimeFlags.js.map +1 -1
  48. package/dist/cjs/STM.js.map +1 -1
  49. package/dist/cjs/Schedule.js.map +1 -1
  50. package/dist/cjs/Scope.js.map +1 -1
  51. package/dist/cjs/ScopedRef.js.map +1 -1
  52. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
  53. package/dist/cjs/Sink.js.map +1 -1
  54. package/dist/cjs/Stream.js.map +1 -1
  55. package/dist/cjs/SubscriptionRef.js.map +1 -1
  56. package/dist/cjs/Supervisor.js.map +1 -1
  57. package/dist/cjs/SynchronizedRef.js.map +1 -1
  58. package/dist/cjs/TArray.js.map +1 -1
  59. package/dist/cjs/TDeferred.js.map +1 -1
  60. package/dist/cjs/TMap.js.map +1 -1
  61. package/dist/cjs/TPriorityQueue.js.map +1 -1
  62. package/dist/cjs/TPubSub.js.map +1 -1
  63. package/dist/cjs/TQueue.js.map +1 -1
  64. package/dist/cjs/TRandom.js.map +1 -1
  65. package/dist/cjs/TReentrantLock.js.map +1 -1
  66. package/dist/cjs/TRef.js.map +1 -1
  67. package/dist/cjs/TSemaphore.js.map +1 -1
  68. package/dist/cjs/TSet.js.map +1 -1
  69. package/dist/cjs/Take.js +6 -6
  70. package/dist/cjs/Take.js.map +1 -1
  71. package/dist/cjs/TestAnnotation.js +10 -13
  72. package/dist/cjs/TestAnnotation.js.map +1 -1
  73. package/dist/cjs/TestAnnotations.js +1 -1
  74. package/dist/cjs/TestAnnotations.js.map +1 -1
  75. package/dist/cjs/TestClock.js +1 -1
  76. package/dist/cjs/TestClock.js.map +1 -1
  77. package/dist/cjs/TestConfig.js +1 -1
  78. package/dist/cjs/TestConfig.js.map +1 -1
  79. package/dist/cjs/TestContext.js.map +1 -1
  80. package/dist/cjs/TestLive.js +1 -1
  81. package/dist/cjs/TestLive.js.map +1 -1
  82. package/dist/cjs/TestServices.js.map +1 -1
  83. package/dist/cjs/TestSized.js +1 -1
  84. package/dist/cjs/TestSized.js.map +1 -1
  85. package/dist/cjs/Utils.js +0 -1
  86. package/dist/cjs/Utils.js.map +1 -1
  87. package/dist/cjs/index.js +4 -2
  88. package/dist/cjs/index.js.map +1 -1
  89. package/dist/cjs/internal/cache.js.map +1 -1
  90. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  91. package/dist/cjs/internal/channel/mergeDecision.js +2 -6
  92. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
  93. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  94. package/dist/cjs/internal/channel.js +1 -1
  95. package/dist/cjs/internal/channel.js.map +1 -1
  96. package/dist/cjs/internal/clock.js +1 -1
  97. package/dist/cjs/internal/clock.js.map +1 -1
  98. package/dist/cjs/internal/configProvider.js +2 -4
  99. package/dist/cjs/internal/configProvider.js.map +1 -1
  100. package/dist/cjs/internal/console.js.map +1 -1
  101. package/dist/cjs/internal/context.js +31 -22
  102. package/dist/cjs/internal/context.js.map +1 -1
  103. package/dist/cjs/internal/core-effect.js +13 -27
  104. package/dist/cjs/internal/core-effect.js.map +1 -1
  105. package/dist/cjs/internal/core-stream.js.map +1 -1
  106. package/dist/cjs/internal/core.js +61 -130
  107. package/dist/cjs/internal/core.js.map +1 -1
  108. package/dist/cjs/internal/data.js.map +1 -1
  109. package/dist/cjs/internal/defaultServices/console.js +1 -1
  110. package/dist/cjs/internal/defaultServices/console.js.map +1 -1
  111. package/dist/cjs/internal/defaultServices.js.map +1 -1
  112. package/dist/cjs/internal/deferred.js.map +1 -1
  113. package/dist/cjs/internal/differ/contextPatch.js +9 -9
  114. package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
  115. package/dist/cjs/internal/effect/circular.js +7 -10
  116. package/dist/cjs/internal/effect/circular.js.map +1 -1
  117. package/dist/cjs/internal/effectable.js +4 -4
  118. package/dist/cjs/internal/effectable.js.map +1 -1
  119. package/dist/cjs/internal/fiber.js +2 -6
  120. package/dist/cjs/internal/fiber.js.map +1 -1
  121. package/dist/cjs/internal/fiberRuntime.js +10 -19
  122. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  123. package/dist/cjs/internal/groupBy.js.map +1 -1
  124. package/dist/cjs/internal/keyedPool.js.map +1 -1
  125. package/dist/cjs/internal/layer/circular.js.map +1 -1
  126. package/dist/cjs/internal/layer.js +3 -3
  127. package/dist/cjs/internal/layer.js.map +1 -1
  128. package/dist/cjs/internal/logSpan.js +3 -5
  129. package/dist/cjs/internal/logSpan.js.map +1 -1
  130. package/dist/cjs/internal/metric.js.map +1 -1
  131. package/dist/cjs/internal/pool.js.map +1 -1
  132. package/dist/cjs/internal/pubsub.js +2 -6
  133. package/dist/cjs/internal/pubsub.js.map +1 -1
  134. package/dist/cjs/internal/query.js.map +1 -1
  135. package/dist/cjs/internal/queue.js.map +1 -1
  136. package/dist/cjs/internal/random.js +1 -1
  137. package/dist/cjs/internal/random.js.map +1 -1
  138. package/dist/cjs/internal/rateLimiter.js +44 -0
  139. package/dist/cjs/internal/rateLimiter.js.map +1 -0
  140. package/dist/cjs/internal/ref.js.map +1 -1
  141. package/dist/cjs/internal/reloadable.js +1 -9
  142. package/dist/cjs/internal/reloadable.js.map +1 -1
  143. package/dist/cjs/internal/runtime.js +0 -1
  144. package/dist/cjs/internal/runtime.js.map +1 -1
  145. package/dist/cjs/internal/schedule.js.map +1 -1
  146. package/dist/cjs/internal/scopedCache.js.map +1 -1
  147. package/dist/cjs/internal/scopedRef.js.map +1 -1
  148. package/dist/cjs/internal/sink.js +7 -7
  149. package/dist/cjs/internal/sink.js.map +1 -1
  150. package/dist/cjs/internal/stm/core.js.map +1 -1
  151. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  152. package/dist/cjs/internal/stm/stm/tExit.js +2 -2
  153. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  154. package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
  155. package/dist/cjs/internal/stm/stm.js.map +1 -1
  156. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  157. package/dist/cjs/internal/stm/tDeferred.js +4 -2
  158. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  159. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  160. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  161. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  162. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  163. package/dist/cjs/internal/stm/tRandom.js +1 -1
  164. package/dist/cjs/internal/stm/tRandom.js.map +1 -1
  165. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
  166. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  167. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  168. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  169. package/dist/cjs/internal/stream/debounceState.js.map +1 -1
  170. package/dist/cjs/internal/stream/handoff.js.map +1 -1
  171. package/dist/cjs/internal/stream/handoffSignal.js.map +1 -1
  172. package/dist/cjs/internal/stream/pull.js.map +1 -1
  173. package/dist/cjs/internal/stream.js +0 -2
  174. package/dist/cjs/internal/stream.js.map +1 -1
  175. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  176. package/dist/cjs/internal/supervisor.js.map +1 -1
  177. package/dist/cjs/internal/take.js +2 -2
  178. package/dist/cjs/internal/take.js.map +1 -1
  179. package/dist/cjs/internal/testing/sleep.js.map +1 -1
  180. package/dist/cjs/internal/tracer.js +2 -2
  181. package/dist/cjs/internal/tracer.js.map +1 -1
  182. package/dist/cjs/internal/version.js +1 -1
  183. package/dist/dts/Cache.d.ts +20 -20
  184. package/dist/dts/Cache.d.ts.map +1 -1
  185. package/dist/dts/Cause.d.ts +33 -5
  186. package/dist/dts/Cause.d.ts.map +1 -1
  187. package/dist/dts/Channel.d.ts +197 -194
  188. package/dist/dts/Channel.d.ts.map +1 -1
  189. package/dist/dts/Clock.d.ts +7 -7
  190. package/dist/dts/Clock.d.ts.map +1 -1
  191. package/dist/dts/Config.d.ts +1 -1
  192. package/dist/dts/Config.d.ts.map +1 -1
  193. package/dist/dts/ConfigProvider.d.ts +6 -6
  194. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  195. package/dist/dts/Console.d.ts +43 -43
  196. package/dist/dts/Console.d.ts.map +1 -1
  197. package/dist/dts/Context.d.ts +44 -29
  198. package/dist/dts/Context.d.ts.map +1 -1
  199. package/dist/dts/Data.d.ts +38 -57
  200. package/dist/dts/Data.d.ts.map +1 -1
  201. package/dist/dts/Deferred.d.ts +36 -36
  202. package/dist/dts/Deferred.d.ts.map +1 -1
  203. package/dist/dts/Effect.d.ts +732 -729
  204. package/dist/dts/Effect.d.ts.map +1 -1
  205. package/dist/dts/Effectable.d.ts +8 -8
  206. package/dist/dts/Effectable.d.ts.map +1 -1
  207. package/dist/dts/Either.d.ts +2 -3
  208. package/dist/dts/Either.d.ts.map +1 -1
  209. package/dist/dts/Exit.d.ts +74 -74
  210. package/dist/dts/Exit.d.ts.map +1 -1
  211. package/dist/dts/Fiber.d.ts +75 -75
  212. package/dist/dts/Fiber.d.ts.map +1 -1
  213. package/dist/dts/FiberMap.d.ts +22 -22
  214. package/dist/dts/FiberMap.d.ts.map +1 -1
  215. package/dist/dts/FiberRef.d.ts +28 -28
  216. package/dist/dts/FiberRef.d.ts.map +1 -1
  217. package/dist/dts/FiberRefs.d.ts +1 -1
  218. package/dist/dts/FiberRefs.d.ts.map +1 -1
  219. package/dist/dts/FiberSet.d.ts +16 -16
  220. package/dist/dts/FiberSet.d.ts.map +1 -1
  221. package/dist/dts/GroupBy.d.ts +6 -6
  222. package/dist/dts/GroupBy.d.ts.map +1 -1
  223. package/dist/dts/KeyedPool.d.ts +22 -22
  224. package/dist/dts/KeyedPool.d.ts.map +1 -1
  225. package/dist/dts/Layer.d.ts +126 -126
  226. package/dist/dts/Layer.d.ts.map +1 -1
  227. package/dist/dts/LogLevel.d.ts +2 -2
  228. package/dist/dts/LogLevel.d.ts.map +1 -1
  229. package/dist/dts/Logger.d.ts +14 -14
  230. package/dist/dts/Logger.d.ts.map +1 -1
  231. package/dist/dts/MergeDecision.d.ts +7 -7
  232. package/dist/dts/MergeState.d.ts +13 -13
  233. package/dist/dts/MergeState.d.ts.map +1 -1
  234. package/dist/dts/Metric.d.ts +32 -32
  235. package/dist/dts/Metric.d.ts.map +1 -1
  236. package/dist/dts/MetricPolling.d.ts +6 -6
  237. package/dist/dts/MetricPolling.d.ts.map +1 -1
  238. package/dist/dts/Number.d.ts +15 -0
  239. package/dist/dts/Number.d.ts.map +1 -1
  240. package/dist/dts/Option.d.ts +2 -3
  241. package/dist/dts/Option.d.ts.map +1 -1
  242. package/dist/dts/Pool.d.ts +15 -16
  243. package/dist/dts/Pool.d.ts.map +1 -1
  244. package/dist/dts/PubSub.d.ts +18 -18
  245. package/dist/dts/PubSub.d.ts.map +1 -1
  246. package/dist/dts/Queue.d.ts +40 -40
  247. package/dist/dts/Queue.d.ts.map +1 -1
  248. package/dist/dts/Random.d.ts +13 -13
  249. package/dist/dts/Random.d.ts.map +1 -1
  250. package/dist/dts/RateLimiter.d.ts +31 -0
  251. package/dist/dts/RateLimiter.d.ts.map +1 -0
  252. package/dist/dts/ReadonlyArray.d.ts +3 -3
  253. package/dist/dts/ReadonlyRecord.d.ts +37 -8
  254. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  255. package/dist/dts/Ref.d.ts +25 -25
  256. package/dist/dts/Ref.d.ts.map +1 -1
  257. package/dist/dts/Reloadable.d.ts +9 -9
  258. package/dist/dts/Reloadable.d.ts.map +1 -1
  259. package/dist/dts/Request.d.ts +27 -28
  260. package/dist/dts/Request.d.ts.map +1 -1
  261. package/dist/dts/RequestBlock.d.ts +3 -3
  262. package/dist/dts/RequestBlock.d.ts.map +1 -1
  263. package/dist/dts/RequestResolver.d.ts +16 -16
  264. package/dist/dts/RequestResolver.d.ts.map +1 -1
  265. package/dist/dts/Resource.d.ts +7 -7
  266. package/dist/dts/Resource.d.ts.map +1 -1
  267. package/dist/dts/Runtime.d.ts +13 -16
  268. package/dist/dts/Runtime.d.ts.map +1 -1
  269. package/dist/dts/RuntimeFlags.d.ts +10 -10
  270. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  271. package/dist/dts/STM.d.ts +303 -303
  272. package/dist/dts/STM.d.ts.map +1 -1
  273. package/dist/dts/Schedule.d.ts +19 -19
  274. package/dist/dts/Schedule.d.ts.map +1 -1
  275. package/dist/dts/Scope.d.ts +10 -10
  276. package/dist/dts/Scope.d.ts.map +1 -1
  277. package/dist/dts/ScopedCache.d.ts +14 -14
  278. package/dist/dts/ScopedCache.d.ts.map +1 -1
  279. package/dist/dts/ScopedRef.d.ts +5 -5
  280. package/dist/dts/ScopedRef.d.ts.map +1 -1
  281. package/dist/dts/SingleProducerAsyncInput.d.ts +8 -8
  282. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  283. package/dist/dts/Sink.d.ts +214 -205
  284. package/dist/dts/Sink.d.ts.map +1 -1
  285. package/dist/dts/Stream.d.ts +595 -592
  286. package/dist/dts/Stream.d.ts.map +1 -1
  287. package/dist/dts/StreamEmit.d.ts +5 -5
  288. package/dist/dts/StreamEmit.d.ts.map +1 -1
  289. package/dist/dts/Streamable.d.ts +2 -2
  290. package/dist/dts/Streamable.d.ts.map +1 -1
  291. package/dist/dts/SubscriptionRef.d.ts +41 -41
  292. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  293. package/dist/dts/Supervisor.d.ts +17 -17
  294. package/dist/dts/Supervisor.d.ts.map +1 -1
  295. package/dist/dts/SynchronizedRef.d.ts +41 -41
  296. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  297. package/dist/dts/TArray.d.ts +72 -72
  298. package/dist/dts/TArray.d.ts.map +1 -1
  299. package/dist/dts/TDeferred.d.ts +12 -12
  300. package/dist/dts/TDeferred.d.ts.map +1 -1
  301. package/dist/dts/TMap.d.ts +67 -67
  302. package/dist/dts/TMap.d.ts.map +1 -1
  303. package/dist/dts/TPriorityQueue.d.ts +23 -23
  304. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  305. package/dist/dts/TPubSub.d.ts +15 -15
  306. package/dist/dts/TPubSub.d.ts.map +1 -1
  307. package/dist/dts/TQueue.d.ts +40 -40
  308. package/dist/dts/TQueue.d.ts.map +1 -1
  309. package/dist/dts/TRandom.d.ts +13 -13
  310. package/dist/dts/TRandom.d.ts.map +1 -1
  311. package/dist/dts/TReentrantLock.d.ts +21 -21
  312. package/dist/dts/TReentrantLock.d.ts.map +1 -1
  313. package/dist/dts/TRef.d.ts +25 -25
  314. package/dist/dts/TRef.d.ts.map +1 -1
  315. package/dist/dts/TSemaphore.d.ts +15 -15
  316. package/dist/dts/TSemaphore.d.ts.map +1 -1
  317. package/dist/dts/TSet.d.ts +49 -49
  318. package/dist/dts/TSet.d.ts.map +1 -1
  319. package/dist/dts/Take.d.ts +41 -41
  320. package/dist/dts/Take.d.ts.map +1 -1
  321. package/dist/dts/TestAnnotation.d.ts +1 -3
  322. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  323. package/dist/dts/TestAnnotations.d.ts +3 -3
  324. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  325. package/dist/dts/TestClock.d.ts +18 -18
  326. package/dist/dts/TestClock.d.ts.map +1 -1
  327. package/dist/dts/TestConfig.d.ts.map +1 -1
  328. package/dist/dts/TestContext.d.ts +2 -2
  329. package/dist/dts/TestContext.d.ts.map +1 -1
  330. package/dist/dts/TestLive.d.ts +1 -1
  331. package/dist/dts/TestLive.d.ts.map +1 -1
  332. package/dist/dts/TestServices.d.ts +31 -31
  333. package/dist/dts/TestServices.d.ts.map +1 -1
  334. package/dist/dts/TestSized.d.ts +2 -2
  335. package/dist/dts/TestSized.d.ts.map +1 -1
  336. package/dist/dts/Tracer.d.ts +1 -1
  337. package/dist/dts/Utils.d.ts.map +1 -1
  338. package/dist/dts/index.d.ts +12 -2
  339. package/dist/dts/index.d.ts.map +1 -1
  340. package/dist/dts/internal/channel/channelExecutor.d.ts +1 -1
  341. package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -1
  342. package/dist/dts/internal/core-stream.d.ts +1 -1
  343. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  344. package/dist/dts/internal/rateLimiter.d.ts +2 -0
  345. package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
  346. package/dist/dts/internal/stm/stm.d.ts +6 -6
  347. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  348. package/dist/dts/internal/version.d.ts +1 -1
  349. package/dist/esm/Cause.js +13 -0
  350. package/dist/esm/Cause.js.map +1 -1
  351. package/dist/esm/Channel.js.map +1 -1
  352. package/dist/esm/Clock.js.map +1 -1
  353. package/dist/esm/Console.js.map +1 -1
  354. package/dist/esm/Context.js +22 -24
  355. package/dist/esm/Context.js.map +1 -1
  356. package/dist/esm/Data.js +4 -5
  357. package/dist/esm/Data.js.map +1 -1
  358. package/dist/esm/Deferred.js +1 -1
  359. package/dist/esm/Deferred.js.map +1 -1
  360. package/dist/esm/Effect.js +9 -9
  361. package/dist/esm/Effect.js.map +1 -1
  362. package/dist/esm/Effectable.js.map +1 -1
  363. package/dist/esm/Either.js.map +1 -1
  364. package/dist/esm/Exit.js +2 -2
  365. package/dist/esm/Exit.js.map +1 -1
  366. package/dist/esm/Fiber.js.map +1 -1
  367. package/dist/esm/FiberMap.js +3 -3
  368. package/dist/esm/FiberRef.js.map +1 -1
  369. package/dist/esm/FiberRefs.js.map +1 -1
  370. package/dist/esm/FiberSet.js +3 -3
  371. package/dist/esm/FiberSet.js.map +1 -1
  372. package/dist/esm/GroupBy.js.map +1 -1
  373. package/dist/esm/Layer.js.map +1 -1
  374. package/dist/esm/LogLevel.js.map +1 -1
  375. package/dist/esm/Logger.js.map +1 -1
  376. package/dist/esm/Metric.js.map +1 -1
  377. package/dist/esm/Number.js +18 -0
  378. package/dist/esm/Number.js.map +1 -1
  379. package/dist/esm/Option.js.map +1 -1
  380. package/dist/esm/Pool.js.map +1 -1
  381. package/dist/esm/PubSub.js.map +1 -1
  382. package/dist/esm/Queue.js.map +1 -1
  383. package/dist/esm/Random.js.map +1 -1
  384. package/dist/esm/RateLimiter.js +7 -0
  385. package/dist/esm/RateLimiter.js.map +1 -0
  386. package/dist/esm/ReadonlyRecord.js +44 -8
  387. package/dist/esm/ReadonlyRecord.js.map +1 -1
  388. package/dist/esm/Ref.js.map +1 -1
  389. package/dist/esm/Request.js.map +1 -1
  390. package/dist/esm/RequestResolver.js.map +1 -1
  391. package/dist/esm/Resource.js.map +1 -1
  392. package/dist/esm/Runtime.js +1 -4
  393. package/dist/esm/Runtime.js.map +1 -1
  394. package/dist/esm/RuntimeFlags.js.map +1 -1
  395. package/dist/esm/STM.js.map +1 -1
  396. package/dist/esm/Schedule.js.map +1 -1
  397. package/dist/esm/Scope.js.map +1 -1
  398. package/dist/esm/ScopedRef.js.map +1 -1
  399. package/dist/esm/SingleProducerAsyncInput.js.map +1 -1
  400. package/dist/esm/Sink.js.map +1 -1
  401. package/dist/esm/Stream.js.map +1 -1
  402. package/dist/esm/SubscriptionRef.js.map +1 -1
  403. package/dist/esm/Supervisor.js.map +1 -1
  404. package/dist/esm/SynchronizedRef.js.map +1 -1
  405. package/dist/esm/TArray.js.map +1 -1
  406. package/dist/esm/TDeferred.js.map +1 -1
  407. package/dist/esm/TMap.js.map +1 -1
  408. package/dist/esm/TPriorityQueue.js.map +1 -1
  409. package/dist/esm/TPubSub.js.map +1 -1
  410. package/dist/esm/TQueue.js.map +1 -1
  411. package/dist/esm/TRandom.js.map +1 -1
  412. package/dist/esm/TReentrantLock.js.map +1 -1
  413. package/dist/esm/TRef.js.map +1 -1
  414. package/dist/esm/TSemaphore.js.map +1 -1
  415. package/dist/esm/TSet.js.map +1 -1
  416. package/dist/esm/Take.js +6 -6
  417. package/dist/esm/Take.js.map +1 -1
  418. package/dist/esm/TestAnnotation.js +10 -13
  419. package/dist/esm/TestAnnotation.js.map +1 -1
  420. package/dist/esm/TestAnnotations.js +1 -1
  421. package/dist/esm/TestAnnotations.js.map +1 -1
  422. package/dist/esm/TestClock.js +1 -1
  423. package/dist/esm/TestClock.js.map +1 -1
  424. package/dist/esm/TestConfig.js +1 -1
  425. package/dist/esm/TestConfig.js.map +1 -1
  426. package/dist/esm/TestContext.js.map +1 -1
  427. package/dist/esm/TestLive.js +1 -1
  428. package/dist/esm/TestLive.js.map +1 -1
  429. package/dist/esm/TestServices.js.map +1 -1
  430. package/dist/esm/TestSized.js +1 -1
  431. package/dist/esm/TestSized.js.map +1 -1
  432. package/dist/esm/Utils.js +1 -1
  433. package/dist/esm/Utils.js.map +1 -1
  434. package/dist/esm/index.js +12 -2
  435. package/dist/esm/index.js.map +1 -1
  436. package/dist/esm/internal/cache.js.map +1 -1
  437. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  438. package/dist/esm/internal/channel/mergeDecision.js +2 -6
  439. package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
  440. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
  441. package/dist/esm/internal/channel.js +1 -1
  442. package/dist/esm/internal/channel.js.map +1 -1
  443. package/dist/esm/internal/clock.js +1 -1
  444. package/dist/esm/internal/clock.js.map +1 -1
  445. package/dist/esm/internal/configProvider.js +2 -4
  446. package/dist/esm/internal/configProvider.js.map +1 -1
  447. package/dist/esm/internal/console.js.map +1 -1
  448. package/dist/esm/internal/context.js +28 -20
  449. package/dist/esm/internal/context.js.map +1 -1
  450. package/dist/esm/internal/core-effect.js +12 -26
  451. package/dist/esm/internal/core-effect.js.map +1 -1
  452. package/dist/esm/internal/core-stream.js.map +1 -1
  453. package/dist/esm/internal/core.js +57 -127
  454. package/dist/esm/internal/core.js.map +1 -1
  455. package/dist/esm/internal/data.js.map +1 -1
  456. package/dist/esm/internal/defaultServices/console.js +1 -1
  457. package/dist/esm/internal/defaultServices/console.js.map +1 -1
  458. package/dist/esm/internal/defaultServices.js.map +1 -1
  459. package/dist/esm/internal/deferred.js.map +1 -1
  460. package/dist/esm/internal/differ/contextPatch.js +9 -9
  461. package/dist/esm/internal/differ/contextPatch.js.map +1 -1
  462. package/dist/esm/internal/effect/circular.js +5 -8
  463. package/dist/esm/internal/effect/circular.js.map +1 -1
  464. package/dist/esm/internal/effectable.js +4 -4
  465. package/dist/esm/internal/effectable.js.map +1 -1
  466. package/dist/esm/internal/fiber.js +2 -6
  467. package/dist/esm/internal/fiber.js.map +1 -1
  468. package/dist/esm/internal/fiberRuntime.js +10 -19
  469. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  470. package/dist/esm/internal/groupBy.js.map +1 -1
  471. package/dist/esm/internal/keyedPool.js.map +1 -1
  472. package/dist/esm/internal/layer/circular.js.map +1 -1
  473. package/dist/esm/internal/layer.js +3 -3
  474. package/dist/esm/internal/layer.js.map +1 -1
  475. package/dist/esm/internal/logSpan.js +3 -5
  476. package/dist/esm/internal/logSpan.js.map +1 -1
  477. package/dist/esm/internal/metric.js.map +1 -1
  478. package/dist/esm/internal/pool.js.map +1 -1
  479. package/dist/esm/internal/pubsub.js +1 -5
  480. package/dist/esm/internal/pubsub.js.map +1 -1
  481. package/dist/esm/internal/query.js.map +1 -1
  482. package/dist/esm/internal/queue.js.map +1 -1
  483. package/dist/esm/internal/random.js +1 -1
  484. package/dist/esm/internal/random.js.map +1 -1
  485. package/dist/esm/internal/rateLimiter.js +12 -0
  486. package/dist/esm/internal/rateLimiter.js.map +1 -0
  487. package/dist/esm/internal/ref.js.map +1 -1
  488. package/dist/esm/internal/reloadable.js +1 -9
  489. package/dist/esm/internal/reloadable.js.map +1 -1
  490. package/dist/esm/internal/runtime.js +0 -1
  491. package/dist/esm/internal/runtime.js.map +1 -1
  492. package/dist/esm/internal/schedule.js.map +1 -1
  493. package/dist/esm/internal/scopedCache.js.map +1 -1
  494. package/dist/esm/internal/scopedRef.js.map +1 -1
  495. package/dist/esm/internal/sink.js +7 -7
  496. package/dist/esm/internal/sink.js.map +1 -1
  497. package/dist/esm/internal/stm/core.js.map +1 -1
  498. package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
  499. package/dist/esm/internal/stm/stm/tExit.js +2 -2
  500. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  501. package/dist/esm/internal/stm/stm/tryCommit.js.map +1 -1
  502. package/dist/esm/internal/stm/stm.js.map +1 -1
  503. package/dist/esm/internal/stm/tArray.js.map +1 -1
  504. package/dist/esm/internal/stm/tDeferred.js +4 -2
  505. package/dist/esm/internal/stm/tDeferred.js.map +1 -1
  506. package/dist/esm/internal/stm/tMap.js.map +1 -1
  507. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  508. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  509. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  510. package/dist/esm/internal/stm/tRandom.js +1 -1
  511. package/dist/esm/internal/stm/tRandom.js.map +1 -1
  512. package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
  513. package/dist/esm/internal/stm/tRef.js.map +1 -1
  514. package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
  515. package/dist/esm/internal/stm/tSet.js.map +1 -1
  516. package/dist/esm/internal/stream/debounceState.js.map +1 -1
  517. package/dist/esm/internal/stream/handoff.js.map +1 -1
  518. package/dist/esm/internal/stream/handoffSignal.js.map +1 -1
  519. package/dist/esm/internal/stream/pull.js.map +1 -1
  520. package/dist/esm/internal/stream.js +0 -2
  521. package/dist/esm/internal/stream.js.map +1 -1
  522. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  523. package/dist/esm/internal/supervisor.js.map +1 -1
  524. package/dist/esm/internal/take.js +2 -2
  525. package/dist/esm/internal/take.js.map +1 -1
  526. package/dist/esm/internal/testing/sleep.js.map +1 -1
  527. package/dist/esm/internal/tracer.js +2 -2
  528. package/dist/esm/internal/tracer.js.map +1 -1
  529. package/dist/esm/internal/version.js +1 -1
  530. package/package.json +9 -1
  531. package/src/Cache.ts +20 -20
  532. package/src/Cause.ts +37 -13
  533. package/src/Channel.ts +802 -794
  534. package/src/Clock.ts +7 -7
  535. package/src/Config.ts +1 -1
  536. package/src/ConfigProvider.ts +6 -6
  537. package/src/Console.ts +44 -48
  538. package/src/Context.ts +52 -30
  539. package/src/Data.ts +38 -61
  540. package/src/Deferred.ts +39 -41
  541. package/src/Effect.ts +1187 -1206
  542. package/src/Effectable.ts +8 -8
  543. package/src/Either.ts +2 -3
  544. package/src/Exit.ts +88 -105
  545. package/src/Fiber.ts +77 -83
  546. package/src/FiberMap.ts +77 -77
  547. package/src/FiberRef.ts +28 -28
  548. package/src/FiberRefs.ts +1 -1
  549. package/src/FiberSet.ts +61 -62
  550. package/src/GroupBy.ts +8 -12
  551. package/src/KeyedPool.ts +22 -22
  552. package/src/Layer.ts +187 -181
  553. package/src/LogLevel.ts +7 -6
  554. package/src/Logger.ts +18 -18
  555. package/src/MergeDecision.ts +7 -7
  556. package/src/MergeState.ts +16 -16
  557. package/src/Metric.ts +39 -39
  558. package/src/MetricPolling.ts +6 -6
  559. package/src/Number.ts +19 -0
  560. package/src/Option.ts +2 -3
  561. package/src/Pool.ts +15 -16
  562. package/src/PubSub.ts +18 -18
  563. package/src/Queue.ts +43 -46
  564. package/src/Random.ts +13 -15
  565. package/src/RateLimiter.ts +37 -0
  566. package/src/ReadonlyRecord.ts +49 -8
  567. package/src/Ref.ts +25 -25
  568. package/src/Reloadable.ts +10 -10
  569. package/src/Request.ts +31 -31
  570. package/src/RequestBlock.ts +3 -3
  571. package/src/RequestResolver.ts +21 -21
  572. package/src/Resource.ts +13 -13
  573. package/src/Runtime.ts +16 -19
  574. package/src/RuntimeFlags.ts +10 -10
  575. package/src/STM.ts +361 -362
  576. package/src/Schedule.ts +19 -19
  577. package/src/Scheduler.ts +2 -2
  578. package/src/Scope.ts +14 -15
  579. package/src/ScopedCache.ts +14 -14
  580. package/src/ScopedRef.ts +7 -7
  581. package/src/SingleProducerAsyncInput.ts +8 -9
  582. package/src/Sink.ts +357 -381
  583. package/src/Stream.ts +935 -1033
  584. package/src/StreamEmit.ts +5 -5
  585. package/src/Streamable.ts +2 -2
  586. package/src/SubscriptionRef.ts +51 -51
  587. package/src/Supervisor.ts +26 -26
  588. package/src/SynchronizedRef.ts +44 -44
  589. package/src/TArray.ts +74 -74
  590. package/src/TDeferred.ts +14 -14
  591. package/src/TMap.ts +72 -72
  592. package/src/TPriorityQueue.ts +23 -24
  593. package/src/TPubSub.ts +15 -15
  594. package/src/TQueue.ts +40 -40
  595. package/src/TRandom.ts +13 -13
  596. package/src/TReentrantLock.ts +21 -21
  597. package/src/TRef.ts +25 -25
  598. package/src/TSemaphore.ts +15 -15
  599. package/src/TSet.ts +49 -49
  600. package/src/Take.ts +51 -51
  601. package/src/TestAnnotation.ts +6 -17
  602. package/src/TestAnnotations.ts +7 -9
  603. package/src/TestClock.ts +39 -45
  604. package/src/TestConfig.ts +1 -3
  605. package/src/TestContext.ts +3 -3
  606. package/src/TestLive.ts +3 -5
  607. package/src/TestServices.ts +45 -47
  608. package/src/TestSized.ts +5 -5
  609. package/src/Tracer.ts +1 -1
  610. package/src/Utils.ts +8 -10
  611. package/src/index.ts +13 -2
  612. package/src/internal/blockedRequests.ts +2 -2
  613. package/src/internal/cache.ts +38 -38
  614. package/src/internal/channel/channelExecutor.ts +65 -73
  615. package/src/internal/channel/channelState.ts +11 -11
  616. package/src/internal/channel/continuation.ts +10 -10
  617. package/src/internal/channel/mergeDecision.ts +14 -16
  618. package/src/internal/channel/mergeState.ts +12 -12
  619. package/src/internal/channel/singleProducerAsyncInput.ts +15 -17
  620. package/src/internal/channel/subexecutor.ts +7 -7
  621. package/src/internal/channel.ts +901 -980
  622. package/src/internal/clock.ts +6 -6
  623. package/src/internal/concurrency.ts +9 -9
  624. package/src/internal/configProvider.ts +29 -36
  625. package/src/internal/console.ts +12 -12
  626. package/src/internal/context.ts +32 -23
  627. package/src/internal/core-effect.ts +655 -616
  628. package/src/internal/core-stream.ts +317 -325
  629. package/src/internal/core.ts +856 -790
  630. package/src/internal/data.ts +2 -3
  631. package/src/internal/dataSource.ts +14 -14
  632. package/src/internal/defaultServices/console.ts +3 -1
  633. package/src/internal/defaultServices.ts +21 -21
  634. package/src/internal/deferred.ts +9 -9
  635. package/src/internal/differ/contextPatch.ts +17 -17
  636. package/src/internal/effect/circular.ts +154 -159
  637. package/src/internal/effectable.ts +7 -7
  638. package/src/internal/fiber.ts +55 -59
  639. package/src/internal/fiberRefs.ts +1 -1
  640. package/src/internal/fiberRuntime.ts +426 -463
  641. package/src/internal/groupBy.ts +59 -62
  642. package/src/internal/keyedPool.ts +37 -37
  643. package/src/internal/layer/circular.ts +37 -37
  644. package/src/internal/layer.ts +235 -240
  645. package/src/internal/logSpan.ts +3 -5
  646. package/src/internal/metric/polling.ts +5 -5
  647. package/src/internal/metric.ts +54 -55
  648. package/src/internal/pool.ts +72 -72
  649. package/src/internal/pubsub.ts +75 -84
  650. package/src/internal/query.ts +25 -27
  651. package/src/internal/queue.ts +65 -70
  652. package/src/internal/random.ts +9 -9
  653. package/src/internal/rateLimiter.ts +30 -0
  654. package/src/internal/ref.ts +24 -24
  655. package/src/internal/reloadable.ts +11 -31
  656. package/src/internal/request.ts +14 -14
  657. package/src/internal/resource.ts +8 -8
  658. package/src/internal/runtime.ts +21 -22
  659. package/src/internal/schedule.ts +131 -134
  660. package/src/internal/scopedCache.ts +35 -32
  661. package/src/internal/scopedRef.ts +14 -14
  662. package/src/internal/sink.ts +507 -565
  663. package/src/internal/stm/core.ts +101 -102
  664. package/src/internal/stm/stm/stmState.ts +10 -10
  665. package/src/internal/stm/stm/tExit.ts +18 -18
  666. package/src/internal/stm/stm/tryCommit.ts +5 -5
  667. package/src/internal/stm/stm.ts +363 -374
  668. package/src/internal/stm/tArray.ts +92 -92
  669. package/src/internal/stm/tDeferred.ts +16 -14
  670. package/src/internal/stm/tMap.ts +83 -84
  671. package/src/internal/stm/tPriorityQueue.ts +24 -25
  672. package/src/internal/stm/tPubSub.ts +37 -38
  673. package/src/internal/stm/tQueue.ts +44 -48
  674. package/src/internal/stm/tRandom.ts +18 -18
  675. package/src/internal/stm/tReentrantLock.ts +28 -28
  676. package/src/internal/stm/tRef.ts +25 -25
  677. package/src/internal/stm/tSemaphore.ts +16 -16
  678. package/src/internal/stm/tSet.ts +51 -52
  679. package/src/internal/stream/debounceState.ts +7 -7
  680. package/src/internal/stream/emit.ts +4 -4
  681. package/src/internal/stream/handoff.ts +19 -19
  682. package/src/internal/stream/handoffSignal.ts +4 -4
  683. package/src/internal/stream/pull.ts +10 -11
  684. package/src/internal/stream.ts +1770 -1788
  685. package/src/internal/subscriptionRef.ts +17 -17
  686. package/src/internal/supervisor.ts +49 -56
  687. package/src/internal/synchronizedRef.ts +27 -27
  688. package/src/internal/take.ts +61 -61
  689. package/src/internal/testing/sleep.ts +2 -2
  690. package/src/internal/testing/suspendedWarningData.ts +2 -2
  691. package/src/internal/testing/warningData.ts +2 -2
  692. package/src/internal/tracer.ts +2 -6
  693. package/src/internal/version.ts +1 -1
package/dist/dts/STM.d.ts CHANGED
@@ -24,7 +24,7 @@ export declare const STMTypeId: unique symbol;
24
24
  */
25
25
  export type STMTypeId = typeof STMTypeId;
26
26
  /**
27
- * `STM<R, E, A>` represents an effect that can be performed transactionally,
27
+ * `STM<A, E, R>` represents an effect that can be performed transactionally,
28
28
  * resulting in a failure `E` or a value `A` that may require an environment
29
29
  * `R` to execute.
30
30
  *
@@ -60,7 +60,7 @@ export type STMTypeId = typeof STMTypeId;
60
60
  * @since 2.0.0
61
61
  * @category models
62
62
  */
63
- export interface STM<out R, out E, out A> extends Effect.Effect<R, E, A>, STM.Variance<R, E, A>, Pipeable {
63
+ export interface STM<out A, out E = never, out R = never> extends Effect.Effect<A, E, R>, STM.Variance<A, E, R>, Pipeable {
64
64
  [Unify.typeSymbol]?: unknown;
65
65
  [Unify.unifySymbol]?: STMUnify<this>;
66
66
  [Unify.ignoreSymbol]?: STMUnifyIgnore;
@@ -72,7 +72,7 @@ export interface STM<out R, out E, out A> extends Effect.Effect<R, E, A>, STM.Va
72
72
  export interface STMUnify<A extends {
73
73
  [Unify.typeSymbol]?: any;
74
74
  }> extends Effect.EffectUnify<A> {
75
- STM?: () => A[Unify.typeSymbol] extends STM<infer R0, infer E0, infer A0> | infer _ ? STM<R0, E0, A0> : never;
75
+ STM?: () => A[Unify.typeSymbol] extends STM<infer A0, infer E0, infer R0> | infer _ ? STM<R0, E0, A0> : never;
76
76
  }
77
77
  /**
78
78
  * @category models
@@ -86,14 +86,14 @@ export interface STMUnifyIgnore extends Effect.EffectUnifyIgnore {
86
86
  * @since 2.0.0
87
87
  */
88
88
  export interface STMTypeLambda extends TypeLambda {
89
- readonly type: STM<this["Out2"], this["Out1"], this["Target"]>;
89
+ readonly type: STM<this["Target"], this["Out1"], this["Out2"]>;
90
90
  }
91
91
  /**
92
92
  * @since 2.0.0
93
93
  * @category models
94
94
  */
95
95
  declare module "./Context.js" {
96
- interface Tag<Identifier, Service> extends STM<Identifier, never, Service> {
96
+ interface Tag<Identifier, Service> extends STM<Service, never, Identifier> {
97
97
  }
98
98
  }
99
99
  /**
@@ -101,10 +101,10 @@ declare module "./Context.js" {
101
101
  * @category models
102
102
  */
103
103
  declare module "./Either.js" {
104
- interface Left<E, A> extends STM<never, E, A> {
104
+ interface Left<E, A> extends STM<A, E> {
105
105
  readonly _tag: "Left";
106
106
  }
107
- interface Right<E, A> extends STM<never, E, A> {
107
+ interface Right<E, A> extends STM<A, E> {
108
108
  readonly _tag: "Right";
109
109
  }
110
110
  }
@@ -113,10 +113,10 @@ declare module "./Either.js" {
113
113
  * @category models
114
114
  */
115
115
  declare module "./Option.js" {
116
- interface None<A> extends STM<never, Cause.NoSuchElementException, A> {
116
+ interface None<A> extends STM<A, Cause.NoSuchElementException> {
117
117
  readonly _tag: "None";
118
118
  }
119
- interface Some<A> extends STM<never, Cause.NoSuchElementException, A> {
119
+ interface Some<A> extends STM<A, Cause.NoSuchElementException> {
120
120
  readonly _tag: "Some";
121
121
  }
122
122
  }
@@ -128,11 +128,11 @@ export declare namespace STM {
128
128
  * @since 2.0.0
129
129
  * @category models
130
130
  */
131
- interface Variance<out R, out E, out A> {
131
+ interface Variance<out A, out E, out R> {
132
132
  readonly [STMTypeId]: {
133
- readonly _R: Covariant<R>;
134
- readonly _E: Covariant<E>;
135
133
  readonly _A: Covariant<A>;
134
+ readonly _E: Covariant<E>;
135
+ readonly _R: Covariant<R>;
136
136
  };
137
137
  }
138
138
  }
@@ -140,12 +140,12 @@ export declare namespace STM {
140
140
  * @category models
141
141
  * @since 2.0.0
142
142
  */
143
- export interface STMGen<out R, out E, out A> {
144
- readonly _R: () => R;
145
- readonly _E: () => E;
143
+ export interface STMGen<out A, out E, out R> {
146
144
  readonly _A: () => A;
147
- readonly value: STM<R, E, A>;
148
- [Symbol.iterator](): Generator<STMGen<R, E, A>, A>;
145
+ readonly _E: () => E;
146
+ readonly _R: () => R;
147
+ readonly value: STM<A, E, R>;
148
+ [Symbol.iterator](): Generator<STMGen<A, E, R>, A>;
149
149
  }
150
150
  /**
151
151
  * Returns `true` if the provided value is an `STM`, `false` otherwise.
@@ -164,8 +164,8 @@ export declare const isSTM: (u: unknown) => u is STM<unknown, unknown, unknown>;
164
164
  * @category constructors
165
165
  */
166
166
  export declare const acquireUseRelease: {
167
- <A, R2, E2, A2, R3, E3, A3>(use: (resource: A) => STM<R2, E2, A2>, release: (resource: A) => STM<R3, E3, A3>): <R, E>(acquire: STM<R, E, A>) => Effect.Effect<R2 | R3 | R, E2 | E3 | E, A2>;
168
- <R, E, A, R2, E2, A2, R3, E3, A3>(acquire: STM<R, E, A>, use: (resource: A) => STM<R2, E2, A2>, release: (resource: A) => STM<R3, E3, A3>): Effect.Effect<R | R2 | R3, E | E2 | E3, A2>;
167
+ <A, R2, E2, A2, R3, E3, A3>(use: (resource: A) => STM<A2, E2, R2>, release: (resource: A) => STM<A3, E3, R3>): <R, E>(acquire: STM<A, E, R>) => Effect.Effect<A2, E2 | E3 | E, R2 | R3 | R>;
168
+ <R, E, A, R2, E2, A2, R3, E3, A3>(acquire: STM<A, E, R>, use: (resource: A) => STM<A2, E2, R2>, release: (resource: A) => STM<A3, E3, R3>): Effect.Effect<A2, E | E2 | E3, R | R2 | R3>;
169
169
  };
170
170
  /**
171
171
  * @since 2.0.0
@@ -173,31 +173,31 @@ export declare const acquireUseRelease: {
173
173
  */
174
174
  export declare namespace All {
175
175
  type STMAny = STM<any, any, any>;
176
- type ReturnTuple<T extends ReadonlyArray<STM<any, any, any>>, Discard extends boolean> = STM<T[number] extends never ? never : [T[number]] extends [{
177
- [STMTypeId]: {
178
- _R: (_: never) => infer R;
179
- };
180
- }] ? R : never, T[number] extends never ? never : [T[number]] extends [{
176
+ type ReturnTuple<T extends ReadonlyArray<STM<any, any, any>>, Discard extends boolean> = STM<Discard extends true ? void : T[number] extends never ? [] : {
177
+ -readonly [K in keyof T]: [T[K]] extends [STM<infer A, infer _E, infer _R>] ? A : never;
178
+ }, T[number] extends never ? never : [T[number]] extends [{
181
179
  [STMTypeId]: {
182
180
  _E: (_: never) => infer E;
183
181
  };
184
- }] ? E : never, Discard extends true ? void : T[number] extends never ? [] : {
185
- -readonly [K in keyof T]: [T[K]] extends [STM<infer _R, infer _E, infer A>] ? A : never;
186
- }> extends infer X ? X : never;
187
- type ReturnIterable<T extends Iterable<STMAny>, Discard extends boolean> = [T] extends [
188
- Iterable<STM.Variance<infer R, infer E, infer A>>
189
- ] ? STM<R, E, Discard extends true ? void : Array<A>> : never;
190
- type ReturnObject<T extends Record<string, STMAny>, Discard extends boolean> = STM<keyof T extends never ? never : [T[keyof T]] extends [{
182
+ }] ? E : never, T[number] extends never ? never : [T[number]] extends [{
191
183
  [STMTypeId]: {
192
184
  _R: (_: never) => infer R;
193
185
  };
194
- }] ? R : never, keyof T extends never ? never : [T[keyof T]] extends [{
186
+ }] ? R : never> extends infer X ? X : never;
187
+ type ReturnIterable<T extends Iterable<STMAny>, Discard extends boolean> = [T] extends [
188
+ Iterable<STM.Variance<infer A, infer E, infer R>>
189
+ ] ? STM<Discard extends true ? void : Array<A>, E, R> : never;
190
+ type ReturnObject<T extends Record<string, STMAny>, Discard extends boolean> = STM<Discard extends true ? void : {
191
+ -readonly [K in keyof T]: [T[K]] extends [STM.Variance<infer A, infer _E, infer _R>] ? A : never;
192
+ }, keyof T extends never ? never : [T[keyof T]] extends [{
195
193
  [STMTypeId]: {
196
194
  _E: (_: never) => infer E;
197
195
  };
198
- }] ? E : never, Discard extends true ? void : {
199
- -readonly [K in keyof T]: [T[K]] extends [STM.Variance<infer _R, infer _E, infer A>] ? A : never;
200
- }>;
196
+ }] ? E : never, keyof T extends never ? never : [T[keyof T]] extends [{
197
+ [STMTypeId]: {
198
+ _R: (_: never) => infer R;
199
+ };
200
+ }] ? R : never>;
201
201
  /**
202
202
  * @since 2.0.0
203
203
  * @category utils
@@ -235,8 +235,8 @@ export declare const all: All.Signature;
235
235
  * @category mapping
236
236
  */
237
237
  export declare const as: {
238
- <A2>(value: A2): <R, E, A>(self: STM<R, E, A>) => STM<R, E, A2>;
239
- <R, E, A, A2>(self: STM<R, E, A>, value: A2): STM<R, E, A2>;
238
+ <A2>(value: A2): <A, E, R>(self: STM<A, E, R>) => STM<A2, E, R>;
239
+ <R, E, A, A2>(self: STM<A, E, R>, value: A2): STM<A2, E, R>;
240
240
  };
241
241
  /**
242
242
  * Maps the success value of this effect to an optional value.
@@ -244,14 +244,14 @@ export declare const as: {
244
244
  * @since 2.0.0
245
245
  * @category mapping
246
246
  */
247
- export declare const asSome: <R, E, A>(self: STM<R, E, A>) => STM<R, E, Option.Option<A>>;
247
+ export declare const asSome: <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E, R>;
248
248
  /**
249
249
  * Maps the error value of this effect to an optional value.
250
250
  *
251
251
  * @since 2.0.0
252
252
  * @category mapping
253
253
  */
254
- export declare const asSomeError: <R, E, A>(self: STM<R, E, A>) => STM<R, Option.Option<E>, A>;
254
+ export declare const asSomeError: <A, E, R>(self: STM<A, E, R>) => STM<A, Option.Option<E>, R>;
255
255
  /**
256
256
  * This function maps the success value of an `STM` to `void`. If the original
257
257
  * `STM` succeeds, the returned `STM` will also succeed. If the original `STM`
@@ -260,14 +260,14 @@ export declare const asSomeError: <R, E, A>(self: STM<R, E, A>) => STM<R, Option
260
260
  * @since 2.0.0
261
261
  * @category mapping
262
262
  */
263
- export declare const asUnit: <R, E, A>(self: STM<R, E, A>) => STM<R, E, void>;
263
+ export declare const asUnit: <A, E, R>(self: STM<A, E, R>) => STM<void, E, R>;
264
264
  /**
265
265
  * Creates an `STM` value from a partial (but pure) function.
266
266
  *
267
267
  * @since 2.0.0
268
268
  * @category constructors
269
269
  */
270
- export declare const attempt: <A>(evaluate: LazyArg<A>) => STM<never, unknown, A>;
270
+ export declare const attempt: <A>(evaluate: LazyArg<A>) => STM<A, unknown>;
271
271
  /**
272
272
  * Recovers from all errors.
273
273
  *
@@ -275,8 +275,8 @@ export declare const attempt: <A>(evaluate: LazyArg<A>) => STM<never, unknown, A
275
275
  * @category error handling
276
276
  */
277
277
  export declare const catchAll: {
278
- <E, R1, E1, B>(f: (e: E) => STM<R1, E1, B>): <R, A>(self: STM<R, E, A>) => STM<R1 | R, E1, B | A>;
279
- <R, A, E, R1, E1, B>(self: STM<R, E, A>, f: (e: E) => STM<R1, E1, B>): STM<R | R1, E1, A | B>;
278
+ <E, R1, E1, B>(f: (e: E) => STM<B, E1, R1>): <R, A>(self: STM<A, E, R>) => STM<B | A, E1, R1 | R>;
279
+ <R, A, E, R1, E1, B>(self: STM<A, E, R>, f: (e: E) => STM<B, E1, R1>): STM<A | B, E1, R | R1>;
280
280
  };
281
281
  /**
282
282
  * Recovers from some or all of the error cases.
@@ -285,8 +285,8 @@ export declare const catchAll: {
285
285
  * @category error handling
286
286
  */
287
287
  export declare const catchSome: {
288
- <E, R2, E2, A2>(pf: (error: E) => Option.Option<STM<R2, E2, A2>>): <R, A>(self: STM<R, E, A>) => STM<R2 | R, E | E2, A2 | A>;
289
- <R, A, E, R2, E2, A2>(self: STM<R, E, A>, pf: (error: E) => Option.Option<STM<R2, E2, A2>>): STM<R | R2, E | E2, A | A2>;
288
+ <E, R2, E2, A2>(pf: (error: E) => Option.Option<STM<A2, E2, R2>>): <R, A>(self: STM<A, E, R>) => STM<A2 | A, E | E2, R2 | R>;
289
+ <R, A, E, R2, E2, A2>(self: STM<A, E, R>, pf: (error: E) => Option.Option<STM<A2, E2, R2>>): STM<A | A2, E | E2, R | R2>;
290
290
  };
291
291
  /**
292
292
  * Recovers from the specified tagged error.
@@ -299,16 +299,16 @@ export declare const catchTag: {
299
299
  _tag: string;
300
300
  }, R1, E1, A1>(k: K, f: (e: Extract<E, {
301
301
  _tag: K;
302
- }>) => STM<R1, E1, A1>): <R, A>(self: STM<R, E, A>) => STM<R1 | R, E1 | Exclude<E, {
302
+ }>) => STM<A1, E1, R1>): <R, A>(self: STM<A, E, R>) => STM<A1 | A, E1 | Exclude<E, {
303
303
  _tag: K;
304
- }>, A1 | A>;
304
+ }>, R1 | R>;
305
305
  <R, E extends {
306
306
  _tag: string;
307
- }, A, K extends E["_tag"] & string, R1, E1, A1>(self: STM<R, E, A>, k: K, f: (e: Extract<E, {
307
+ }, A, K extends E["_tag"] & string, R1, E1, A1>(self: STM<A, E, R>, k: K, f: (e: Extract<E, {
308
308
  _tag: K;
309
- }>) => STM<R1, E1, A1>): STM<R | R1, E1 | Exclude<E, {
309
+ }>) => STM<A1, E1, R1>): STM<A | A1, E1 | Exclude<E, {
310
310
  _tag: K;
311
- }>, A | A1>;
311
+ }>, R | R1>;
312
312
  };
313
313
  /**
314
314
  * Recovers from multiple tagged errors.
@@ -323,14 +323,14 @@ export declare const catchTags: {
323
323
  [K in E["_tag"]]+?: ((error: Extract<E, {
324
324
  _tag: K;
325
325
  }>) => STM<any, any, any>);
326
- }>(cases: Cases): <R, A>(self: STM<R, E, A>) => STM<R | {
327
- [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<infer R, any, any> ? R : never;
326
+ }>(cases: Cases): <R, A>(self: STM<A, E, R>) => STM<A | {
327
+ [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<infer A, any, any> ? A : never;
328
328
  }[keyof Cases], Exclude<E, {
329
329
  _tag: keyof Cases;
330
330
  }> | {
331
331
  [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, infer E, any> ? E : never;
332
- }[keyof Cases], A | {
333
- [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, any, infer A> ? A : never;
332
+ }[keyof Cases], R | {
333
+ [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, any, infer R> ? R : never;
334
334
  }[keyof Cases]>;
335
335
  <R, E extends {
336
336
  _tag: string;
@@ -338,14 +338,14 @@ export declare const catchTags: {
338
338
  [K in E["_tag"]]+?: ((error: Extract<E, {
339
339
  _tag: K;
340
340
  }>) => STM<any, any, any>);
341
- }>(self: STM<R, E, A>, cases: Cases): STM<R | {
342
- [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<infer R, any, any> ? R : never;
341
+ }>(self: STM<A, E, R>, cases: Cases): STM<A | {
342
+ [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<infer A, any, any> ? A : never;
343
343
  }[keyof Cases], Exclude<E, {
344
344
  _tag: keyof Cases;
345
345
  }> | {
346
346
  [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, infer E, any> ? E : never;
347
- }[keyof Cases], A | {
348
- [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, any, infer A> ? A : never;
347
+ }[keyof Cases], R | {
348
+ [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, any, infer R> ? R : never;
349
349
  }[keyof Cases]>;
350
350
  };
351
351
  /**
@@ -354,7 +354,7 @@ export declare const catchTags: {
354
354
  * @since 2.0.0
355
355
  * @category constructors
356
356
  */
357
- export declare const check: (predicate: LazyArg<boolean>) => STM<never, never, void>;
357
+ export declare const check: (predicate: LazyArg<boolean>) => STM<void>;
358
358
  /**
359
359
  * Simultaneously filters and maps the value produced by this effect.
360
360
  *
@@ -362,8 +362,8 @@ export declare const check: (predicate: LazyArg<boolean>) => STM<never, never, v
362
362
  * @category mutations
363
363
  */
364
364
  export declare const collect: {
365
- <A, A2>(pf: (a: A) => Option.Option<A2>): <R, E>(self: STM<R, E, A>) => STM<R, E, A2>;
366
- <R, E, A, A2>(self: STM<R, E, A>, pf: (a: A) => Option.Option<A2>): STM<R, E, A2>;
365
+ <A, A2>(pf: (a: A) => Option.Option<A2>): <R, E>(self: STM<A, E, R>) => STM<A2, E, R>;
366
+ <R, E, A, A2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<A2>): STM<A2, E, R>;
367
367
  };
368
368
  /**
369
369
  * Simultaneously filters and maps the value produced by this effect.
@@ -372,8 +372,8 @@ export declare const collect: {
372
372
  * @category mutations
373
373
  */
374
374
  export declare const collectSTM: {
375
- <A, R2, E2, A2>(pf: (a: A) => Option.Option<STM<R2, E2, A2>>): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A2>;
376
- <R, E, A, R2, E2, A2>(self: STM<R, E, A>, pf: (a: A) => Option.Option<STM<R2, E2, A2>>): STM<R | R2, E | E2, A2>;
375
+ <A, R2, E2, A2>(pf: (a: A) => Option.Option<STM<A2, E2, R2>>): <R, E>(self: STM<A, E, R>) => STM<A2, E2 | E, R2 | R>;
376
+ <R, E, A, R2, E2, A2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<STM<A2, E2, R2>>): STM<A2, E | E2, R | R2>;
377
377
  };
378
378
  /**
379
379
  * Commits this transaction atomically.
@@ -381,7 +381,7 @@ export declare const collectSTM: {
381
381
  * @since 2.0.0
382
382
  * @category destructors
383
383
  */
384
- export declare const commit: <R, E, A>(self: STM<R, E, A>) => Effect.Effect<R, E, A>;
384
+ export declare const commit: <A, E, R>(self: STM<A, E, R>) => Effect.Effect<A, E, R>;
385
385
  /**
386
386
  * Commits this transaction atomically, regardless of whether the transaction
387
387
  * is a success or a failure.
@@ -389,7 +389,7 @@ export declare const commit: <R, E, A>(self: STM<R, E, A>) => Effect.Effect<R, E
389
389
  * @since 2.0.0
390
390
  * @category destructors
391
391
  */
392
- export declare const commitEither: <R, E, A>(self: STM<R, E, A>) => Effect.Effect<R, E, A>;
392
+ export declare const commitEither: <A, E, R>(self: STM<A, E, R>) => Effect.Effect<A, E, R>;
393
393
  /**
394
394
  * Similar to Either.cond, evaluate the predicate, return the given A as
395
395
  * success if predicate returns true, and the given E as error otherwise
@@ -397,28 +397,28 @@ export declare const commitEither: <R, E, A>(self: STM<R, E, A>) => Effect.Effec
397
397
  * @since 2.0.0
398
398
  * @category constructors
399
399
  */
400
- export declare const cond: <E, A>(predicate: LazyArg<boolean>, error: LazyArg<E>, result: LazyArg<A>) => STM<never, E, A>;
400
+ export declare const cond: <A, E>(predicate: LazyArg<boolean>, error: LazyArg<E>, result: LazyArg<A>) => STM<A, E>;
401
401
  /**
402
402
  * Retrieves the environment inside an stm.
403
403
  *
404
404
  * @since 2.0.0
405
405
  * @category constructors
406
406
  */
407
- export declare const context: <R>() => STM<R, never, Context.Context<R>>;
407
+ export declare const context: <R>() => STM<Context.Context<R>, never, R>;
408
408
  /**
409
409
  * Accesses the environment of the transaction to perform a transaction.
410
410
  *
411
411
  * @since 2.0.0
412
412
  * @category constructors
413
413
  */
414
- export declare const contextWith: <R0, R>(f: (environment: Context.Context<R0>) => R) => STM<R0, never, R>;
414
+ export declare const contextWith: <R0, R>(f: (environment: Context.Context<R0>) => R) => STM<R, never, R0>;
415
415
  /**
416
416
  * Accesses the environment of the transaction to perform a transaction.
417
417
  *
418
418
  * @since 2.0.0
419
419
  * @category constructors
420
420
  */
421
- export declare const contextWithSTM: <R0, R, E, A>(f: (environment: Context.Context<R0>) => STM<R, E, A>) => STM<R0 | R, E, A>;
421
+ export declare const contextWithSTM: <R0, R, E, A>(f: (environment: Context.Context<R0>) => STM<A, E, R>) => STM<A, E, R0 | R>;
422
422
  /**
423
423
  * Transforms the environment being provided to this effect with the specified
424
424
  * function.
@@ -427,8 +427,8 @@ export declare const contextWithSTM: <R0, R, E, A>(f: (environment: Context.Cont
427
427
  * @category context
428
428
  */
429
429
  export declare const mapInputContext: {
430
- <R0, R>(f: (context: Context.Context<R0>) => Context.Context<R>): <E, A>(self: STM<R, E, A>) => STM<R0, E, A>;
431
- <E, A, R0, R>(self: STM<R, E, A>, f: (context: Context.Context<R0>) => Context.Context<R>): STM<R0, E, A>;
430
+ <R0, R>(f: (context: Context.Context<R0>) => Context.Context<R>): <A, E>(self: STM<A, E, R>) => STM<A, E, R0>;
431
+ <A, E, R0, R>(self: STM<A, E, R>, f: (context: Context.Context<R0>) => Context.Context<R>): STM<A, E, R0>;
432
432
  };
433
433
  /**
434
434
  * Fails the transactional effect with the specified defect.
@@ -436,7 +436,7 @@ export declare const mapInputContext: {
436
436
  * @since 2.0.0
437
437
  * @category constructors
438
438
  */
439
- export declare const die: (defect: unknown) => STM<never, never, never>;
439
+ export declare const die: (defect: unknown) => STM<never>;
440
440
  /**
441
441
  * Kills the fiber running the effect with a `Cause.RuntimeException` that
442
442
  * contains the specified message.
@@ -444,21 +444,21 @@ export declare const die: (defect: unknown) => STM<never, never, never>;
444
444
  * @since 2.0.0
445
445
  * @category constructors
446
446
  */
447
- export declare const dieMessage: (message: string) => STM<never, never, never>;
447
+ export declare const dieMessage: (message: string) => STM<never>;
448
448
  /**
449
449
  * Fails the transactional effect with the specified lazily evaluated defect.
450
450
  *
451
451
  * @since 2.0.0
452
452
  * @category constructors
453
453
  */
454
- export declare const dieSync: (evaluate: LazyArg<unknown>) => STM<never, never, never>;
454
+ export declare const dieSync: (evaluate: LazyArg<unknown>) => STM<never>;
455
455
  /**
456
456
  * Converts the failure channel into an `Either`.
457
457
  *
458
458
  * @since 2.0.0
459
459
  * @category mutations
460
460
  */
461
- export declare const either: <R, E, A>(self: STM<R, E, A>) => STM<R, never, Either.Either<E, A>>;
461
+ export declare const either: <A, E, R>(self: STM<A, E, R>) => STM<Either.Either<E, A>, never, R>;
462
462
  /**
463
463
  * Executes the specified finalization transaction whether or not this effect
464
464
  * succeeds. Note that as with all STM transactions, if the full transaction
@@ -468,8 +468,8 @@ export declare const either: <R, E, A>(self: STM<R, E, A>) => STM<R, never, Eith
468
468
  * @category finalization
469
469
  */
470
470
  export declare const ensuring: {
471
- <R1, B>(finalizer: STM<R1, never, B>): <R, E, A>(self: STM<R, E, A>) => STM<R1 | R, E, A>;
472
- <R, E, A, R1, B>(self: STM<R, E, A>, finalizer: STM<R1, never, B>): STM<R | R1, E, A>;
471
+ <R1, B>(finalizer: STM<B, never, R1>): <A, E, R>(self: STM<A, E, R>) => STM<A, E, R1 | R>;
472
+ <R, E, A, R1, B>(self: STM<A, E, R>, finalizer: STM<B, never, R1>): STM<A, E, R | R1>;
473
473
  };
474
474
  /**
475
475
  * Returns an effect that ignores errors and runs repeatedly until it
@@ -478,7 +478,7 @@ export declare const ensuring: {
478
478
  * @since 2.0.0
479
479
  * @category mutations
480
480
  */
481
- export declare const eventually: <R, E, A>(self: STM<R, E, A>) => STM<R, E, A>;
481
+ export declare const eventually: <A, E, R>(self: STM<A, E, R>) => STM<A, E, R>;
482
482
  /**
483
483
  * Determines whether all elements of the `Iterable<A>` satisfy the effectual
484
484
  * predicate.
@@ -487,8 +487,8 @@ export declare const eventually: <R, E, A>(self: STM<R, E, A>) => STM<R, E, A>;
487
487
  * @category constructors
488
488
  */
489
489
  export declare const every: {
490
- <A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, boolean>;
491
- <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, boolean>;
490
+ <A, R, E>(predicate: (a: NoInfer<A>) => STM<boolean, E, R>): (iterable: Iterable<A>) => STM<boolean, E, R>;
491
+ <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<boolean, E, R>): STM<boolean, E, R>;
492
492
  };
493
493
  /**
494
494
  * Determines whether any element of the `Iterable[A]` satisfies the effectual
@@ -498,8 +498,8 @@ export declare const every: {
498
498
  * @category constructors
499
499
  */
500
500
  export declare const exists: {
501
- <A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, boolean>;
502
- <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, boolean>;
501
+ <A, R, E>(predicate: (a: NoInfer<A>) => STM<boolean, E, R>): (iterable: Iterable<A>) => STM<boolean, E, R>;
502
+ <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<boolean, E, R>): STM<boolean, E, R>;
503
503
  };
504
504
  /**
505
505
  * Fails the transactional effect with the specified error.
@@ -507,21 +507,21 @@ export declare const exists: {
507
507
  * @since 2.0.0
508
508
  * @category constructors
509
509
  */
510
- export declare const fail: <E>(error: E) => STM<never, E, never>;
510
+ export declare const fail: <E>(error: E) => STM<never, E>;
511
511
  /**
512
512
  * Fails the transactional effect with the specified lazily evaluated error.
513
513
  *
514
514
  * @since 2.0.0
515
515
  * @category constructors
516
516
  */
517
- export declare const failSync: <E>(evaluate: LazyArg<E>) => STM<never, E, never>;
517
+ export declare const failSync: <E>(evaluate: LazyArg<E>) => STM<never, E>;
518
518
  /**
519
519
  * Returns the fiber id of the fiber committing the transaction.
520
520
  *
521
521
  * @since 2.0.0
522
522
  * @category constructors
523
523
  */
524
- export declare const fiberId: STM<never, never, FiberId.FiberId>;
524
+ export declare const fiberId: STM<FiberId.FiberId>;
525
525
  /**
526
526
  * Filters the collection using the specified effectual predicate.
527
527
  *
@@ -529,8 +529,8 @@ export declare const fiberId: STM<never, never, FiberId.FiberId>;
529
529
  * @category constructors
530
530
  */
531
531
  export declare const filter: {
532
- <A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, Array<A>>;
533
- <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, Array<A>>;
532
+ <A, R, E>(predicate: (a: NoInfer<A>) => STM<boolean, E, R>): (iterable: Iterable<A>) => STM<Array<A>, E, R>;
533
+ <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<boolean, E, R>): STM<Array<A>, E, R>;
534
534
  };
535
535
  /**
536
536
  * Filters the collection using the specified effectual predicate, removing
@@ -540,8 +540,8 @@ export declare const filter: {
540
540
  * @category constructors
541
541
  */
542
542
  export declare const filterNot: {
543
- <A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, Array<A>>;
544
- <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, Array<A>>;
543
+ <A, R, E>(predicate: (a: NoInfer<A>) => STM<boolean, E, R>): (iterable: Iterable<A>) => STM<Array<A>, E, R>;
544
+ <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<boolean, E, R>): STM<Array<A>, E, R>;
545
545
  };
546
546
  /**
547
547
  * Dies with specified defect if the predicate fails.
@@ -550,10 +550,10 @@ export declare const filterNot: {
550
550
  * @category filtering
551
551
  */
552
552
  export declare const filterOrDie: {
553
- <A, B extends A>(refinement: Refinement<NoInfer<A>, B>, defect: LazyArg<unknown>): <R, E>(self: STM<R, E, A>) => STM<R, E, B>;
554
- <A>(predicate: Predicate<NoInfer<A>>, defect: LazyArg<unknown>): <R, E>(self: STM<R, E, A>) => STM<R, E, A>;
555
- <R, E, A, B extends A>(self: STM<R, E, A>, refinement: Refinement<A, B>, defect: LazyArg<unknown>): STM<R, E, B>;
556
- <R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>, defect: LazyArg<unknown>): STM<R, E, A>;
553
+ <A, B extends A>(refinement: Refinement<NoInfer<A>, B>, defect: LazyArg<unknown>): <R, E>(self: STM<A, E, R>) => STM<B, E, R>;
554
+ <A>(predicate: Predicate<NoInfer<A>>, defect: LazyArg<unknown>): <R, E>(self: STM<A, E, R>) => STM<A, E, R>;
555
+ <R, E, A, B extends A>(self: STM<A, E, R>, refinement: Refinement<A, B>, defect: LazyArg<unknown>): STM<B, E, R>;
556
+ <A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>, defect: LazyArg<unknown>): STM<A, E, R>;
557
557
  };
558
558
  /**
559
559
  * Dies with a `Cause.RuntimeException` having the specified message if the
@@ -563,10 +563,10 @@ export declare const filterOrDie: {
563
563
  * @category filtering
564
564
  */
565
565
  export declare const filterOrDieMessage: {
566
- <A, B extends A>(refinement: Refinement<NoInfer<A>, B>, message: string): <R, E>(self: STM<R, E, A>) => STM<R, E, B>;
567
- <A>(predicate: Predicate<NoInfer<A>>, message: string): <R, E>(self: STM<R, E, A>) => STM<R, E, A>;
568
- <R, E, A, B extends A>(self: STM<R, E, A>, refinement: Refinement<A, B>, message: string): STM<R, E, B>;
569
- <R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>, message: string): STM<R, E, A>;
566
+ <A, B extends A>(refinement: Refinement<NoInfer<A>, B>, message: string): <R, E>(self: STM<A, E, R>) => STM<B, E, R>;
567
+ <A>(predicate: Predicate<NoInfer<A>>, message: string): <R, E>(self: STM<A, E, R>) => STM<A, E, R>;
568
+ <R, E, A, B extends A>(self: STM<A, E, R>, refinement: Refinement<A, B>, message: string): STM<B, E, R>;
569
+ <A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>, message: string): STM<A, E, R>;
570
570
  };
571
571
  /**
572
572
  * Supplies `orElse` if the predicate fails.
@@ -575,10 +575,10 @@ export declare const filterOrDieMessage: {
575
575
  * @category filtering
576
576
  */
577
577
  export declare const filterOrElse: {
578
- <A, B extends A, R2, E2, C>(refinement: Refinement<NoInfer<A>, B>, orElse: (a: NoInfer<A>) => STM<R2, E2, C>): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, B | C>;
579
- <A, R2, E2, B>(predicate: Predicate<NoInfer<A>>, orElse: (a: NoInfer<A>) => STM<R2, E2, B>): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A | B>;
580
- <R, E, A, B extends A, R2, E2, C>(self: STM<R, E, A>, refinement: Refinement<A, B>, orElse: (a: A) => STM<R2, E2, C>): STM<R | R2, E | E2, B | C>;
581
- <R, E, A, R2, E2, B>(self: STM<R, E, A>, predicate: Predicate<A>, orElse: (a: A) => STM<R2, E2, B>): STM<R | R2, E | E2, A | B>;
578
+ <A, B extends A, R2, E2, C>(refinement: Refinement<NoInfer<A>, B>, orElse: (a: NoInfer<A>) => STM<C, E2, R2>): <R, E>(self: STM<A, E, R>) => STM<B | C, E2 | E, R2 | R>;
579
+ <A, R2, E2, B>(predicate: Predicate<NoInfer<A>>, orElse: (a: NoInfer<A>) => STM<B, E2, R2>): <R, E>(self: STM<A, E, R>) => STM<A | B, E2 | E, R2 | R>;
580
+ <R, E, A, B extends A, R2, E2, C>(self: STM<A, E, R>, refinement: Refinement<A, B>, orElse: (a: A) => STM<C, E2, R2>): STM<B | C, E | E2, R | R2>;
581
+ <R, E, A, R2, E2, B>(self: STM<A, E, R>, predicate: Predicate<A>, orElse: (a: A) => STM<B, E2, R2>): STM<A | B, E | E2, R | R2>;
582
582
  };
583
583
  /**
584
584
  * Fails with the specified error if the predicate fails.
@@ -587,10 +587,10 @@ export declare const filterOrElse: {
587
587
  * @category filtering
588
588
  */
589
589
  export declare const filterOrFail: {
590
- <A, B extends A, E2>(refinement: Refinement<NoInfer<A>, B>, orFailWith: (a: NoInfer<A>) => E2): <R, E>(self: STM<R, E, A>) => STM<R, E2 | E, B>;
591
- <A, E2>(predicate: Predicate<NoInfer<A>>, orFailWith: (a: NoInfer<A>) => E2): <R, E>(self: STM<R, E, A>) => STM<R, E2 | E, A>;
592
- <R, E, A, B extends A, E2>(self: STM<R, E, A>, refinement: Refinement<A, B>, orFailWith: (a: A) => E2): STM<R, E | E2, B>;
593
- <R, E, A, E2>(self: STM<R, E, A>, predicate: Predicate<A>, orFailWith: (a: A) => E2): STM<R, E | E2, A>;
590
+ <A, B extends A, E2>(refinement: Refinement<NoInfer<A>, B>, orFailWith: (a: NoInfer<A>) => E2): <R, E>(self: STM<A, E, R>) => STM<B, E2 | E, R>;
591
+ <A, E2>(predicate: Predicate<NoInfer<A>>, orFailWith: (a: NoInfer<A>) => E2): <R, E>(self: STM<A, E, R>) => STM<A, E2 | E, R>;
592
+ <R, E, A, B extends A, E2>(self: STM<A, E, R>, refinement: Refinement<A, B>, orFailWith: (a: A) => E2): STM<B, E | E2, R>;
593
+ <R, E, A, E2>(self: STM<A, E, R>, predicate: Predicate<A>, orFailWith: (a: A) => E2): STM<A, E | E2, R>;
594
594
  };
595
595
  /**
596
596
  * Feeds the value produced by this effect to the specified function, and then
@@ -600,8 +600,8 @@ export declare const filterOrFail: {
600
600
  * @category sequencing
601
601
  */
602
602
  export declare const flatMap: {
603
- <A, R1, E1, A2>(f: (a: A) => STM<R1, E1, A2>): <R, E>(self: STM<R, E, A>) => STM<R1 | R, E1 | E, A2>;
604
- <R, E, A, R1, E1, A2>(self: STM<R, E, A>, f: (a: A) => STM<R1, E1, A2>): STM<R | R1, E | E1, A2>;
603
+ <A, R1, E1, A2>(f: (a: A) => STM<A2, E1, R1>): <R, E>(self: STM<A, E, R>) => STM<A2, E1 | E, R1 | R>;
604
+ <R, E, A, R1, E1, A2>(self: STM<A, E, R>, f: (a: A) => STM<A2, E1, R1>): STM<A2, E | E1, R | R1>;
605
605
  };
606
606
  /**
607
607
  * Flattens out a nested `STM` effect.
@@ -609,7 +609,7 @@ export declare const flatMap: {
609
609
  * @since 2.0.0
610
610
  * @category sequencing
611
611
  */
612
- export declare const flatten: <R, E, R2, E2, A>(self: STM<R, E, STM<R2, E2, A>>) => STM<R | R2, E | E2, A>;
612
+ export declare const flatten: <R, E, R2, E2, A>(self: STM<STM<A, E2, R2>, E, R>) => STM<A, E | E2, R | R2>;
613
613
  /**
614
614
  * Flips the success and failure channels of this transactional effect. This
615
615
  * allows you to use all methods on the error channel, possibly before
@@ -618,7 +618,7 @@ export declare const flatten: <R, E, R2, E2, A>(self: STM<R, E, STM<R2, E2, A>>)
618
618
  * @since 2.0.0
619
619
  * @category mutations
620
620
  */
621
- export declare const flip: <R, E, A>(self: STM<R, E, A>) => STM<R, A, E>;
621
+ export declare const flip: <A, E, R>(self: STM<A, E, R>) => STM<E, A, R>;
622
622
  /**
623
623
  * Swaps the error/value parameters, applies the function `f` and flips the
624
624
  * parameters back
@@ -627,8 +627,8 @@ export declare const flip: <R, E, A>(self: STM<R, E, A>) => STM<R, A, E>;
627
627
  * @category mutations
628
628
  */
629
629
  export declare const flipWith: {
630
- <R, A, E, R2, A2, E2>(f: (stm: STM<R, A, E>) => STM<R2, A2, E2>): (self: STM<R, E, A>) => STM<R | R2, E | E2, A | A2>;
631
- <R, A, E, R2, A2, E2>(self: STM<R, E, A>, f: (stm: STM<R, A, E>) => STM<R2, A2, E2>): STM<R | R2, E | E2, A | A2>;
630
+ <R, A, E, R2, A2, E2>(f: (stm: STM<E, A, R>) => STM<E2, A2, R2>): (self: STM<A, E, R>) => STM<A | A2, E | E2, R | R2>;
631
+ <R, A, E, R2, A2, E2>(self: STM<A, E, R>, f: (stm: STM<E, A, R>) => STM<E2, A2, R2>): STM<A | A2, E | E2, R | R2>;
632
632
  };
633
633
  /**
634
634
  * Folds over the `STM` effect, handling both failure and success, but not
@@ -641,11 +641,11 @@ export declare const match: {
641
641
  <E, A2, A, A3>(options: {
642
642
  readonly onFailure: (error: E) => A2;
643
643
  readonly onSuccess: (value: A) => A3;
644
- }): <R>(self: STM<R, E, A>) => STM<R, never, A2 | A3>;
645
- <R, E, A2, A, A3>(self: STM<R, E, A>, options: {
644
+ }): <R>(self: STM<A, E, R>) => STM<A2 | A3, never, R>;
645
+ <R, E, A2, A, A3>(self: STM<A, E, R>, options: {
646
646
  readonly onFailure: (error: E) => A2;
647
647
  readonly onSuccess: (value: A) => A3;
648
- }): STM<R, never, A2 | A3>;
648
+ }): STM<A2 | A3, never, R>;
649
649
  };
650
650
  /**
651
651
  * Effectfully folds over the `STM` effect, handling both failure and success.
@@ -655,13 +655,13 @@ export declare const match: {
655
655
  */
656
656
  export declare const matchSTM: {
657
657
  <E, R1, E1, A1, A, R2, E2, A2>(options: {
658
- readonly onFailure: (e: E) => STM<R1, E1, A1>;
659
- readonly onSuccess: (a: A) => STM<R2, E2, A2>;
660
- }): <R>(self: STM<R, E, A>) => STM<R1 | R2 | R, E1 | E2, A1 | A2>;
661
- <R, E, R1, E1, A1, A, R2, E2, A2>(self: STM<R, E, A>, options: {
662
- readonly onFailure: (e: E) => STM<R1, E1, A1>;
663
- readonly onSuccess: (a: A) => STM<R2, E2, A2>;
664
- }): STM<R | R1 | R2, E1 | E2, A1 | A2>;
658
+ readonly onFailure: (e: E) => STM<A1, E1, R1>;
659
+ readonly onSuccess: (a: A) => STM<A2, E2, R2>;
660
+ }): <R>(self: STM<A, E, R>) => STM<A1 | A2, E1 | E2, R1 | R2 | R>;
661
+ <R, E, R1, E1, A1, A, R2, E2, A2>(self: STM<A, E, R>, options: {
662
+ readonly onFailure: (e: E) => STM<A1, E1, R1>;
663
+ readonly onSuccess: (a: A) => STM<A2, E2, R2>;
664
+ }): STM<A1 | A2, E1 | E2, R | R1 | R2>;
665
665
  };
666
666
  /**
667
667
  * Applies the function `f` to each element of the `Iterable<A>` and returns
@@ -671,18 +671,18 @@ export declare const matchSTM: {
671
671
  * @category traversing
672
672
  */
673
673
  export declare const forEach: {
674
- <A, R, E, A2>(f: (a: A) => STM<R, E, A2>, options?: {
674
+ <A, R, E, A2>(f: (a: A) => STM<A2, E, R>, options?: {
675
675
  readonly discard?: false | undefined;
676
- }): (elements: Iterable<A>) => STM<R, E, Array<A2>>;
677
- <A, R, E, A2>(f: (a: A) => STM<R, E, A2>, options: {
676
+ }): (elements: Iterable<A>) => STM<Array<A2>, E, R>;
677
+ <A, R, E, A2>(f: (a: A) => STM<A2, E, R>, options: {
678
678
  readonly discard: true;
679
- }): (elements: Iterable<A>) => STM<R, E, void>;
680
- <A, R, E, A2>(elements: Iterable<A>, f: (a: A) => STM<R, E, A2>, options?: {
679
+ }): (elements: Iterable<A>) => STM<void, E, R>;
680
+ <A, R, E, A2>(elements: Iterable<A>, f: (a: A) => STM<A2, E, R>, options?: {
681
681
  readonly discard?: false | undefined;
682
- }): STM<R, E, Array<A2>>;
683
- <A, R, E, A2>(elements: Iterable<A>, f: (a: A) => STM<R, E, A2>, options: {
682
+ }): STM<Array<A2>, E, R>;
683
+ <A, R, E, A2>(elements: Iterable<A>, f: (a: A) => STM<A2, E, R>, options: {
684
684
  readonly discard: true;
685
- }): STM<R, E, void>;
685
+ }): STM<void, E, R>;
686
686
  };
687
687
  /**
688
688
  * Lifts an `Either` into a `STM`.
@@ -690,50 +690,50 @@ export declare const forEach: {
690
690
  * @since 2.0.0
691
691
  * @category constructors
692
692
  */
693
- export declare const fromEither: <E, A>(either: Either.Either<E, A>) => STM<never, E, A>;
693
+ export declare const fromEither: <E, A>(either: Either.Either<E, A>) => STM<A, E>;
694
694
  /**
695
695
  * Lifts an `Option` into a `STM`.
696
696
  *
697
697
  * @since 2.0.0
698
698
  * @category constructors
699
699
  */
700
- export declare const fromOption: <A>(option: Option.Option<A>) => STM<never, Option.Option<never>, A>;
700
+ export declare const fromOption: <A>(option: Option.Option<A>) => STM<A, Option.Option<never>>;
701
701
  /**
702
702
  * @since 2.0.0
703
703
  * @category models
704
704
  */
705
705
  export interface Adapter {
706
- <R, E, A>(self: STM<R, E, A>): STMGen<R, E, A>;
707
- <A, _R, _E, _A>(a: A, ab: (a: A) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
708
- <A, B, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
709
- <A, B, C, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
710
- <A, B, C, D, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
711
- <A, B, C, D, E, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
712
- <A, B, C, D, E, F, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
713
- <A, B, C, D, E, F, G, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: F) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
714
- <A, B, C, D, E, F, G, H, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (g: H) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
715
- <A, B, C, D, E, F, G, H, I, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
716
- <A, B, C, D, E, F, G, H, I, J, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
717
- <A, B, C, D, E, F, G, H, I, J, K, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
718
- <A, B, C, D, E, F, G, H, I, J, K, L, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
719
- <A, B, C, D, E, F, G, H, I, J, K, L, M, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
720
- <A, B, C, D, E, F, G, H, I, J, K, L, M, N, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
721
- <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
722
- <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
723
- <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
724
- <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
725
- <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
726
- <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => T, tu: (s: T) => STM<_R, _E, _A>): STMGen<_R, _E, _A>;
706
+ <A, E, R>(self: STM<A, E, R>): STMGen<A, E, R>;
707
+ <A, _R, _E, _A>(a: A, ab: (a: A) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
708
+ <A, B, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
709
+ <A, B, C, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
710
+ <A, B, C, D, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
711
+ <A, B, C, D, E, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
712
+ <A, B, C, D, E, F, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
713
+ <A, B, C, D, E, F, G, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: F) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
714
+ <A, B, C, D, E, F, G, H, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (g: H) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
715
+ <A, B, C, D, E, F, G, H, I, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
716
+ <A, B, C, D, E, F, G, H, I, J, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
717
+ <A, B, C, D, E, F, G, H, I, J, K, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
718
+ <A, B, C, D, E, F, G, H, I, J, K, L, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
719
+ <A, B, C, D, E, F, G, H, I, J, K, L, M, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
720
+ <A, B, C, D, E, F, G, H, I, J, K, L, M, N, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
721
+ <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
722
+ <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
723
+ <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
724
+ <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
725
+ <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
726
+ <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => T, tu: (s: T) => STM<_A, _E, _R>): STMGen<_A, _E, _R>;
727
727
  }
728
728
  /**
729
729
  * @since 2.0.0
730
730
  * @category constructors
731
731
  */
732
- export declare const gen: <Eff extends STMGen<any, any, any>, AEff>(f: (resume: Adapter) => Generator<Eff, AEff, any>) => STM<[
732
+ export declare const gen: <Eff extends STMGen<any, any, any>, AEff>(f: (resume: Adapter) => Generator<Eff, AEff, any>) => STM<AEff, [
733
733
  Eff
734
- ] extends [never] ? never : [Eff] extends [STMGen<infer R, any, any>] ? R : never, [
734
+ ] extends [never] ? never : [Eff] extends [STMGen<any, infer E, any>] ? E : never, [
735
735
  Eff
736
- ] extends [never] ? never : [Eff] extends [STMGen<any, infer E, any>] ? E : never, AEff>;
736
+ ] extends [never] ? never : [Eff] extends [STMGen<any, any, infer R>] ? R : never>;
737
737
  /**
738
738
  * Returns a successful effect with the head of the list if the list is
739
739
  * non-empty or fails with the error `None` if the list is empty.
@@ -741,20 +741,20 @@ export declare const gen: <Eff extends STMGen<any, any, any>, AEff>(f: (resume:
741
741
  * @since 2.0.0
742
742
  * @category getters
743
743
  */
744
- export declare const head: <R, E, A>(self: STM<R, E, Iterable<A>>) => STM<R, Option.Option<E>, A>;
744
+ export declare const head: <A, E, R>(self: STM<Iterable<A>, E, R>) => STM<A, Option.Option<E>, R>;
745
745
  declare const if_: {
746
746
  <R1, R2, E1, E2, A, A1>(options: {
747
- readonly onTrue: STM<R1, E1, A>;
748
- readonly onFalse: STM<R2, E2, A1>;
749
- }): <R = never, E = never>(self: boolean | STM<R, E, boolean>) => STM<R1 | R2 | R, E1 | E2 | E, A | A1>;
747
+ readonly onTrue: STM<A, E1, R1>;
748
+ readonly onFalse: STM<A1, E2, R2>;
749
+ }): <R = never, E = never>(self: boolean | STM<boolean, E, R>) => STM<A | A1, E1 | E2 | E, R1 | R2 | R>;
750
750
  <R, E, R1, R2, E1, E2, A, A1>(self: boolean, options: {
751
- readonly onTrue: STM<R1, E1, A>;
752
- readonly onFalse: STM<R2, E2, A1>;
753
- }): STM<R | R1 | R2, E | E1 | E2, A | A1>;
754
- <R, E, R1, R2, E1, E2, A, A1>(self: STM<R, E, boolean>, options: {
755
- readonly onTrue: STM<R1, E1, A>;
756
- readonly onFalse: STM<R2, E2, A1>;
757
- }): STM<R | R1 | R2, E | E1 | E2, A | A1>;
751
+ readonly onTrue: STM<A, E1, R1>;
752
+ readonly onFalse: STM<A1, E2, R2>;
753
+ }): STM<A | A1, E | E1 | E2, R | R1 | R2>;
754
+ <R, E, R1, R2, E1, E2, A, A1>(self: STM<boolean, E, R>, options: {
755
+ readonly onTrue: STM<A, E1, R1>;
756
+ readonly onFalse: STM<A1, E2, R2>;
757
+ }): STM<A | A1, E | E1 | E2, R | R1 | R2>;
758
758
  };
759
759
  export {
760
760
  /**
@@ -770,35 +770,35 @@ if_ as if };
770
770
  * @since 2.0.0
771
771
  * @category mutations
772
772
  */
773
- export declare const ignore: <R, E, A>(self: STM<R, E, A>) => STM<R, never, void>;
773
+ export declare const ignore: <A, E, R>(self: STM<A, E, R>) => STM<void, never, R>;
774
774
  /**
775
775
  * Interrupts the fiber running the effect.
776
776
  *
777
777
  * @since 2.0.0
778
778
  * @category constructors
779
779
  */
780
- export declare const interrupt: STM<never, never, never>;
780
+ export declare const interrupt: STM<never>;
781
781
  /**
782
782
  * Interrupts the fiber running the effect with the specified `FiberId`.
783
783
  *
784
784
  * @since 2.0.0
785
785
  * @category constructors
786
786
  */
787
- export declare const interruptAs: (fiberId: FiberId.FiberId) => STM<never, never, never>;
787
+ export declare const interruptAs: (fiberId: FiberId.FiberId) => STM<never>;
788
788
  /**
789
789
  * Returns whether this transactional effect is a failure.
790
790
  *
791
791
  * @since 2.0.0
792
792
  * @category getters
793
793
  */
794
- export declare const isFailure: <R, E, A>(self: STM<R, E, A>) => STM<R, never, boolean>;
794
+ export declare const isFailure: <A, E, R>(self: STM<A, E, R>) => STM<boolean, never, R>;
795
795
  /**
796
796
  * Returns whether this transactional effect is a success.
797
797
  *
798
798
  * @since 2.0.0
799
799
  * @category getters
800
800
  */
801
- export declare const isSuccess: <R, E, A>(self: STM<R, E, A>) => STM<R, never, boolean>;
801
+ export declare const isSuccess: <A, E, R>(self: STM<A, E, R>) => STM<boolean, never, R>;
802
802
  /**
803
803
  * Iterates with the specified transactional function. The moral equivalent
804
804
  * of:
@@ -818,8 +818,8 @@ export declare const isSuccess: <R, E, A>(self: STM<R, E, A>) => STM<R, never, b
818
818
  */
819
819
  export declare const iterate: <R, E, Z>(initial: Z, options: {
820
820
  readonly while: Predicate<Z>;
821
- readonly body: (z: Z) => STM<R, E, Z>;
822
- }) => STM<R, E, Z>;
821
+ readonly body: (z: Z) => STM<Z, E, R>;
822
+ }) => STM<Z, E, R>;
823
823
  /**
824
824
  * Loops with the specified transactional function, collecting the results
825
825
  * into a list. The moral equivalent of:
@@ -843,15 +843,15 @@ export declare const loop: {
843
843
  <Z, R, E, A>(initial: Z, options: {
844
844
  readonly while: Predicate<Z>;
845
845
  readonly step: (z: Z) => Z;
846
- readonly body: (z: Z) => STM<R, E, A>;
846
+ readonly body: (z: Z) => STM<A, E, R>;
847
847
  readonly discard?: false | undefined;
848
- }): STM<R, E, Array<A>>;
848
+ }): STM<Array<A>, E, R>;
849
849
  <Z, R, E, A>(initial: Z, options: {
850
850
  readonly while: Predicate<Z>;
851
851
  readonly step: (z: Z) => Z;
852
- readonly body: (z: Z) => STM<R, E, A>;
852
+ readonly body: (z: Z) => STM<A, E, R>;
853
853
  readonly discard: true;
854
- }): STM<R, E, void>;
854
+ }): STM<void, E, R>;
855
855
  };
856
856
  /**
857
857
  * Maps the value produced by the effect.
@@ -860,8 +860,8 @@ export declare const loop: {
860
860
  * @category mapping
861
861
  */
862
862
  export declare const map: {
863
- <A, B>(f: (a: A) => B): <R, E>(self: STM<R, E, A>) => STM<R, E, B>;
864
- <R, E, A, B>(self: STM<R, E, A>, f: (a: A) => B): STM<R, E, B>;
863
+ <A, B>(f: (a: A) => B): <R, E>(self: STM<A, E, R>) => STM<B, E, R>;
864
+ <R, E, A, B>(self: STM<A, E, R>, f: (a: A) => B): STM<B, E, R>;
865
865
  };
866
866
  /**
867
867
  * Maps the value produced by the effect with the specified function that may
@@ -872,8 +872,8 @@ export declare const map: {
872
872
  * @category mapping
873
873
  */
874
874
  export declare const mapAttempt: {
875
- <A, B>(f: (a: A) => B): <R, E>(self: STM<R, E, A>) => STM<R, unknown, B>;
876
- <R, E, A, B>(self: STM<R, E, A>, f: (a: A) => B): STM<R, unknown, B>;
875
+ <A, B>(f: (a: A) => B): <R, E>(self: STM<A, E, R>) => STM<B, unknown, R>;
876
+ <R, E, A, B>(self: STM<A, E, R>, f: (a: A) => B): STM<B, unknown, R>;
877
877
  };
878
878
  /**
879
879
  * Returns an `STM` effect whose failure and success channels have been mapped
@@ -886,11 +886,11 @@ export declare const mapBoth: {
886
886
  <E, E2, A, A2>(options: {
887
887
  readonly onFailure: (error: E) => E2;
888
888
  readonly onSuccess: (value: A) => A2;
889
- }): <R>(self: STM<R, E, A>) => STM<R, E2, A2>;
890
- <R, E, E2, A, A2>(self: STM<R, E, A>, options: {
889
+ }): <R>(self: STM<A, E, R>) => STM<A2, E2, R>;
890
+ <R, E, E2, A, A2>(self: STM<A, E, R>, options: {
891
891
  readonly onFailure: (error: E) => E2;
892
892
  readonly onSuccess: (value: A) => A2;
893
- }): STM<R, E2, A2>;
893
+ }): STM<A2, E2, R>;
894
894
  };
895
895
  /**
896
896
  * Maps from one error type to another.
@@ -899,8 +899,8 @@ export declare const mapBoth: {
899
899
  * @category mapping
900
900
  */
901
901
  export declare const mapError: {
902
- <E, E2>(f: (error: E) => E2): <R, A>(self: STM<R, E, A>) => STM<R, E2, A>;
903
- <R, A, E, E2>(self: STM<R, E, A>, f: (error: E) => E2): STM<R, E2, A>;
902
+ <E, E2>(f: (error: E) => E2): <R, A>(self: STM<A, E, R>) => STM<A, E2, R>;
903
+ <R, A, E, E2>(self: STM<A, E, R>, f: (error: E) => E2): STM<A, E2, R>;
904
904
  };
905
905
  /**
906
906
  * Returns a new effect where the error channel has been merged into the
@@ -909,7 +909,7 @@ export declare const mapError: {
909
909
  * @since 2.0.0
910
910
  * @category mutations
911
911
  */
912
- export declare const merge: <R, E, A>(self: STM<R, E, A>) => STM<R, never, E | A>;
912
+ export declare const merge: <A, E, R>(self: STM<A, E, R>) => STM<E | A, never, R>;
913
913
  /**
914
914
  * Merges an `Iterable<STM>` to a single `STM`, working sequentially.
915
915
  *
@@ -917,8 +917,8 @@ export declare const merge: <R, E, A>(self: STM<R, E, A>) => STM<R, never, E | A
917
917
  * @category constructors
918
918
  */
919
919
  export declare const mergeAll: {
920
- <A2, A>(zero: A2, f: (a2: A2, a: A) => A2): <R, E>(iterable: Iterable<STM<R, E, A>>) => STM<R, E, A2>;
921
- <R, E, A2, A>(iterable: Iterable<STM<R, E, A>>, zero: A2, f: (a2: A2, a: A) => A2): STM<R, E, A2>;
920
+ <A2, A>(zero: A2, f: (a2: A2, a: A) => A2): <R, E>(iterable: Iterable<STM<A, E, R>>) => STM<A2, E, R>;
921
+ <R, E, A2, A>(iterable: Iterable<STM<A, E, R>>, zero: A2, f: (a2: A2, a: A) => A2): STM<A2, E, R>;
922
922
  };
923
923
  /**
924
924
  * Returns a new effect where boolean value of this effect is negated.
@@ -926,21 +926,21 @@ export declare const mergeAll: {
926
926
  * @since 2.0.0
927
927
  * @category mutations
928
928
  */
929
- export declare const negate: <R, E>(self: STM<R, E, boolean>) => STM<R, E, boolean>;
929
+ export declare const negate: <R, E>(self: STM<boolean, E, R>) => STM<boolean, E, R>;
930
930
  /**
931
931
  * Requires the option produced by this value to be `None`.
932
932
  *
933
933
  * @since 2.0.0
934
934
  * @category mutations
935
935
  */
936
- export declare const none: <R, E, A>(self: STM<R, E, Option.Option<A>>) => STM<R, Option.Option<E>, void>;
936
+ export declare const none: <A, E, R>(self: STM<Option.Option<A>, E, R>) => STM<void, Option.Option<E>, R>;
937
937
  /**
938
938
  * Converts the failure channel into an `Option`.
939
939
  *
940
940
  * @since 2.0.0
941
941
  * @category mutations
942
942
  */
943
- export declare const option: <R, E, A>(self: STM<R, E, A>) => STM<R, never, Option.Option<A>>;
943
+ export declare const option: <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, never, R>;
944
944
  /**
945
945
  * Translates `STM` effect failure into death of the fiber, making all
946
946
  * failures unchecked and not a part of the type of the effect.
@@ -948,7 +948,7 @@ export declare const option: <R, E, A>(self: STM<R, E, A>) => STM<R, never, Opti
948
948
  * @since 2.0.0
949
949
  * @category error handling
950
950
  */
951
- export declare const orDie: <R, E, A>(self: STM<R, E, A>) => STM<R, never, A>;
951
+ export declare const orDie: <A, E, R>(self: STM<A, E, R>) => STM<A, never, R>;
952
952
  /**
953
953
  * Keeps none of the errors, and terminates the fiber running the `STM` effect
954
954
  * with them, using the specified function to convert the `E` into a defect.
@@ -957,8 +957,8 @@ export declare const orDie: <R, E, A>(self: STM<R, E, A>) => STM<R, never, A>;
957
957
  * @category error handling
958
958
  */
959
959
  export declare const orDieWith: {
960
- <E>(f: (error: E) => unknown): <R, A>(self: STM<R, E, A>) => STM<R, never, A>;
961
- <R, A, E>(self: STM<R, E, A>, f: (error: E) => unknown): STM<R, never, A>;
960
+ <E>(f: (error: E) => unknown): <R, A>(self: STM<A, E, R>) => STM<A, never, R>;
961
+ <R, A, E>(self: STM<A, E, R>, f: (error: E) => unknown): STM<A, never, R>;
962
962
  };
963
963
  /**
964
964
  * Tries this effect first, and if it fails or retries, tries the other
@@ -968,8 +968,8 @@ export declare const orDieWith: {
968
968
  * @category error handling
969
969
  */
970
970
  export declare const orElse: {
971
- <R2, E2, A2>(that: LazyArg<STM<R2, E2, A2>>): <R, E, A>(self: STM<R, E, A>) => STM<R2 | R, E2, A2 | A>;
972
- <R, E, A, R2, E2, A2>(self: STM<R, E, A>, that: LazyArg<STM<R2, E2, A2>>): STM<R | R2, E2, A | A2>;
971
+ <R2, E2, A2>(that: LazyArg<STM<A2, E2, R2>>): <A, E, R>(self: STM<A, E, R>) => STM<A2 | A, E2, R2 | R>;
972
+ <R, E, A, R2, E2, A2>(self: STM<A, E, R>, that: LazyArg<STM<A2, E2, R2>>): STM<A | A2, E2, R | R2>;
973
973
  };
974
974
  /**
975
975
  * Returns a transactional effect that will produce the value of this effect
@@ -980,8 +980,8 @@ export declare const orElse: {
980
980
  * @category error handling
981
981
  */
982
982
  export declare const orElseEither: {
983
- <R2, E2, A2>(that: LazyArg<STM<R2, E2, A2>>): <R, E, A>(self: STM<R, E, A>) => STM<R2 | R, E2, Either.Either<A, A2>>;
984
- <R, E, A, R2, E2, A2>(self: STM<R, E, A>, that: LazyArg<STM<R2, E2, A2>>): STM<R | R2, E2, Either.Either<A, A2>>;
983
+ <R2, E2, A2>(that: LazyArg<STM<A2, E2, R2>>): <A, E, R>(self: STM<A, E, R>) => STM<Either.Either<A, A2>, E2, R2 | R>;
984
+ <R, E, A, R2, E2, A2>(self: STM<A, E, R>, that: LazyArg<STM<A2, E2, R2>>): STM<Either.Either<A, A2>, E2, R | R2>;
985
985
  };
986
986
  /**
987
987
  * Tries this effect first, and if it fails or retries, fails with the
@@ -991,8 +991,8 @@ export declare const orElseEither: {
991
991
  * @category error handling
992
992
  */
993
993
  export declare const orElseFail: {
994
- <E2>(error: LazyArg<E2>): <R, E, A>(self: STM<R, E, A>) => STM<R, E2, A>;
995
- <R, E, A, E2>(self: STM<R, E, A>, error: LazyArg<E2>): STM<R, E2, A>;
994
+ <E2>(error: LazyArg<E2>): <A, E, R>(self: STM<A, E, R>) => STM<A, E2, R>;
995
+ <R, E, A, E2>(self: STM<A, E, R>, error: LazyArg<E2>): STM<A, E2, R>;
996
996
  };
997
997
  /**
998
998
  * Returns an effect that will produce the value of this effect, unless it
@@ -1003,8 +1003,8 @@ export declare const orElseFail: {
1003
1003
  * @category error handling
1004
1004
  */
1005
1005
  export declare const orElseOptional: {
1006
- <R2, E2, A2>(that: LazyArg<STM<R2, Option.Option<E2>, A2>>): <R, E, A>(self: STM<R, Option.Option<E>, A>) => STM<R2 | R, Option.Option<E2 | E>, A2 | A>;
1007
- <R, E, A, R2, E2, A2>(self: STM<R, Option.Option<E>, A>, that: LazyArg<STM<R2, Option.Option<E2>, A2>>): STM<R | R2, Option.Option<E | E2>, A | A2>;
1006
+ <R2, E2, A2>(that: LazyArg<STM<A2, Option.Option<E2>, R2>>): <A, E, R>(self: STM<A, Option.Option<E>, R>) => STM<A2 | A, Option.Option<E2 | E>, R2 | R>;
1007
+ <R, E, A, R2, E2, A2>(self: STM<A, Option.Option<E>, R>, that: LazyArg<STM<A2, Option.Option<E2>, R2>>): STM<A | A2, Option.Option<E | E2>, R | R2>;
1008
1008
  };
1009
1009
  /**
1010
1010
  * Tries this effect first, and if it fails or retries, succeeds with the
@@ -1014,8 +1014,8 @@ export declare const orElseOptional: {
1014
1014
  * @category error handling
1015
1015
  */
1016
1016
  export declare const orElseSucceed: {
1017
- <A2>(value: LazyArg<A2>): <R, E, A>(self: STM<R, E, A>) => STM<R, never, A2 | A>;
1018
- <R, E, A, A2>(self: STM<R, E, A>, value: LazyArg<A2>): STM<R, never, A | A2>;
1017
+ <A2>(value: LazyArg<A2>): <A, E, R>(self: STM<A, E, R>) => STM<A2 | A, never, R>;
1018
+ <R, E, A, A2>(self: STM<A, E, R>, value: LazyArg<A2>): STM<A | A2, never, R>;
1019
1019
  };
1020
1020
  /**
1021
1021
  * Tries this effect first, and if it enters retry, then it tries the other
@@ -1025,8 +1025,8 @@ export declare const orElseSucceed: {
1025
1025
  * @category error handling
1026
1026
  */
1027
1027
  export declare const orTry: {
1028
- <R1, E1, A1>(that: LazyArg<STM<R1, E1, A1>>): <R, E, A>(self: STM<R, E, A>) => STM<R1 | R, E1 | E, A1 | A>;
1029
- <R, E, A, R1, E1, A1>(self: STM<R, E, A>, that: LazyArg<STM<R1, E1, A1>>): STM<R | R1, E | E1, A | A1>;
1028
+ <R1, E1, A1>(that: LazyArg<STM<A1, E1, R1>>): <A, E, R>(self: STM<A, E, R>) => STM<A1 | A, E1 | E, R1 | R>;
1029
+ <R, E, A, R1, E1, A1>(self: STM<A, E, R>, that: LazyArg<STM<A1, E1, R1>>): STM<A | A1, E | E1, R | R1>;
1030
1030
  };
1031
1031
  /**
1032
1032
  * Feeds elements of type `A` to a function `f` that returns an effect.
@@ -1036,8 +1036,8 @@ export declare const orTry: {
1036
1036
  * @category traversing
1037
1037
  */
1038
1038
  export declare const partition: {
1039
- <R, E, A, A2>(f: (a: A) => STM<R, E, A2>): (elements: Iterable<A>) => STM<R, never, [excluded: Array<E>, satisfying: Array<A2>]>;
1040
- <R, E, A, A2>(elements: Iterable<A>, f: (a: A) => STM<R, E, A2>): STM<R, never, [excluded: Array<E>, satisfying: Array<A2>]>;
1039
+ <R, E, A, A2>(f: (a: A) => STM<A2, E, R>): (elements: Iterable<A>) => STM<[excluded: Array<E>, satisfying: Array<A2>], never, R>;
1040
+ <R, E, A, A2>(elements: Iterable<A>, f: (a: A) => STM<A2, E, R>): STM<[excluded: Array<E>, satisfying: Array<A2>], never, R>;
1041
1041
  };
1042
1042
  /**
1043
1043
  * Provides the transaction its required environment, which eliminates its
@@ -1047,8 +1047,8 @@ export declare const partition: {
1047
1047
  * @category context
1048
1048
  */
1049
1049
  export declare const provideContext: {
1050
- <R>(env: Context.Context<R>): <E, A>(self: STM<R, E, A>) => STM<never, E, A>;
1051
- <E, A, R>(self: STM<R, E, A>, env: Context.Context<R>): STM<never, E, A>;
1050
+ <R>(env: Context.Context<R>): <A, E>(self: STM<A, E, R>) => STM<A, E>;
1051
+ <A, E, R>(self: STM<A, E, R>, env: Context.Context<R>): STM<A, E>;
1052
1052
  };
1053
1053
  /**
1054
1054
  * Splits the context into two parts, providing one part using the
@@ -1058,8 +1058,8 @@ export declare const provideContext: {
1058
1058
  * @category context
1059
1059
  */
1060
1060
  export declare const provideSomeContext: {
1061
- <R>(context: Context.Context<R>): <R1, E, A>(self: STM<R1, E, A>) => STM<Exclude<R1, R>, E, A>;
1062
- <R, R1, E, A>(self: STM<R1, E, A>, context: Context.Context<R>): STM<Exclude<R1, R>, E, A>;
1061
+ <R>(context: Context.Context<R>): <R1, E, A>(self: STM<A, E, R1>) => STM<A, E, Exclude<R1, R>>;
1062
+ <R, R1, E, A>(self: STM<A, E, R1>, context: Context.Context<R>): STM<A, E, Exclude<R1, R>>;
1063
1063
  };
1064
1064
  /**
1065
1065
  * Provides the effect with the single service it requires. If the transactional
@@ -1069,8 +1069,8 @@ export declare const provideSomeContext: {
1069
1069
  * @category context
1070
1070
  */
1071
1071
  export declare const provideService: {
1072
- <T extends Context.Tag<any, any>>(tag: T, resource: Context.Tag.Service<T>): <R, E, A>(self: STM<R, E, A>) => STM<Exclude<R, Context.Tag.Identifier<T>>, E, A>;
1073
- <R, E, A, T extends Context.Tag<any, any>>(self: STM<R, E, A>, tag: T, resource: Context.Tag.Service<T>): STM<Exclude<R, Context.Tag.Identifier<T>>, E, A>;
1072
+ <T extends Context.Tag<any, any>>(tag: T, resource: Context.Tag.Service<T>): <A, E, R>(self: STM<A, E, R>) => STM<A, E, Exclude<R, Context.Tag.Identifier<T>>>;
1073
+ <R, E, A, T extends Context.Tag<any, any>>(self: STM<A, E, R>, tag: T, resource: Context.Tag.Service<T>): STM<A, E, Exclude<R, Context.Tag.Identifier<T>>>;
1074
1074
  };
1075
1075
  /**
1076
1076
  * Provides the effect with the single service it requires. If the transactional
@@ -1080,8 +1080,8 @@ export declare const provideService: {
1080
1080
  * @category context
1081
1081
  */
1082
1082
  export declare const provideServiceSTM: {
1083
- <T extends Context.Tag<any, any>, R1, E1>(tag: T, stm: STM<R1, E1, Context.Tag.Service<T>>): <R, E, A>(self: STM<R, E, A>) => STM<R1 | Exclude<R, Context.Tag.Identifier<T>>, E1 | E, A>;
1084
- <R, E, A, T extends Context.Tag<any, any>, R1, E1>(self: STM<R, E, A>, tag: T, stm: STM<R1, E1, Context.Tag.Service<T>>): STM<R1 | Exclude<R, Context.Tag.Identifier<T>>, E | E1, A>;
1083
+ <T extends Context.Tag<any, any>, R1, E1>(tag: T, stm: STM<Context.Tag.Service<T>, E1, R1>): <A, E, R>(self: STM<A, E, R>) => STM<A, E1 | E, R1 | Exclude<R, Context.Tag.Identifier<T>>>;
1084
+ <R, E, A, T extends Context.Tag<any, any>, R1, E1>(self: STM<A, E, R>, tag: T, stm: STM<Context.Tag.Service<T>, E1, R1>): STM<A, E | E1, R1 | Exclude<R, Context.Tag.Identifier<T>>>;
1085
1085
  };
1086
1086
  /**
1087
1087
  * Folds an `Iterable<A>` using an effectual function f, working sequentially
@@ -1091,8 +1091,8 @@ export declare const provideServiceSTM: {
1091
1091
  * @category constructors
1092
1092
  */
1093
1093
  export declare const reduce: {
1094
- <S, A, R, E>(zero: S, f: (s: S, a: A) => STM<R, E, S>): (iterable: Iterable<A>) => STM<R, E, S>;
1095
- <S, A, R, E>(iterable: Iterable<A>, zero: S, f: (s: S, a: A) => STM<R, E, S>): STM<R, E, S>;
1094
+ <S, A, R, E>(zero: S, f: (s: S, a: A) => STM<S, E, R>): (iterable: Iterable<A>) => STM<S, E, R>;
1095
+ <S, A, R, E>(iterable: Iterable<A>, zero: S, f: (s: S, a: A) => STM<S, E, R>): STM<S, E, R>;
1096
1096
  };
1097
1097
  /**
1098
1098
  * Reduces an `Iterable<STM>` to a single `STM`, working sequentially.
@@ -1101,8 +1101,8 @@ export declare const reduce: {
1101
1101
  * @category constructors
1102
1102
  */
1103
1103
  export declare const reduceAll: {
1104
- <R2, E2, A>(initial: STM<R2, E2, A>, f: (x: A, y: A) => A): <R, E>(iterable: Iterable<STM<R, E, A>>) => STM<R2 | R, E2 | E, A>;
1105
- <R, E, R2, E2, A>(iterable: Iterable<STM<R, E, A>>, initial: STM<R2, E2, A>, f: (x: A, y: A) => A): STM<R | R2, E | E2, A>;
1104
+ <R2, E2, A>(initial: STM<A, E2, R2>, f: (x: A, y: A) => A): <R, E>(iterable: Iterable<STM<A, E, R>>) => STM<A, E2 | E, R2 | R>;
1105
+ <R, E, R2, E2, A>(iterable: Iterable<STM<A, E, R>>, initial: STM<A, E2, R2>, f: (x: A, y: A) => A): STM<A, E | E2, R | R2>;
1106
1106
  };
1107
1107
  /**
1108
1108
  * Folds an `Iterable<A>` using an effectual function f, working sequentially
@@ -1112,8 +1112,8 @@ export declare const reduceAll: {
1112
1112
  * @category constructors
1113
1113
  */
1114
1114
  export declare const reduceRight: {
1115
- <S, A, R, E>(zero: S, f: (s: S, a: A) => STM<R, E, S>): (iterable: Iterable<A>) => STM<R, E, S>;
1116
- <S, A, R, E>(iterable: Iterable<A>, zero: S, f: (s: S, a: A) => STM<R, E, S>): STM<R, E, S>;
1115
+ <S, A, R, E>(zero: S, f: (s: S, a: A) => STM<S, E, R>): (iterable: Iterable<A>) => STM<S, E, R>;
1116
+ <S, A, R, E>(iterable: Iterable<A>, zero: S, f: (s: S, a: A) => STM<S, E, R>): STM<S, E, R>;
1117
1117
  };
1118
1118
  /**
1119
1119
  * Keeps some of the errors, and terminates the fiber with the rest.
@@ -1122,8 +1122,8 @@ export declare const reduceRight: {
1122
1122
  * @category mutations
1123
1123
  */
1124
1124
  export declare const refineOrDie: {
1125
- <E, E2>(pf: (error: E) => Option.Option<E2>): <R, A>(self: STM<R, E, A>) => STM<R, E2, A>;
1126
- <R, A, E, E2>(self: STM<R, E, A>, pf: (error: E) => Option.Option<E2>): STM<R, E2, A>;
1125
+ <E, E2>(pf: (error: E) => Option.Option<E2>): <R, A>(self: STM<A, E, R>) => STM<A, E2, R>;
1126
+ <R, A, E, E2>(self: STM<A, E, R>, pf: (error: E) => Option.Option<E2>): STM<A, E2, R>;
1127
1127
  };
1128
1128
  /**
1129
1129
  * Keeps some of the errors, and terminates the fiber with the rest, using the
@@ -1133,8 +1133,8 @@ export declare const refineOrDie: {
1133
1133
  * @category mutations
1134
1134
  */
1135
1135
  export declare const refineOrDieWith: {
1136
- <E, E2>(pf: (error: E) => Option.Option<E2>, f: (error: E) => unknown): <R, A>(self: STM<R, E, A>) => STM<R, E2, A>;
1137
- <R, A, E, E2>(self: STM<R, E, A>, pf: (error: E) => Option.Option<E2>, f: (error: E) => unknown): STM<R, E2, A>;
1136
+ <E, E2>(pf: (error: E) => Option.Option<E2>, f: (error: E) => unknown): <R, A>(self: STM<A, E, R>) => STM<A, E2, R>;
1137
+ <R, A, E, E2>(self: STM<A, E, R>, pf: (error: E) => Option.Option<E2>, f: (error: E) => unknown): STM<A, E2, R>;
1138
1138
  };
1139
1139
  /**
1140
1140
  * Fail with the returned value if the `PartialFunction` matches, otherwise
@@ -1144,8 +1144,8 @@ export declare const refineOrDieWith: {
1144
1144
  * @category mutations
1145
1145
  */
1146
1146
  export declare const reject: {
1147
- <A, E2>(pf: (a: A) => Option.Option<E2>): <R, E>(self: STM<R, E, A>) => STM<R, E2 | E, A>;
1148
- <R, E, A, E2>(self: STM<R, E, A>, pf: (a: A) => Option.Option<E2>): STM<R, E | E2, A>;
1147
+ <A, E2>(pf: (a: A) => Option.Option<E2>): <R, E>(self: STM<A, E, R>) => STM<A, E2 | E, R>;
1148
+ <R, E, A, E2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<E2>): STM<A, E | E2, R>;
1149
1149
  };
1150
1150
  /**
1151
1151
  * Continue with the returned computation if the specified partial function
@@ -1156,8 +1156,8 @@ export declare const reject: {
1156
1156
  * @category mutations
1157
1157
  */
1158
1158
  export declare const rejectSTM: {
1159
- <A, R2, E2>(pf: (a: A) => Option.Option<STM<R2, E2, E2>>): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A>;
1160
- <R, E, A, R2, E2>(self: STM<R, E, A>, pf: (a: A) => Option.Option<STM<R2, E2, E2>>): STM<R | R2, E | E2, A>;
1159
+ <A, R2, E2>(pf: (a: A) => Option.Option<STM<E2, E2, R2>>): <R, E>(self: STM<A, E, R>) => STM<A, E2 | E, R2 | R>;
1160
+ <R, E, A, R2, E2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<STM<E2, E2, R2>>): STM<A, E | E2, R | R2>;
1161
1161
  };
1162
1162
  /**
1163
1163
  * Repeats this `STM` effect until its result satisfies the specified
@@ -1175,8 +1175,8 @@ export declare const rejectSTM: {
1175
1175
  * @category mutations
1176
1176
  */
1177
1177
  export declare const repeatUntil: {
1178
- <A>(predicate: Predicate<A>): <R, E>(self: STM<R, E, A>) => STM<R, E, A>;
1179
- <R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>): STM<R, E, A>;
1178
+ <A>(predicate: Predicate<A>): <R, E>(self: STM<A, E, R>) => STM<A, E, R>;
1179
+ <A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>;
1180
1180
  };
1181
1181
  /**
1182
1182
  * Repeats this `STM` effect while its result satisfies the specified
@@ -1195,8 +1195,8 @@ export declare const repeatUntil: {
1195
1195
  * @category mutations
1196
1196
  */
1197
1197
  export declare const repeatWhile: {
1198
- <A>(predicate: Predicate<A>): <R, E>(self: STM<R, E, A>) => STM<R, E, A>;
1199
- <R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>): STM<R, E, A>;
1198
+ <A>(predicate: Predicate<A>): <R, E>(self: STM<A, E, R>) => STM<A, E, R>;
1199
+ <A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>;
1200
1200
  };
1201
1201
  /**
1202
1202
  * Replicates the given effect n times. If 0 or negative numbers are given, an
@@ -1206,8 +1206,8 @@ export declare const repeatWhile: {
1206
1206
  * @category constructors
1207
1207
  */
1208
1208
  export declare const replicate: {
1209
- (n: number): <R, E, A>(self: STM<R, E, A>) => Array<STM<R, E, A>>;
1210
- <R, E, A>(self: STM<R, E, A>, n: number): Array<STM<R, E, A>>;
1209
+ (n: number): <A, E, R>(self: STM<A, E, R>) => Array<STM<A, E, R>>;
1210
+ <A, E, R>(self: STM<A, E, R>, n: number): Array<STM<A, E, R>>;
1211
1211
  };
1212
1212
  /**
1213
1213
  * Performs this transaction the specified number of times and collects the
@@ -1217,8 +1217,8 @@ export declare const replicate: {
1217
1217
  * @category constructors
1218
1218
  */
1219
1219
  export declare const replicateSTM: {
1220
- (n: number): <R, E, A>(self: STM<R, E, A>) => STM<R, E, Array<A>>;
1221
- <R, E, A>(self: STM<R, E, A>, n: number): STM<R, E, Array<A>>;
1220
+ (n: number): <A, E, R>(self: STM<A, E, R>) => STM<Array<A>, E, R>;
1221
+ <A, E, R>(self: STM<A, E, R>, n: number): STM<Array<A>, E, R>;
1222
1222
  };
1223
1223
  /**
1224
1224
  * Performs this transaction the specified number of times, discarding the
@@ -1228,8 +1228,8 @@ export declare const replicateSTM: {
1228
1228
  * @category constructors
1229
1229
  */
1230
1230
  export declare const replicateSTMDiscard: {
1231
- (n: number): <R, E, A>(self: STM<R, E, A>) => STM<R, E, void>;
1232
- <R, E, A>(self: STM<R, E, A>, n: number): STM<R, E, void>;
1231
+ (n: number): <A, E, R>(self: STM<A, E, R>) => STM<void, E, R>;
1232
+ <A, E, R>(self: STM<A, E, R>, n: number): STM<void, E, R>;
1233
1233
  };
1234
1234
  /**
1235
1235
  * Abort and retry the whole transaction when any of the underlying
@@ -1238,7 +1238,7 @@ export declare const replicateSTMDiscard: {
1238
1238
  * @since 2.0.0
1239
1239
  * @category error handling
1240
1240
  */
1241
- export declare const retry: STM<never, never, never>;
1241
+ export declare const retry: STM<never>;
1242
1242
  /**
1243
1243
  * Filters the value produced by this effect, retrying the transaction until
1244
1244
  * the predicate returns `true` for the value.
@@ -1247,10 +1247,10 @@ export declare const retry: STM<never, never, never>;
1247
1247
  * @category mutations
1248
1248
  */
1249
1249
  export declare const retryUntil: {
1250
- <A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <R, E>(self: STM<R, E, A>) => STM<R, E, B>;
1251
- <A>(predicate: Predicate<A>): <R, E>(self: STM<R, E, A>) => STM<R, E, A>;
1252
- <R, E, A, B extends A>(self: STM<R, E, A>, refinement: Refinement<A, B>): STM<R, E, B>;
1253
- <R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>): STM<R, E, A>;
1250
+ <A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <R, E>(self: STM<A, E, R>) => STM<B, E, R>;
1251
+ <A>(predicate: Predicate<A>): <R, E>(self: STM<A, E, R>) => STM<A, E, R>;
1252
+ <R, E, A, B extends A>(self: STM<A, E, R>, refinement: Refinement<A, B>): STM<B, E, R>;
1253
+ <A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>;
1254
1254
  };
1255
1255
  /**
1256
1256
  * Filters the value produced by this effect, retrying the transaction while
@@ -1260,8 +1260,8 @@ export declare const retryUntil: {
1260
1260
  * @category mutations
1261
1261
  */
1262
1262
  export declare const retryWhile: {
1263
- <A>(predicate: Predicate<A>): <R, E>(self: STM<R, E, A>) => STM<R, E, A>;
1264
- <R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>): STM<R, E, A>;
1263
+ <A>(predicate: Predicate<A>): <R, E>(self: STM<A, E, R>) => STM<A, E, R>;
1264
+ <A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>;
1265
1265
  };
1266
1266
  /**
1267
1267
  * Converts an option on values into an option on errors.
@@ -1269,28 +1269,28 @@ export declare const retryWhile: {
1269
1269
  * @since 2.0.0
1270
1270
  * @category getters
1271
1271
  */
1272
- export declare const some: <R, E, A>(self: STM<R, E, Option.Option<A>>) => STM<R, Option.Option<E>, A>;
1272
+ export declare const some: <A, E, R>(self: STM<Option.Option<A>, E, R>) => STM<A, Option.Option<E>, R>;
1273
1273
  /**
1274
1274
  * Returns an `STM` effect that succeeds with the specified value.
1275
1275
  *
1276
1276
  * @since 2.0.0
1277
1277
  * @category constructors
1278
1278
  */
1279
- export declare const succeed: <A>(value: A) => STM<never, never, A>;
1279
+ export declare const succeed: <A>(value: A) => STM<A>;
1280
1280
  /**
1281
1281
  * Returns an effect with the empty value.
1282
1282
  *
1283
1283
  * @since 2.0.0
1284
1284
  * @category constructors
1285
1285
  */
1286
- export declare const succeedNone: STM<never, never, Option.Option<never>>;
1286
+ export declare const succeedNone: STM<Option.Option<never>>;
1287
1287
  /**
1288
1288
  * Returns an effect with the optional value.
1289
1289
  *
1290
1290
  * @since 2.0.0
1291
1291
  * @category constructors
1292
1292
  */
1293
- export declare const succeedSome: <A>(value: A) => STM<never, never, Option.Option<A>>;
1293
+ export declare const succeedSome: <A>(value: A) => STM<Option.Option<A>>;
1294
1294
  /**
1295
1295
  * Summarizes a `STM` effect by computing a provided value before and after
1296
1296
  * execution, and then combining the values to produce a summary, together
@@ -1300,8 +1300,8 @@ export declare const succeedSome: <A>(value: A) => STM<never, never, Option.Opti
1300
1300
  * @category mutations
1301
1301
  */
1302
1302
  export declare const summarized: {
1303
- <R2, E2, A2, A3>(summary: STM<R2, E2, A2>, f: (before: A2, after: A2) => A3): <R, E, A>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, [A3, A]>;
1304
- <R, E, A, R2, E2, A2, A3>(self: STM<R, E, A>, summary: STM<R2, E2, A2>, f: (before: A2, after: A2) => A3): STM<R | R2, E | E2, [A3, A]>;
1303
+ <R2, E2, A2, A3>(summary: STM<A2, E2, R2>, f: (before: A2, after: A2) => A3): <A, E, R>(self: STM<A, E, R>) => STM<[A3, A], E2 | E, R2 | R>;
1304
+ <R, E, A, R2, E2, A2, A3>(self: STM<A, E, R>, summary: STM<A2, E2, R2>, f: (before: A2, after: A2) => A3): STM<[A3, A], E | E2, R | R2>;
1305
1305
  };
1306
1306
  /**
1307
1307
  * Suspends creation of the specified transaction lazily.
@@ -1309,7 +1309,7 @@ export declare const summarized: {
1309
1309
  * @since 2.0.0
1310
1310
  * @category constructors
1311
1311
  */
1312
- export declare const suspend: <R, E, A>(evaluate: LazyArg<STM<R, E, A>>) => STM<R, E, A>;
1312
+ export declare const suspend: <A, E, R>(evaluate: LazyArg<STM<A, E, R>>) => STM<A, E, R>;
1313
1313
  /**
1314
1314
  * Returns an `STM` effect that succeeds with the specified lazily evaluated
1315
1315
  * value.
@@ -1317,7 +1317,7 @@ export declare const suspend: <R, E, A>(evaluate: LazyArg<STM<R, E, A>>) => STM<
1317
1317
  * @since 2.0.0
1318
1318
  * @category constructors
1319
1319
  */
1320
- export declare const sync: <A>(evaluate: () => A) => STM<never, never, A>;
1320
+ export declare const sync: <A>(evaluate: () => A) => STM<A>;
1321
1321
  /**
1322
1322
  * "Peeks" at the success of transactional effect.
1323
1323
  *
@@ -1325,8 +1325,8 @@ export declare const sync: <A>(evaluate: () => A) => STM<never, never, A>;
1325
1325
  * @category sequencing
1326
1326
  */
1327
1327
  export declare const tap: {
1328
- <A, R2, E2, _>(f: (a: A) => STM<R2, E2, _>): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A>;
1329
- <R, E, A, R2, E2, _>(self: STM<R, E, A>, f: (a: A) => STM<R2, E2, _>): STM<R | R2, E | E2, A>;
1328
+ <A, R2, E2, _>(f: (a: A) => STM<_, E2, R2>): <R, E>(self: STM<A, E, R>) => STM<A, E2 | E, R2 | R>;
1329
+ <R, E, A, R2, E2, _>(self: STM<A, E, R>, f: (a: A) => STM<_, E2, R2>): STM<A, E | E2, R | R2>;
1330
1330
  };
1331
1331
  /**
1332
1332
  * "Peeks" at both sides of an transactional effect.
@@ -1336,13 +1336,13 @@ export declare const tap: {
1336
1336
  */
1337
1337
  export declare const tapBoth: {
1338
1338
  <E, XE extends E, R2, E2, A2, A, XA extends A, R3, E3, A3>(options: {
1339
- readonly onFailure: (error: XE) => STM<R2, E2, A2>;
1340
- readonly onSuccess: (value: XA) => STM<R3, E3, A3>;
1341
- }): <R>(self: STM<R, E, A>) => STM<R2 | R3 | R, E | E2 | E3, A>;
1342
- <R, E, XE extends E, R2, E2, A2, A, XA extends A, R3, E3, A3>(self: STM<R, E, A>, options: {
1343
- readonly onFailure: (error: XE) => STM<R2, E2, A2>;
1344
- readonly onSuccess: (value: XA) => STM<R3, E3, A3>;
1345
- }): STM<R | R2 | R3, E | E2 | E3, A>;
1339
+ readonly onFailure: (error: XE) => STM<A2, E2, R2>;
1340
+ readonly onSuccess: (value: XA) => STM<A3, E3, R3>;
1341
+ }): <R>(self: STM<A, E, R>) => STM<A, E | E2 | E3, R2 | R3 | R>;
1342
+ <R, E, XE extends E, R2, E2, A2, A, XA extends A, R3, E3, A3>(self: STM<A, E, R>, options: {
1343
+ readonly onFailure: (error: XE) => STM<A2, E2, R2>;
1344
+ readonly onSuccess: (value: XA) => STM<A3, E3, R3>;
1345
+ }): STM<A, E | E2 | E3, R | R2 | R3>;
1346
1346
  };
1347
1347
  /**
1348
1348
  * "Peeks" at the error of the transactional effect.
@@ -1351,15 +1351,15 @@ export declare const tapBoth: {
1351
1351
  * @category sequencing
1352
1352
  */
1353
1353
  export declare const tapError: {
1354
- <E, R2, E2, _>(f: (error: NoInfer<E>) => STM<R2, E2, _>): <R, A>(self: STM<R, E, A>) => STM<R2 | R, E | E2, A>;
1355
- <R, A, E, R2, E2, _>(self: STM<R, E, A>, f: (error: E) => STM<R2, E2, _>): STM<R | R2, E | E2, A>;
1354
+ <E, R2, E2, _>(f: (error: NoInfer<E>) => STM<_, E2, R2>): <R, A>(self: STM<A, E, R>) => STM<A, E | E2, R2 | R>;
1355
+ <R, A, E, R2, E2, _>(self: STM<A, E, R>, f: (error: E) => STM<_, E2, R2>): STM<A, E | E2, R | R2>;
1356
1356
  };
1357
1357
  declare const try_: {
1358
1358
  <A, E>(options: {
1359
1359
  readonly try: LazyArg<A>;
1360
1360
  readonly catch: (u: unknown) => E;
1361
- }): STM<never, E, A>;
1362
- <A>(try_: LazyArg<A>): STM<never, unknown, A>;
1361
+ }): STM<A, E>;
1362
+ <A>(try_: LazyArg<A>): STM<A, unknown>;
1363
1363
  };
1364
1364
  export {
1365
1365
  /**
@@ -1377,8 +1377,8 @@ try_ as try };
1377
1377
  * @category mutations
1378
1378
  */
1379
1379
  export declare const unless: {
1380
- (predicate: LazyArg<boolean>): <R, E, A>(self: STM<R, E, A>) => STM<R, E, Option.Option<A>>;
1381
- <R, E, A>(self: STM<R, E, A>, predicate: LazyArg<boolean>): STM<R, E, Option.Option<A>>;
1380
+ (predicate: LazyArg<boolean>): <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E, R>;
1381
+ <A, E, R>(self: STM<A, E, R>, predicate: LazyArg<boolean>): STM<Option.Option<A>, E, R>;
1382
1382
  };
1383
1383
  /**
1384
1384
  * The moral equivalent of `if (!p) exp` when `p` has side-effects
@@ -1387,8 +1387,8 @@ export declare const unless: {
1387
1387
  * @category mutations
1388
1388
  */
1389
1389
  export declare const unlessSTM: {
1390
- <R2, E2>(predicate: STM<R2, E2, boolean>): <R, E, A>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, Option.Option<A>>;
1391
- <R, E, A, R2, E2>(self: STM<R, E, A>, predicate: STM<R2, E2, boolean>): STM<R | R2, E | E2, Option.Option<A>>;
1390
+ <R2, E2>(predicate: STM<boolean, E2, R2>): <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E2 | E, R2 | R>;
1391
+ <R, E, A, R2, E2>(self: STM<A, E, R>, predicate: STM<boolean, E2, R2>): STM<Option.Option<A>, E | E2, R | R2>;
1392
1392
  };
1393
1393
  /**
1394
1394
  * Converts an option on errors into an option on values.
@@ -1396,14 +1396,14 @@ export declare const unlessSTM: {
1396
1396
  * @since 2.0.0
1397
1397
  * @category getters
1398
1398
  */
1399
- export declare const unsome: <R, E, A>(self: STM<R, Option.Option<E>, A>) => STM<R, E, Option.Option<A>>;
1399
+ export declare const unsome: <A, E, R>(self: STM<A, Option.Option<E>, R>) => STM<Option.Option<A>, E, R>;
1400
1400
  /**
1401
1401
  * Returns an `STM` effect that succeeds with `Unit`.
1402
1402
  *
1403
1403
  * @since 2.0.0
1404
1404
  * @category constructors
1405
1405
  */
1406
- export declare const unit: STM<never, never, void>;
1406
+ export declare const unit: STM<void>;
1407
1407
  /**
1408
1408
  * Feeds elements of type `A` to `f` and accumulates all errors in error
1409
1409
  * channel or successes in success channel.
@@ -1415,8 +1415,8 @@ export declare const unit: STM<never, never, void>;
1415
1415
  * @category mutations
1416
1416
  */
1417
1417
  export declare const validateAll: {
1418
- <R, E, A, B>(f: (a: A) => STM<R, E, B>): (elements: Iterable<A>) => STM<R, [E, ...Array<E>], Array<B>>;
1419
- <R, E, A, B>(elements: Iterable<A>, f: (a: A) => STM<R, E, B>): STM<R, [E, ...Array<E>], Array<B>>;
1418
+ <R, E, A, B>(f: (a: A) => STM<B, E, R>): (elements: Iterable<A>) => STM<Array<B>, [E, ...Array<E>], R>;
1419
+ <R, E, A, B>(elements: Iterable<A>, f: (a: A) => STM<B, E, R>): STM<Array<B>, [E, ...Array<E>], R>;
1420
1420
  };
1421
1421
  /**
1422
1422
  * Feeds elements of type `A` to `f` until it succeeds. Returns first success
@@ -1426,8 +1426,8 @@ export declare const validateAll: {
1426
1426
  * @category mutations
1427
1427
  */
1428
1428
  export declare const validateFirst: {
1429
- <R, E, A, B>(f: (a: A) => STM<R, E, B>): (elements: Iterable<A>) => STM<R, Array<E>, B>;
1430
- <R, E, A, B>(elements: Iterable<A>, f: (a: A) => STM<R, E, B>): STM<R, Array<E>, B>;
1429
+ <R, E, A, B>(f: (a: A) => STM<B, E, R>): (elements: Iterable<A>) => STM<B, Array<E>, R>;
1430
+ <R, E, A, B>(elements: Iterable<A>, f: (a: A) => STM<B, E, R>): STM<B, Array<E>, R>;
1431
1431
  };
1432
1432
  /**
1433
1433
  * The moral equivalent of `if (p) exp`.
@@ -1436,8 +1436,8 @@ export declare const validateFirst: {
1436
1436
  * @category mutations
1437
1437
  */
1438
1438
  export declare const when: {
1439
- (predicate: LazyArg<boolean>): <R, E, A>(self: STM<R, E, A>) => STM<R, E, Option.Option<A>>;
1440
- <R, E, A>(self: STM<R, E, A>, predicate: LazyArg<boolean>): STM<R, E, Option.Option<A>>;
1439
+ (predicate: LazyArg<boolean>): <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E, R>;
1440
+ <A, E, R>(self: STM<A, E, R>, predicate: LazyArg<boolean>): STM<Option.Option<A>, E, R>;
1441
1441
  };
1442
1442
  /**
1443
1443
  * The moral equivalent of `if (p) exp` when `p` has side-effects.
@@ -1446,8 +1446,8 @@ export declare const when: {
1446
1446
  * @category mutations
1447
1447
  */
1448
1448
  export declare const whenSTM: {
1449
- <R2, E2>(predicate: STM<R2, E2, boolean>): <R, E, A>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, Option.Option<A>>;
1450
- <R, E, A, R2, E2>(self: STM<R, E, A>, predicate: STM<R2, E2, boolean>): STM<R | R2, E | E2, Option.Option<A>>;
1449
+ <R2, E2>(predicate: STM<boolean, E2, R2>): <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E2 | E, R2 | R>;
1450
+ <R, E, A, R2, E2>(self: STM<A, E, R>, predicate: STM<boolean, E2, R2>): STM<Option.Option<A>, E | E2, R | R2>;
1451
1451
  };
1452
1452
  /**
1453
1453
  * Sequentially zips this value with the specified one.
@@ -1456,8 +1456,8 @@ export declare const whenSTM: {
1456
1456
  * @category zipping
1457
1457
  */
1458
1458
  export declare const zip: {
1459
- <R1, E1, A1>(that: STM<R1, E1, A1>): <R, E, A>(self: STM<R, E, A>) => STM<R1 | R, E1 | E, [A, A1]>;
1460
- <R, E, A, R1, E1, A1>(self: STM<R, E, A>, that: STM<R1, E1, A1>): STM<R | R1, E | E1, [A, A1]>;
1459
+ <R1, E1, A1>(that: STM<A1, E1, R1>): <A, E, R>(self: STM<A, E, R>) => STM<[A, A1], E1 | E, R1 | R>;
1460
+ <R, E, A, R1, E1, A1>(self: STM<A, E, R>, that: STM<A1, E1, R1>): STM<[A, A1], E | E1, R | R1>;
1461
1461
  };
1462
1462
  /**
1463
1463
  * Sequentially zips this value with the specified one, discarding the second
@@ -1467,8 +1467,8 @@ export declare const zip: {
1467
1467
  * @category zipping
1468
1468
  */
1469
1469
  export declare const zipLeft: {
1470
- <R1, E1, A1>(that: STM<R1, E1, A1>): <R, E, A>(self: STM<R, E, A>) => STM<R1 | R, E1 | E, A>;
1471
- <R, E, A, R1, E1, A1>(self: STM<R, E, A>, that: STM<R1, E1, A1>): STM<R | R1, E | E1, A>;
1470
+ <R1, E1, A1>(that: STM<A1, E1, R1>): <A, E, R>(self: STM<A, E, R>) => STM<A, E1 | E, R1 | R>;
1471
+ <R, E, A, R1, E1, A1>(self: STM<A, E, R>, that: STM<A1, E1, R1>): STM<A, E | E1, R | R1>;
1472
1472
  };
1473
1473
  /**
1474
1474
  * Sequentially zips this value with the specified one, discarding the first
@@ -1478,8 +1478,8 @@ export declare const zipLeft: {
1478
1478
  * @category zipping
1479
1479
  */
1480
1480
  export declare const zipRight: {
1481
- <R1, E1, A1>(that: STM<R1, E1, A1>): <R, E, A>(self: STM<R, E, A>) => STM<R1 | R, E1 | E, A1>;
1482
- <R, E, A, R1, E1, A1>(self: STM<R, E, A>, that: STM<R1, E1, A1>): STM<R | R1, E | E1, A1>;
1481
+ <R1, E1, A1>(that: STM<A1, E1, R1>): <A, E, R>(self: STM<A, E, R>) => STM<A1, E1 | E, R1 | R>;
1482
+ <R, E, A, R1, E1, A1>(self: STM<A, E, R>, that: STM<A1, E1, R1>): STM<A1, E | E1, R | R1>;
1483
1483
  };
1484
1484
  /**
1485
1485
  * Sequentially zips this value with the specified one, combining the values
@@ -1489,8 +1489,8 @@ export declare const zipRight: {
1489
1489
  * @category zipping
1490
1490
  */
1491
1491
  export declare const zipWith: {
1492
- <R1, E1, A1, A, A2>(that: STM<R1, E1, A1>, f: (a: A, b: A1) => A2): <R, E>(self: STM<R, E, A>) => STM<R1 | R, E1 | E, A2>;
1493
- <R, E, R1, E1, A1, A, A2>(self: STM<R, E, A>, that: STM<R1, E1, A1>, f: (a: A, b: A1) => A2): STM<R | R1, E | E1, A2>;
1492
+ <R1, E1, A1, A, A2>(that: STM<A1, E1, R1>, f: (a: A, b: A1) => A2): <R, E>(self: STM<A, E, R>) => STM<A2, E1 | E, R1 | R>;
1493
+ <R, E, R1, E1, A1, A, A2>(self: STM<A, E, R>, that: STM<A1, E1, R1>, f: (a: A, b: A1) => A2): STM<A2, E | E1, R | R1>;
1494
1494
  };
1495
1495
  /**
1496
1496
  * This function takes an iterable of `STM` values and returns a new
@@ -1511,31 +1511,31 @@ export declare const zipWith: {
1511
1511
  * @since 2.0.0
1512
1512
  * @category elements
1513
1513
  */
1514
- export declare const firstSuccessOf: <R, E, A>(effects: Iterable<STM<R, E, A>>) => STM<R, E, A>;
1514
+ export declare const firstSuccessOf: <A, E, R>(effects: Iterable<STM<A, E, R>>) => STM<A, E, R>;
1515
1515
  /**
1516
1516
  * @category do notation
1517
1517
  * @since 2.0.0
1518
1518
  */
1519
- export declare const Do: STM<never, never, {}>;
1519
+ export declare const Do: STM<{}>;
1520
1520
  /**
1521
1521
  * @category do notation
1522
1522
  * @since 2.0.0
1523
1523
  */
1524
1524
  export declare const bind: {
1525
- <N extends string, K, R2, E2, A>(tag: Exclude<N, keyof K>, f: (_: K) => STM<R2, E2, A>): <R, E>(self: STM<R, E, K>) => STM<R2 | R, E2 | E, Effect.MergeRecord<K, {
1525
+ <N extends string, K, R2, E2, A>(tag: Exclude<N, keyof K>, f: (_: K) => STM<A, E2, R2>): <R, E>(self: STM<K, E, R>) => STM<Effect.MergeRecord<K, {
1526
1526
  [k in N]: A;
1527
- }>>;
1528
- <R, E, N extends string, K, R2, E2, A>(self: STM<R, E, K>, tag: Exclude<N, keyof K>, f: (_: K) => STM<R2, E2, A>): STM<R | R2, E | E2, Effect.MergeRecord<K, {
1527
+ }>, E2 | E, R2 | R>;
1528
+ <R, E, N extends string, K, R2, E2, A>(self: STM<K, E, R>, tag: Exclude<N, keyof K>, f: (_: K) => STM<A, E2, R2>): STM<Effect.MergeRecord<K, {
1529
1529
  [k in N]: A;
1530
- }>>;
1530
+ }>, E | E2, R | R2>;
1531
1531
  };
1532
1532
  declare const let_: {
1533
- <N extends string, K, A>(tag: Exclude<N, keyof K>, f: (_: K) => A): <R, E>(self: STM<R, E, K>) => STM<R, E, Effect.MergeRecord<K, {
1533
+ <N extends string, K, A>(tag: Exclude<N, keyof K>, f: (_: K) => A): <R, E>(self: STM<K, E, R>) => STM<Effect.MergeRecord<K, {
1534
1534
  [k in N]: A;
1535
- }>>;
1536
- <R, E, K, N extends string, A>(self: STM<R, E, K>, tag: Exclude<N, keyof K>, f: (_: K) => A): STM<R, E, Effect.MergeRecord<K, {
1535
+ }>, E, R>;
1536
+ <R, E, K, N extends string, A>(self: STM<K, E, R>, tag: Exclude<N, keyof K>, f: (_: K) => A): STM<Effect.MergeRecord<K, {
1537
1537
  [k in N]: A;
1538
- }>>;
1538
+ }>, E, R>;
1539
1539
  };
1540
1540
  export {
1541
1541
  /**
@@ -1548,7 +1548,7 @@ let_ as let };
1548
1548
  * @since 2.0.0
1549
1549
  */
1550
1550
  export declare const bindTo: {
1551
- <N extends string>(tag: N): <R, E, A>(self: STM<R, E, A>) => STM<R, E, Record<N, A>>;
1552
- <R, E, A, N extends string>(self: STM<R, E, A>, tag: N): STM<R, E, Record<N, A>>;
1551
+ <N extends string>(tag: N): <A, E, R>(self: STM<A, E, R>) => STM<Record<N, A>, E, R>;
1552
+ <R, E, A, N extends string>(self: STM<A, E, R>, tag: N): STM<Record<N, A>, E, R>;
1553
1553
  };
1554
1554
  //# sourceMappingURL=STM.d.ts.map