effect 2.2.5 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/RateLimiter/package.json +6 -0
  2. package/dist/cjs/Cause.js +14 -1
  3. package/dist/cjs/Cause.js.map +1 -1
  4. package/dist/cjs/Channel.js.map +1 -1
  5. package/dist/cjs/Clock.js.map +1 -1
  6. package/dist/cjs/Console.js.map +1 -1
  7. package/dist/cjs/Context.js +23 -25
  8. package/dist/cjs/Context.js.map +1 -1
  9. package/dist/cjs/Data.js +3 -3
  10. package/dist/cjs/Data.js.map +1 -1
  11. package/dist/cjs/Deferred.js +1 -1
  12. package/dist/cjs/Deferred.js.map +1 -1
  13. package/dist/cjs/Effect.js +9 -9
  14. package/dist/cjs/Effect.js.map +1 -1
  15. package/dist/cjs/Effectable.js.map +1 -1
  16. package/dist/cjs/Either.js.map +1 -1
  17. package/dist/cjs/Exit.js +2 -2
  18. package/dist/cjs/Exit.js.map +1 -1
  19. package/dist/cjs/Fiber.js.map +1 -1
  20. package/dist/cjs/FiberMap.js +3 -3
  21. package/dist/cjs/FiberRef.js.map +1 -1
  22. package/dist/cjs/FiberRefs.js.map +1 -1
  23. package/dist/cjs/FiberSet.js +3 -3
  24. package/dist/cjs/FiberSet.js.map +1 -1
  25. package/dist/cjs/GroupBy.js.map +1 -1
  26. package/dist/cjs/Layer.js.map +1 -1
  27. package/dist/cjs/LogLevel.js.map +1 -1
  28. package/dist/cjs/Logger.js.map +1 -1
  29. package/dist/cjs/Metric.js.map +1 -1
  30. package/dist/cjs/Number.js +20 -1
  31. package/dist/cjs/Number.js.map +1 -1
  32. package/dist/cjs/Option.js.map +1 -1
  33. package/dist/cjs/Pool.js.map +1 -1
  34. package/dist/cjs/PubSub.js.map +1 -1
  35. package/dist/cjs/Queue.js.map +1 -1
  36. package/dist/cjs/Random.js.map +1 -1
  37. package/dist/cjs/RateLimiter.js +38 -0
  38. package/dist/cjs/RateLimiter.js.map +1 -0
  39. package/dist/cjs/ReadonlyRecord.js +45 -9
  40. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  41. package/dist/cjs/Ref.js.map +1 -1
  42. package/dist/cjs/Request.js.map +1 -1
  43. package/dist/cjs/RequestResolver.js.map +1 -1
  44. package/dist/cjs/Resource.js.map +1 -1
  45. package/dist/cjs/Runtime.js +1 -4
  46. package/dist/cjs/Runtime.js.map +1 -1
  47. package/dist/cjs/RuntimeFlags.js.map +1 -1
  48. package/dist/cjs/STM.js.map +1 -1
  49. package/dist/cjs/Schedule.js.map +1 -1
  50. package/dist/cjs/Scope.js.map +1 -1
  51. package/dist/cjs/ScopedRef.js.map +1 -1
  52. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
  53. package/dist/cjs/Sink.js.map +1 -1
  54. package/dist/cjs/Stream.js.map +1 -1
  55. package/dist/cjs/SubscriptionRef.js.map +1 -1
  56. package/dist/cjs/Supervisor.js.map +1 -1
  57. package/dist/cjs/SynchronizedRef.js.map +1 -1
  58. package/dist/cjs/TArray.js.map +1 -1
  59. package/dist/cjs/TDeferred.js.map +1 -1
  60. package/dist/cjs/TMap.js.map +1 -1
  61. package/dist/cjs/TPriorityQueue.js.map +1 -1
  62. package/dist/cjs/TPubSub.js.map +1 -1
  63. package/dist/cjs/TQueue.js.map +1 -1
  64. package/dist/cjs/TRandom.js.map +1 -1
  65. package/dist/cjs/TReentrantLock.js.map +1 -1
  66. package/dist/cjs/TRef.js.map +1 -1
  67. package/dist/cjs/TSemaphore.js.map +1 -1
  68. package/dist/cjs/TSet.js.map +1 -1
  69. package/dist/cjs/Take.js +6 -6
  70. package/dist/cjs/Take.js.map +1 -1
  71. package/dist/cjs/TestAnnotation.js +10 -13
  72. package/dist/cjs/TestAnnotation.js.map +1 -1
  73. package/dist/cjs/TestAnnotations.js +1 -1
  74. package/dist/cjs/TestAnnotations.js.map +1 -1
  75. package/dist/cjs/TestClock.js +1 -1
  76. package/dist/cjs/TestClock.js.map +1 -1
  77. package/dist/cjs/TestConfig.js +1 -1
  78. package/dist/cjs/TestConfig.js.map +1 -1
  79. package/dist/cjs/TestContext.js.map +1 -1
  80. package/dist/cjs/TestLive.js +1 -1
  81. package/dist/cjs/TestLive.js.map +1 -1
  82. package/dist/cjs/TestServices.js.map +1 -1
  83. package/dist/cjs/TestSized.js +1 -1
  84. package/dist/cjs/TestSized.js.map +1 -1
  85. package/dist/cjs/Utils.js +0 -1
  86. package/dist/cjs/Utils.js.map +1 -1
  87. package/dist/cjs/index.js +4 -2
  88. package/dist/cjs/index.js.map +1 -1
  89. package/dist/cjs/internal/cache.js.map +1 -1
  90. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  91. package/dist/cjs/internal/channel/mergeDecision.js +2 -6
  92. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
  93. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  94. package/dist/cjs/internal/channel.js +1 -1
  95. package/dist/cjs/internal/channel.js.map +1 -1
  96. package/dist/cjs/internal/clock.js +1 -1
  97. package/dist/cjs/internal/clock.js.map +1 -1
  98. package/dist/cjs/internal/configProvider.js +2 -4
  99. package/dist/cjs/internal/configProvider.js.map +1 -1
  100. package/dist/cjs/internal/console.js.map +1 -1
  101. package/dist/cjs/internal/context.js +31 -22
  102. package/dist/cjs/internal/context.js.map +1 -1
  103. package/dist/cjs/internal/core-effect.js +13 -27
  104. package/dist/cjs/internal/core-effect.js.map +1 -1
  105. package/dist/cjs/internal/core-stream.js.map +1 -1
  106. package/dist/cjs/internal/core.js +61 -130
  107. package/dist/cjs/internal/core.js.map +1 -1
  108. package/dist/cjs/internal/data.js.map +1 -1
  109. package/dist/cjs/internal/defaultServices/console.js +1 -1
  110. package/dist/cjs/internal/defaultServices/console.js.map +1 -1
  111. package/dist/cjs/internal/defaultServices.js.map +1 -1
  112. package/dist/cjs/internal/deferred.js.map +1 -1
  113. package/dist/cjs/internal/differ/contextPatch.js +9 -9
  114. package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
  115. package/dist/cjs/internal/effect/circular.js +7 -10
  116. package/dist/cjs/internal/effect/circular.js.map +1 -1
  117. package/dist/cjs/internal/effectable.js +4 -4
  118. package/dist/cjs/internal/effectable.js.map +1 -1
  119. package/dist/cjs/internal/fiber.js +2 -6
  120. package/dist/cjs/internal/fiber.js.map +1 -1
  121. package/dist/cjs/internal/fiberRuntime.js +10 -19
  122. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  123. package/dist/cjs/internal/groupBy.js.map +1 -1
  124. package/dist/cjs/internal/keyedPool.js.map +1 -1
  125. package/dist/cjs/internal/layer/circular.js.map +1 -1
  126. package/dist/cjs/internal/layer.js +3 -3
  127. package/dist/cjs/internal/layer.js.map +1 -1
  128. package/dist/cjs/internal/logSpan.js +3 -5
  129. package/dist/cjs/internal/logSpan.js.map +1 -1
  130. package/dist/cjs/internal/metric.js.map +1 -1
  131. package/dist/cjs/internal/pool.js.map +1 -1
  132. package/dist/cjs/internal/pubsub.js +2 -6
  133. package/dist/cjs/internal/pubsub.js.map +1 -1
  134. package/dist/cjs/internal/query.js.map +1 -1
  135. package/dist/cjs/internal/queue.js.map +1 -1
  136. package/dist/cjs/internal/random.js +1 -1
  137. package/dist/cjs/internal/random.js.map +1 -1
  138. package/dist/cjs/internal/rateLimiter.js +44 -0
  139. package/dist/cjs/internal/rateLimiter.js.map +1 -0
  140. package/dist/cjs/internal/ref.js.map +1 -1
  141. package/dist/cjs/internal/reloadable.js +1 -9
  142. package/dist/cjs/internal/reloadable.js.map +1 -1
  143. package/dist/cjs/internal/runtime.js +0 -1
  144. package/dist/cjs/internal/runtime.js.map +1 -1
  145. package/dist/cjs/internal/schedule.js.map +1 -1
  146. package/dist/cjs/internal/scopedCache.js.map +1 -1
  147. package/dist/cjs/internal/scopedRef.js.map +1 -1
  148. package/dist/cjs/internal/sink.js +7 -7
  149. package/dist/cjs/internal/sink.js.map +1 -1
  150. package/dist/cjs/internal/stm/core.js.map +1 -1
  151. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  152. package/dist/cjs/internal/stm/stm/tExit.js +2 -2
  153. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  154. package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
  155. package/dist/cjs/internal/stm/stm.js.map +1 -1
  156. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  157. package/dist/cjs/internal/stm/tDeferred.js +4 -2
  158. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  159. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  160. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  161. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  162. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  163. package/dist/cjs/internal/stm/tRandom.js +1 -1
  164. package/dist/cjs/internal/stm/tRandom.js.map +1 -1
  165. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
  166. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  167. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  168. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  169. package/dist/cjs/internal/stream/debounceState.js.map +1 -1
  170. package/dist/cjs/internal/stream/handoff.js.map +1 -1
  171. package/dist/cjs/internal/stream/handoffSignal.js.map +1 -1
  172. package/dist/cjs/internal/stream/pull.js.map +1 -1
  173. package/dist/cjs/internal/stream.js +0 -2
  174. package/dist/cjs/internal/stream.js.map +1 -1
  175. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  176. package/dist/cjs/internal/supervisor.js.map +1 -1
  177. package/dist/cjs/internal/take.js +2 -2
  178. package/dist/cjs/internal/take.js.map +1 -1
  179. package/dist/cjs/internal/testing/sleep.js.map +1 -1
  180. package/dist/cjs/internal/tracer.js +2 -2
  181. package/dist/cjs/internal/tracer.js.map +1 -1
  182. package/dist/cjs/internal/version.js +1 -1
  183. package/dist/dts/Cache.d.ts +20 -20
  184. package/dist/dts/Cache.d.ts.map +1 -1
  185. package/dist/dts/Cause.d.ts +33 -5
  186. package/dist/dts/Cause.d.ts.map +1 -1
  187. package/dist/dts/Channel.d.ts +197 -194
  188. package/dist/dts/Channel.d.ts.map +1 -1
  189. package/dist/dts/Clock.d.ts +7 -7
  190. package/dist/dts/Clock.d.ts.map +1 -1
  191. package/dist/dts/Config.d.ts +1 -1
  192. package/dist/dts/Config.d.ts.map +1 -1
  193. package/dist/dts/ConfigProvider.d.ts +6 -6
  194. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  195. package/dist/dts/Console.d.ts +43 -43
  196. package/dist/dts/Console.d.ts.map +1 -1
  197. package/dist/dts/Context.d.ts +44 -29
  198. package/dist/dts/Context.d.ts.map +1 -1
  199. package/dist/dts/Data.d.ts +38 -57
  200. package/dist/dts/Data.d.ts.map +1 -1
  201. package/dist/dts/Deferred.d.ts +36 -36
  202. package/dist/dts/Deferred.d.ts.map +1 -1
  203. package/dist/dts/Effect.d.ts +732 -729
  204. package/dist/dts/Effect.d.ts.map +1 -1
  205. package/dist/dts/Effectable.d.ts +8 -8
  206. package/dist/dts/Effectable.d.ts.map +1 -1
  207. package/dist/dts/Either.d.ts +2 -3
  208. package/dist/dts/Either.d.ts.map +1 -1
  209. package/dist/dts/Exit.d.ts +74 -74
  210. package/dist/dts/Exit.d.ts.map +1 -1
  211. package/dist/dts/Fiber.d.ts +75 -75
  212. package/dist/dts/Fiber.d.ts.map +1 -1
  213. package/dist/dts/FiberMap.d.ts +22 -22
  214. package/dist/dts/FiberMap.d.ts.map +1 -1
  215. package/dist/dts/FiberRef.d.ts +28 -28
  216. package/dist/dts/FiberRef.d.ts.map +1 -1
  217. package/dist/dts/FiberRefs.d.ts +1 -1
  218. package/dist/dts/FiberRefs.d.ts.map +1 -1
  219. package/dist/dts/FiberSet.d.ts +16 -16
  220. package/dist/dts/FiberSet.d.ts.map +1 -1
  221. package/dist/dts/GroupBy.d.ts +6 -6
  222. package/dist/dts/GroupBy.d.ts.map +1 -1
  223. package/dist/dts/KeyedPool.d.ts +22 -22
  224. package/dist/dts/KeyedPool.d.ts.map +1 -1
  225. package/dist/dts/Layer.d.ts +126 -126
  226. package/dist/dts/Layer.d.ts.map +1 -1
  227. package/dist/dts/LogLevel.d.ts +2 -2
  228. package/dist/dts/LogLevel.d.ts.map +1 -1
  229. package/dist/dts/Logger.d.ts +14 -14
  230. package/dist/dts/Logger.d.ts.map +1 -1
  231. package/dist/dts/MergeDecision.d.ts +7 -7
  232. package/dist/dts/MergeState.d.ts +13 -13
  233. package/dist/dts/MergeState.d.ts.map +1 -1
  234. package/dist/dts/Metric.d.ts +32 -32
  235. package/dist/dts/Metric.d.ts.map +1 -1
  236. package/dist/dts/MetricPolling.d.ts +6 -6
  237. package/dist/dts/MetricPolling.d.ts.map +1 -1
  238. package/dist/dts/Number.d.ts +15 -0
  239. package/dist/dts/Number.d.ts.map +1 -1
  240. package/dist/dts/Option.d.ts +2 -3
  241. package/dist/dts/Option.d.ts.map +1 -1
  242. package/dist/dts/Pool.d.ts +15 -16
  243. package/dist/dts/Pool.d.ts.map +1 -1
  244. package/dist/dts/PubSub.d.ts +18 -18
  245. package/dist/dts/PubSub.d.ts.map +1 -1
  246. package/dist/dts/Queue.d.ts +40 -40
  247. package/dist/dts/Queue.d.ts.map +1 -1
  248. package/dist/dts/Random.d.ts +13 -13
  249. package/dist/dts/Random.d.ts.map +1 -1
  250. package/dist/dts/RateLimiter.d.ts +31 -0
  251. package/dist/dts/RateLimiter.d.ts.map +1 -0
  252. package/dist/dts/ReadonlyArray.d.ts +3 -3
  253. package/dist/dts/ReadonlyRecord.d.ts +37 -8
  254. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  255. package/dist/dts/Ref.d.ts +25 -25
  256. package/dist/dts/Ref.d.ts.map +1 -1
  257. package/dist/dts/Reloadable.d.ts +9 -9
  258. package/dist/dts/Reloadable.d.ts.map +1 -1
  259. package/dist/dts/Request.d.ts +27 -28
  260. package/dist/dts/Request.d.ts.map +1 -1
  261. package/dist/dts/RequestBlock.d.ts +3 -3
  262. package/dist/dts/RequestBlock.d.ts.map +1 -1
  263. package/dist/dts/RequestResolver.d.ts +16 -16
  264. package/dist/dts/RequestResolver.d.ts.map +1 -1
  265. package/dist/dts/Resource.d.ts +7 -7
  266. package/dist/dts/Resource.d.ts.map +1 -1
  267. package/dist/dts/Runtime.d.ts +13 -16
  268. package/dist/dts/Runtime.d.ts.map +1 -1
  269. package/dist/dts/RuntimeFlags.d.ts +10 -10
  270. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  271. package/dist/dts/STM.d.ts +303 -303
  272. package/dist/dts/STM.d.ts.map +1 -1
  273. package/dist/dts/Schedule.d.ts +47 -47
  274. package/dist/dts/Schedule.d.ts.map +1 -1
  275. package/dist/dts/Scope.d.ts +10 -10
  276. package/dist/dts/Scope.d.ts.map +1 -1
  277. package/dist/dts/ScopedCache.d.ts +14 -14
  278. package/dist/dts/ScopedCache.d.ts.map +1 -1
  279. package/dist/dts/ScopedRef.d.ts +5 -5
  280. package/dist/dts/ScopedRef.d.ts.map +1 -1
  281. package/dist/dts/SingleProducerAsyncInput.d.ts +8 -8
  282. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  283. package/dist/dts/Sink.d.ts +214 -205
  284. package/dist/dts/Sink.d.ts.map +1 -1
  285. package/dist/dts/Stream.d.ts +595 -592
  286. package/dist/dts/Stream.d.ts.map +1 -1
  287. package/dist/dts/StreamEmit.d.ts +5 -5
  288. package/dist/dts/StreamEmit.d.ts.map +1 -1
  289. package/dist/dts/Streamable.d.ts +2 -2
  290. package/dist/dts/Streamable.d.ts.map +1 -1
  291. package/dist/dts/SubscriptionRef.d.ts +41 -41
  292. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  293. package/dist/dts/Supervisor.d.ts +17 -17
  294. package/dist/dts/Supervisor.d.ts.map +1 -1
  295. package/dist/dts/SynchronizedRef.d.ts +41 -41
  296. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  297. package/dist/dts/TArray.d.ts +72 -72
  298. package/dist/dts/TArray.d.ts.map +1 -1
  299. package/dist/dts/TDeferred.d.ts +12 -12
  300. package/dist/dts/TDeferred.d.ts.map +1 -1
  301. package/dist/dts/TMap.d.ts +67 -67
  302. package/dist/dts/TMap.d.ts.map +1 -1
  303. package/dist/dts/TPriorityQueue.d.ts +23 -23
  304. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  305. package/dist/dts/TPubSub.d.ts +15 -15
  306. package/dist/dts/TPubSub.d.ts.map +1 -1
  307. package/dist/dts/TQueue.d.ts +40 -40
  308. package/dist/dts/TQueue.d.ts.map +1 -1
  309. package/dist/dts/TRandom.d.ts +13 -13
  310. package/dist/dts/TRandom.d.ts.map +1 -1
  311. package/dist/dts/TReentrantLock.d.ts +21 -21
  312. package/dist/dts/TReentrantLock.d.ts.map +1 -1
  313. package/dist/dts/TRef.d.ts +25 -25
  314. package/dist/dts/TRef.d.ts.map +1 -1
  315. package/dist/dts/TSemaphore.d.ts +15 -15
  316. package/dist/dts/TSemaphore.d.ts.map +1 -1
  317. package/dist/dts/TSet.d.ts +49 -49
  318. package/dist/dts/TSet.d.ts.map +1 -1
  319. package/dist/dts/Take.d.ts +41 -41
  320. package/dist/dts/Take.d.ts.map +1 -1
  321. package/dist/dts/TestAnnotation.d.ts +1 -3
  322. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  323. package/dist/dts/TestAnnotations.d.ts +3 -3
  324. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  325. package/dist/dts/TestClock.d.ts +18 -18
  326. package/dist/dts/TestClock.d.ts.map +1 -1
  327. package/dist/dts/TestConfig.d.ts.map +1 -1
  328. package/dist/dts/TestContext.d.ts +2 -2
  329. package/dist/dts/TestContext.d.ts.map +1 -1
  330. package/dist/dts/TestLive.d.ts +1 -1
  331. package/dist/dts/TestLive.d.ts.map +1 -1
  332. package/dist/dts/TestServices.d.ts +31 -31
  333. package/dist/dts/TestServices.d.ts.map +1 -1
  334. package/dist/dts/TestSized.d.ts +2 -2
  335. package/dist/dts/TestSized.d.ts.map +1 -1
  336. package/dist/dts/Tracer.d.ts +1 -1
  337. package/dist/dts/Utils.d.ts.map +1 -1
  338. package/dist/dts/index.d.ts +12 -2
  339. package/dist/dts/index.d.ts.map +1 -1
  340. package/dist/dts/internal/channel/channelExecutor.d.ts +1 -1
  341. package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -1
  342. package/dist/dts/internal/core-stream.d.ts +1 -1
  343. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  344. package/dist/dts/internal/rateLimiter.d.ts +2 -0
  345. package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
  346. package/dist/dts/internal/stm/stm.d.ts +6 -6
  347. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  348. package/dist/dts/internal/version.d.ts +1 -1
  349. package/dist/esm/Cause.js +13 -0
  350. package/dist/esm/Cause.js.map +1 -1
  351. package/dist/esm/Channel.js.map +1 -1
  352. package/dist/esm/Clock.js.map +1 -1
  353. package/dist/esm/Console.js.map +1 -1
  354. package/dist/esm/Context.js +22 -24
  355. package/dist/esm/Context.js.map +1 -1
  356. package/dist/esm/Data.js +4 -5
  357. package/dist/esm/Data.js.map +1 -1
  358. package/dist/esm/Deferred.js +1 -1
  359. package/dist/esm/Deferred.js.map +1 -1
  360. package/dist/esm/Effect.js +9 -9
  361. package/dist/esm/Effect.js.map +1 -1
  362. package/dist/esm/Effectable.js.map +1 -1
  363. package/dist/esm/Either.js.map +1 -1
  364. package/dist/esm/Exit.js +2 -2
  365. package/dist/esm/Exit.js.map +1 -1
  366. package/dist/esm/Fiber.js.map +1 -1
  367. package/dist/esm/FiberMap.js +3 -3
  368. package/dist/esm/FiberRef.js.map +1 -1
  369. package/dist/esm/FiberRefs.js.map +1 -1
  370. package/dist/esm/FiberSet.js +3 -3
  371. package/dist/esm/FiberSet.js.map +1 -1
  372. package/dist/esm/GroupBy.js.map +1 -1
  373. package/dist/esm/Layer.js.map +1 -1
  374. package/dist/esm/LogLevel.js.map +1 -1
  375. package/dist/esm/Logger.js.map +1 -1
  376. package/dist/esm/Metric.js.map +1 -1
  377. package/dist/esm/Number.js +18 -0
  378. package/dist/esm/Number.js.map +1 -1
  379. package/dist/esm/Option.js.map +1 -1
  380. package/dist/esm/Pool.js.map +1 -1
  381. package/dist/esm/PubSub.js.map +1 -1
  382. package/dist/esm/Queue.js.map +1 -1
  383. package/dist/esm/Random.js.map +1 -1
  384. package/dist/esm/RateLimiter.js +7 -0
  385. package/dist/esm/RateLimiter.js.map +1 -0
  386. package/dist/esm/ReadonlyRecord.js +44 -8
  387. package/dist/esm/ReadonlyRecord.js.map +1 -1
  388. package/dist/esm/Ref.js.map +1 -1
  389. package/dist/esm/Request.js.map +1 -1
  390. package/dist/esm/RequestResolver.js.map +1 -1
  391. package/dist/esm/Resource.js.map +1 -1
  392. package/dist/esm/Runtime.js +1 -4
  393. package/dist/esm/Runtime.js.map +1 -1
  394. package/dist/esm/RuntimeFlags.js.map +1 -1
  395. package/dist/esm/STM.js.map +1 -1
  396. package/dist/esm/Schedule.js.map +1 -1
  397. package/dist/esm/Scope.js.map +1 -1
  398. package/dist/esm/ScopedRef.js.map +1 -1
  399. package/dist/esm/SingleProducerAsyncInput.js.map +1 -1
  400. package/dist/esm/Sink.js.map +1 -1
  401. package/dist/esm/Stream.js.map +1 -1
  402. package/dist/esm/SubscriptionRef.js.map +1 -1
  403. package/dist/esm/Supervisor.js.map +1 -1
  404. package/dist/esm/SynchronizedRef.js.map +1 -1
  405. package/dist/esm/TArray.js.map +1 -1
  406. package/dist/esm/TDeferred.js.map +1 -1
  407. package/dist/esm/TMap.js.map +1 -1
  408. package/dist/esm/TPriorityQueue.js.map +1 -1
  409. package/dist/esm/TPubSub.js.map +1 -1
  410. package/dist/esm/TQueue.js.map +1 -1
  411. package/dist/esm/TRandom.js.map +1 -1
  412. package/dist/esm/TReentrantLock.js.map +1 -1
  413. package/dist/esm/TRef.js.map +1 -1
  414. package/dist/esm/TSemaphore.js.map +1 -1
  415. package/dist/esm/TSet.js.map +1 -1
  416. package/dist/esm/Take.js +6 -6
  417. package/dist/esm/Take.js.map +1 -1
  418. package/dist/esm/TestAnnotation.js +10 -13
  419. package/dist/esm/TestAnnotation.js.map +1 -1
  420. package/dist/esm/TestAnnotations.js +1 -1
  421. package/dist/esm/TestAnnotations.js.map +1 -1
  422. package/dist/esm/TestClock.js +1 -1
  423. package/dist/esm/TestClock.js.map +1 -1
  424. package/dist/esm/TestConfig.js +1 -1
  425. package/dist/esm/TestConfig.js.map +1 -1
  426. package/dist/esm/TestContext.js.map +1 -1
  427. package/dist/esm/TestLive.js +1 -1
  428. package/dist/esm/TestLive.js.map +1 -1
  429. package/dist/esm/TestServices.js.map +1 -1
  430. package/dist/esm/TestSized.js +1 -1
  431. package/dist/esm/TestSized.js.map +1 -1
  432. package/dist/esm/Utils.js +1 -1
  433. package/dist/esm/Utils.js.map +1 -1
  434. package/dist/esm/index.js +12 -2
  435. package/dist/esm/index.js.map +1 -1
  436. package/dist/esm/internal/cache.js.map +1 -1
  437. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  438. package/dist/esm/internal/channel/mergeDecision.js +2 -6
  439. package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
  440. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
  441. package/dist/esm/internal/channel.js +1 -1
  442. package/dist/esm/internal/channel.js.map +1 -1
  443. package/dist/esm/internal/clock.js +1 -1
  444. package/dist/esm/internal/clock.js.map +1 -1
  445. package/dist/esm/internal/configProvider.js +2 -4
  446. package/dist/esm/internal/configProvider.js.map +1 -1
  447. package/dist/esm/internal/console.js.map +1 -1
  448. package/dist/esm/internal/context.js +28 -20
  449. package/dist/esm/internal/context.js.map +1 -1
  450. package/dist/esm/internal/core-effect.js +12 -26
  451. package/dist/esm/internal/core-effect.js.map +1 -1
  452. package/dist/esm/internal/core-stream.js.map +1 -1
  453. package/dist/esm/internal/core.js +57 -127
  454. package/dist/esm/internal/core.js.map +1 -1
  455. package/dist/esm/internal/data.js.map +1 -1
  456. package/dist/esm/internal/defaultServices/console.js +1 -1
  457. package/dist/esm/internal/defaultServices/console.js.map +1 -1
  458. package/dist/esm/internal/defaultServices.js.map +1 -1
  459. package/dist/esm/internal/deferred.js.map +1 -1
  460. package/dist/esm/internal/differ/contextPatch.js +9 -9
  461. package/dist/esm/internal/differ/contextPatch.js.map +1 -1
  462. package/dist/esm/internal/effect/circular.js +5 -8
  463. package/dist/esm/internal/effect/circular.js.map +1 -1
  464. package/dist/esm/internal/effectable.js +4 -4
  465. package/dist/esm/internal/effectable.js.map +1 -1
  466. package/dist/esm/internal/fiber.js +2 -6
  467. package/dist/esm/internal/fiber.js.map +1 -1
  468. package/dist/esm/internal/fiberRuntime.js +10 -19
  469. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  470. package/dist/esm/internal/groupBy.js.map +1 -1
  471. package/dist/esm/internal/keyedPool.js.map +1 -1
  472. package/dist/esm/internal/layer/circular.js.map +1 -1
  473. package/dist/esm/internal/layer.js +3 -3
  474. package/dist/esm/internal/layer.js.map +1 -1
  475. package/dist/esm/internal/logSpan.js +3 -5
  476. package/dist/esm/internal/logSpan.js.map +1 -1
  477. package/dist/esm/internal/metric.js.map +1 -1
  478. package/dist/esm/internal/pool.js.map +1 -1
  479. package/dist/esm/internal/pubsub.js +1 -5
  480. package/dist/esm/internal/pubsub.js.map +1 -1
  481. package/dist/esm/internal/query.js.map +1 -1
  482. package/dist/esm/internal/queue.js.map +1 -1
  483. package/dist/esm/internal/random.js +1 -1
  484. package/dist/esm/internal/random.js.map +1 -1
  485. package/dist/esm/internal/rateLimiter.js +12 -0
  486. package/dist/esm/internal/rateLimiter.js.map +1 -0
  487. package/dist/esm/internal/ref.js.map +1 -1
  488. package/dist/esm/internal/reloadable.js +1 -9
  489. package/dist/esm/internal/reloadable.js.map +1 -1
  490. package/dist/esm/internal/runtime.js +0 -1
  491. package/dist/esm/internal/runtime.js.map +1 -1
  492. package/dist/esm/internal/schedule.js.map +1 -1
  493. package/dist/esm/internal/scopedCache.js.map +1 -1
  494. package/dist/esm/internal/scopedRef.js.map +1 -1
  495. package/dist/esm/internal/sink.js +7 -7
  496. package/dist/esm/internal/sink.js.map +1 -1
  497. package/dist/esm/internal/stm/core.js.map +1 -1
  498. package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
  499. package/dist/esm/internal/stm/stm/tExit.js +2 -2
  500. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  501. package/dist/esm/internal/stm/stm/tryCommit.js.map +1 -1
  502. package/dist/esm/internal/stm/stm.js.map +1 -1
  503. package/dist/esm/internal/stm/tArray.js.map +1 -1
  504. package/dist/esm/internal/stm/tDeferred.js +4 -2
  505. package/dist/esm/internal/stm/tDeferred.js.map +1 -1
  506. package/dist/esm/internal/stm/tMap.js.map +1 -1
  507. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  508. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  509. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  510. package/dist/esm/internal/stm/tRandom.js +1 -1
  511. package/dist/esm/internal/stm/tRandom.js.map +1 -1
  512. package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
  513. package/dist/esm/internal/stm/tRef.js.map +1 -1
  514. package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
  515. package/dist/esm/internal/stm/tSet.js.map +1 -1
  516. package/dist/esm/internal/stream/debounceState.js.map +1 -1
  517. package/dist/esm/internal/stream/handoff.js.map +1 -1
  518. package/dist/esm/internal/stream/handoffSignal.js.map +1 -1
  519. package/dist/esm/internal/stream/pull.js.map +1 -1
  520. package/dist/esm/internal/stream.js +0 -2
  521. package/dist/esm/internal/stream.js.map +1 -1
  522. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  523. package/dist/esm/internal/supervisor.js.map +1 -1
  524. package/dist/esm/internal/take.js +2 -2
  525. package/dist/esm/internal/take.js.map +1 -1
  526. package/dist/esm/internal/testing/sleep.js.map +1 -1
  527. package/dist/esm/internal/tracer.js +2 -2
  528. package/dist/esm/internal/tracer.js.map +1 -1
  529. package/dist/esm/internal/version.js +1 -1
  530. package/package.json +9 -1
  531. package/src/Cache.ts +20 -20
  532. package/src/Cause.ts +37 -13
  533. package/src/Channel.ts +802 -794
  534. package/src/Clock.ts +7 -7
  535. package/src/Config.ts +1 -1
  536. package/src/ConfigProvider.ts +6 -6
  537. package/src/Console.ts +44 -48
  538. package/src/Context.ts +52 -30
  539. package/src/Data.ts +38 -61
  540. package/src/Deferred.ts +39 -41
  541. package/src/Effect.ts +1187 -1206
  542. package/src/Effectable.ts +8 -8
  543. package/src/Either.ts +2 -3
  544. package/src/Exit.ts +88 -105
  545. package/src/Fiber.ts +77 -83
  546. package/src/FiberMap.ts +77 -77
  547. package/src/FiberRef.ts +28 -28
  548. package/src/FiberRefs.ts +1 -1
  549. package/src/FiberSet.ts +61 -62
  550. package/src/GroupBy.ts +8 -12
  551. package/src/KeyedPool.ts +22 -22
  552. package/src/Layer.ts +187 -181
  553. package/src/LogLevel.ts +7 -6
  554. package/src/Logger.ts +18 -18
  555. package/src/MergeDecision.ts +7 -7
  556. package/src/MergeState.ts +16 -16
  557. package/src/Metric.ts +39 -39
  558. package/src/MetricPolling.ts +6 -6
  559. package/src/Number.ts +19 -0
  560. package/src/Option.ts +2 -3
  561. package/src/Pool.ts +15 -16
  562. package/src/PubSub.ts +18 -18
  563. package/src/Queue.ts +43 -46
  564. package/src/Random.ts +13 -15
  565. package/src/RateLimiter.ts +37 -0
  566. package/src/ReadonlyRecord.ts +49 -8
  567. package/src/Ref.ts +25 -25
  568. package/src/Reloadable.ts +10 -10
  569. package/src/Request.ts +31 -31
  570. package/src/RequestBlock.ts +3 -3
  571. package/src/RequestResolver.ts +21 -21
  572. package/src/Resource.ts +13 -13
  573. package/src/Runtime.ts +16 -19
  574. package/src/RuntimeFlags.ts +10 -10
  575. package/src/STM.ts +361 -362
  576. package/src/Schedule.ts +47 -47
  577. package/src/Scheduler.ts +2 -2
  578. package/src/Scope.ts +14 -15
  579. package/src/ScopedCache.ts +14 -14
  580. package/src/ScopedRef.ts +7 -7
  581. package/src/SingleProducerAsyncInput.ts +8 -9
  582. package/src/Sink.ts +357 -381
  583. package/src/Stream.ts +935 -1033
  584. package/src/StreamEmit.ts +5 -5
  585. package/src/Streamable.ts +2 -2
  586. package/src/SubscriptionRef.ts +51 -51
  587. package/src/Supervisor.ts +26 -26
  588. package/src/SynchronizedRef.ts +44 -44
  589. package/src/TArray.ts +74 -74
  590. package/src/TDeferred.ts +14 -14
  591. package/src/TMap.ts +72 -72
  592. package/src/TPriorityQueue.ts +23 -24
  593. package/src/TPubSub.ts +15 -15
  594. package/src/TQueue.ts +40 -40
  595. package/src/TRandom.ts +13 -13
  596. package/src/TReentrantLock.ts +21 -21
  597. package/src/TRef.ts +25 -25
  598. package/src/TSemaphore.ts +15 -15
  599. package/src/TSet.ts +49 -49
  600. package/src/Take.ts +51 -51
  601. package/src/TestAnnotation.ts +6 -17
  602. package/src/TestAnnotations.ts +7 -9
  603. package/src/TestClock.ts +39 -45
  604. package/src/TestConfig.ts +1 -3
  605. package/src/TestContext.ts +3 -3
  606. package/src/TestLive.ts +3 -5
  607. package/src/TestServices.ts +45 -47
  608. package/src/TestSized.ts +5 -5
  609. package/src/Tracer.ts +1 -1
  610. package/src/Utils.ts +8 -10
  611. package/src/index.ts +13 -2
  612. package/src/internal/blockedRequests.ts +2 -2
  613. package/src/internal/cache.ts +38 -38
  614. package/src/internal/channel/channelExecutor.ts +65 -73
  615. package/src/internal/channel/channelState.ts +11 -11
  616. package/src/internal/channel/continuation.ts +10 -10
  617. package/src/internal/channel/mergeDecision.ts +14 -16
  618. package/src/internal/channel/mergeState.ts +12 -12
  619. package/src/internal/channel/singleProducerAsyncInput.ts +15 -17
  620. package/src/internal/channel/subexecutor.ts +7 -7
  621. package/src/internal/channel.ts +901 -980
  622. package/src/internal/clock.ts +6 -6
  623. package/src/internal/concurrency.ts +9 -9
  624. package/src/internal/configProvider.ts +29 -36
  625. package/src/internal/console.ts +12 -12
  626. package/src/internal/context.ts +32 -23
  627. package/src/internal/core-effect.ts +655 -616
  628. package/src/internal/core-stream.ts +317 -325
  629. package/src/internal/core.ts +856 -790
  630. package/src/internal/data.ts +2 -3
  631. package/src/internal/dataSource.ts +14 -14
  632. package/src/internal/defaultServices/console.ts +3 -1
  633. package/src/internal/defaultServices.ts +21 -21
  634. package/src/internal/deferred.ts +9 -9
  635. package/src/internal/differ/contextPatch.ts +17 -17
  636. package/src/internal/effect/circular.ts +154 -159
  637. package/src/internal/effectable.ts +7 -7
  638. package/src/internal/fiber.ts +55 -59
  639. package/src/internal/fiberRefs.ts +1 -1
  640. package/src/internal/fiberRuntime.ts +426 -463
  641. package/src/internal/groupBy.ts +59 -62
  642. package/src/internal/keyedPool.ts +37 -37
  643. package/src/internal/layer/circular.ts +37 -37
  644. package/src/internal/layer.ts +235 -240
  645. package/src/internal/logSpan.ts +3 -5
  646. package/src/internal/metric/polling.ts +5 -5
  647. package/src/internal/metric.ts +54 -55
  648. package/src/internal/pool.ts +72 -72
  649. package/src/internal/pubsub.ts +75 -84
  650. package/src/internal/query.ts +25 -27
  651. package/src/internal/queue.ts +65 -70
  652. package/src/internal/random.ts +9 -9
  653. package/src/internal/rateLimiter.ts +30 -0
  654. package/src/internal/ref.ts +24 -24
  655. package/src/internal/reloadable.ts +11 -31
  656. package/src/internal/request.ts +14 -14
  657. package/src/internal/resource.ts +8 -8
  658. package/src/internal/runtime.ts +21 -22
  659. package/src/internal/schedule.ts +131 -134
  660. package/src/internal/scopedCache.ts +35 -32
  661. package/src/internal/scopedRef.ts +14 -14
  662. package/src/internal/sink.ts +507 -565
  663. package/src/internal/stm/core.ts +101 -102
  664. package/src/internal/stm/stm/stmState.ts +10 -10
  665. package/src/internal/stm/stm/tExit.ts +18 -18
  666. package/src/internal/stm/stm/tryCommit.ts +5 -5
  667. package/src/internal/stm/stm.ts +363 -374
  668. package/src/internal/stm/tArray.ts +92 -92
  669. package/src/internal/stm/tDeferred.ts +16 -14
  670. package/src/internal/stm/tMap.ts +83 -84
  671. package/src/internal/stm/tPriorityQueue.ts +24 -25
  672. package/src/internal/stm/tPubSub.ts +37 -38
  673. package/src/internal/stm/tQueue.ts +44 -48
  674. package/src/internal/stm/tRandom.ts +18 -18
  675. package/src/internal/stm/tReentrantLock.ts +28 -28
  676. package/src/internal/stm/tRef.ts +25 -25
  677. package/src/internal/stm/tSemaphore.ts +16 -16
  678. package/src/internal/stm/tSet.ts +51 -52
  679. package/src/internal/stream/debounceState.ts +7 -7
  680. package/src/internal/stream/emit.ts +4 -4
  681. package/src/internal/stream/handoff.ts +19 -19
  682. package/src/internal/stream/handoffSignal.ts +4 -4
  683. package/src/internal/stream/pull.ts +10 -11
  684. package/src/internal/stream.ts +1770 -1788
  685. package/src/internal/subscriptionRef.ts +17 -17
  686. package/src/internal/supervisor.ts +49 -56
  687. package/src/internal/synchronizedRef.ts +27 -27
  688. package/src/internal/take.ts +61 -61
  689. package/src/internal/testing/sleep.ts +2 -2
  690. package/src/internal/testing/suspendedWarningData.ts +2 -2
  691. package/src/internal/testing/warningData.ts +2 -2
  692. package/src/internal/tracer.ts +2 -6
  693. package/src/internal/version.ts +1 -1
@@ -44,8 +44,8 @@ class Semaphore {
44
44
  return this.permits - this.taken
45
45
  }
46
46
 
47
- readonly take = (n: number): Effect.Effect<never, never, number> =>
48
- core.asyncEither<never, never, number>((resume) => {
47
+ readonly take = (n: number): Effect.Effect<number> =>
48
+ core.asyncEither<number>((resume) => {
49
49
  if (this.free < n) {
50
50
  const observer = () => {
51
51
  if (this.free < n) {
@@ -65,8 +65,8 @@ class Semaphore {
65
65
  return Either.right(core.succeed(n))
66
66
  })
67
67
 
68
- readonly updateTaken = (f: (n: number) => number): Effect.Effect<never, never, void> =>
69
- core.withFiberRuntime<never, never, void>((fiber) => {
68
+ readonly updateTaken = (f: (n: number) => number): Effect.Effect<void> =>
69
+ core.withFiberRuntime((fiber) => {
70
70
  this.taken = f(this.taken)
71
71
  fiber.getFiberRef(currentScheduler).scheduleTask(() => {
72
72
  const iter = this.waiters.values()
@@ -78,9 +78,9 @@ class Semaphore {
78
78
  return core.unit
79
79
  })
80
80
 
81
- readonly release = (n: number): Effect.Effect<never, never, void> => this.updateTaken((taken) => taken - n)
81
+ readonly release = (n: number): Effect.Effect<void> => this.updateTaken((taken) => taken - n)
82
82
 
83
- readonly releaseAll: Effect.Effect<never, never, void> = this.updateTaken((_) => 0)
83
+ readonly releaseAll: Effect.Effect<void> = this.updateTaken((_) => 0)
84
84
 
85
85
  readonly withPermits = (n: number) => <R, E, A>(self: Effect.Effect<R, E, A>) =>
86
86
  core.uninterruptibleMask((restore) =>
@@ -92,79 +92,85 @@ class Semaphore {
92
92
  }
93
93
 
94
94
  /** @internal */
95
- export const unsafeMakeSemaphore = (leases: number) => {
96
- return new Semaphore(leases)
97
- }
95
+ export const unsafeMakeSemaphore = (permits: number): Semaphore => new Semaphore(permits)
98
96
 
99
97
  /** @internal */
100
98
  export const makeSemaphore = (permits: number) => core.sync(() => unsafeMakeSemaphore(permits))
101
99
 
102
100
  /** @internal */
103
- export const awaitAllChildren = <R, E, A>(self: Effect.Effect<R, E, A>): Effect.Effect<R, E, A> =>
101
+ export const awaitAllChildren = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
104
102
  ensuringChildren(self, fiberRuntime.fiberAwaitAll)
105
103
 
106
104
  /** @internal */
107
- export const cached = dual<
105
+ export const cached: {
108
106
  (
109
107
  timeToLive: Duration.DurationInput
110
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, never, Effect.Effect<never, E, A>>,
111
- <R, E, A>(
112
- self: Effect.Effect<R, E, A>,
108
+ ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Effect.Effect<A, E>, never, R>
109
+ <A, E, R>(
110
+ self: Effect.Effect<A, E, R>,
111
+ timeToLive: Duration.DurationInput
112
+ ): Effect.Effect<Effect.Effect<A, E>, never, R>
113
+ } = dual(
114
+ 2,
115
+ <A, E, R>(
116
+ self: Effect.Effect<A, E, R>,
113
117
  timeToLive: Duration.DurationInput
114
- ) => Effect.Effect<R, never, Effect.Effect<never, E, A>>
115
- >(2, (self, timeToLive) => core.map(cachedInvalidate(self, timeToLive), (tuple) => tuple[0]))
118
+ ): Effect.Effect<Effect.Effect<A, E>, never, R> =>
119
+ core.map(cachedInvalidateWithTTL(self, timeToLive), (tuple) => tuple[0])
120
+ )
116
121
 
117
122
  /** @internal */
118
- export const cachedInvalidate = dual<
119
- (
120
- timeToLive: Duration.DurationInput
121
- ) => <R, E, A>(
122
- self: Effect.Effect<R, E, A>
123
- ) => Effect.Effect<R, never, [Effect.Effect<never, E, A>, Effect.Effect<never, never, void>]>,
124
- <R, E, A>(
125
- self: Effect.Effect<R, E, A>,
123
+ export const cachedInvalidateWithTTL: {
124
+ (timeToLive: Duration.DurationInput): <A, E, R>(
125
+ self: Effect.Effect<A, E, R>
126
+ ) => Effect.Effect<[Effect.Effect<A, E>, Effect.Effect<void>], never, R>
127
+ <A, E, R>(
128
+ self: Effect.Effect<A, E, R>,
126
129
  timeToLive: Duration.DurationInput
127
- ) => Effect.Effect<R, never, [Effect.Effect<never, E, A>, Effect.Effect<never, never, void>]>
128
- >(
130
+ ): Effect.Effect<[Effect.Effect<A, E>, Effect.Effect<void>], never, R>
131
+ } = dual(
129
132
  2,
130
- <R, E, A>(self: Effect.Effect<R, E, A>, timeToLive: Duration.DurationInput) => {
133
+ <A, E, R>(
134
+ self: Effect.Effect<A, E, R>,
135
+ timeToLive: Duration.DurationInput
136
+ ): Effect.Effect<[Effect.Effect<A, E>, Effect.Effect<void>], never, R> => {
131
137
  const duration = Duration.decode(timeToLive)
132
138
  return core.flatMap(
133
139
  core.context<R>(),
134
140
  (env) =>
135
141
  core.map(
136
- makeSynchronized<Option.Option<readonly [number, Deferred.Deferred<E, A>]>>(Option.none()),
142
+ makeSynchronized<Option.Option<readonly [number, Deferred.Deferred<A, E>]>>(Option.none()),
137
143
  (cache) =>
138
144
  [
139
145
  core.provideContext(getCachedValue(self, duration, cache), env),
140
146
  invalidateCache(cache)
141
- ] as [Effect.Effect<never, E, A>, Effect.Effect<never, never, void>]
147
+ ] as [Effect.Effect<A, E>, Effect.Effect<void>]
142
148
  )
143
149
  )
144
150
  }
145
151
  )
146
152
 
147
153
  /** @internal */
148
- const computeCachedValue = <R, E, A>(
149
- self: Effect.Effect<R, E, A>,
154
+ const computeCachedValue = <A, E, R>(
155
+ self: Effect.Effect<A, E, R>,
150
156
  timeToLive: Duration.DurationInput,
151
157
  start: number
152
- ): Effect.Effect<R, never, Option.Option<[number, Deferred.Deferred<E, A>]>> => {
158
+ ): Effect.Effect<Option.Option<[number, Deferred.Deferred<A, E>]>, never, R> => {
153
159
  const timeToLiveMillis = Duration.toMillis(Duration.decode(timeToLive))
154
160
  return pipe(
155
- core.deferredMake<E, A>(),
161
+ core.deferredMake<A, E>(),
156
162
  core.tap((deferred) => core.intoDeferred(self, deferred)),
157
163
  core.map((deferred) => Option.some([start + timeToLiveMillis, deferred]))
158
164
  )
159
165
  }
160
166
 
161
167
  /** @internal */
162
- const getCachedValue = <R, E, A>(
163
- self: Effect.Effect<R, E, A>,
168
+ const getCachedValue = <A, E, R>(
169
+ self: Effect.Effect<A, E, R>,
164
170
  timeToLive: Duration.DurationInput,
165
- cache: Synchronized.SynchronizedRef<Option.Option<readonly [number, Deferred.Deferred<E, A>]>>
166
- ): Effect.Effect<R, E, A> =>
167
- core.uninterruptibleMask<R, E, A>((restore) =>
171
+ cache: Synchronized.SynchronizedRef<Option.Option<readonly [number, Deferred.Deferred<A, E>]>>
172
+ ): Effect.Effect<A, E, R> =>
173
+ core.uninterruptibleMask((restore) =>
168
174
  pipe(
169
175
  effect.clockWith((clock) => clock.currentTimeMillis),
170
176
  core.flatMap((time) =>
@@ -193,32 +199,32 @@ const getCachedValue = <R, E, A>(
193
199
  )
194
200
 
195
201
  /** @internal */
196
- const invalidateCache = <E, A>(
197
- cache: Synchronized.SynchronizedRef<Option.Option<readonly [number, Deferred.Deferred<E, A>]>>
198
- ): Effect.Effect<never, never, void> => internalRef.set(cache, Option.none())
202
+ const invalidateCache = <A, E>(
203
+ cache: Synchronized.SynchronizedRef<Option.Option<readonly [number, Deferred.Deferred<A, E>]>>
204
+ ): Effect.Effect<void> => internalRef.set(cache, Option.none())
199
205
 
200
206
  /** @internal */
201
207
  export const ensuringChild = dual<
202
- <R2, X>(
203
- f: (fiber: Fiber.Fiber<any, ReadonlyArray<unknown>>) => Effect.Effect<R2, never, X>
204
- ) => <R, E, A>(
205
- self: Effect.Effect<R, E, A>
206
- ) => Effect.Effect<R | R2, E, A>,
207
- <R, E, A, R2, X>(
208
- self: Effect.Effect<R, E, A>,
209
- f: (fiber: Fiber.Fiber<any, ReadonlyArray<unknown>>) => Effect.Effect<R2, never, X>
210
- ) => Effect.Effect<R | R2, E, A>
208
+ <X, R2>(
209
+ f: (fiber: Fiber.Fiber<ReadonlyArray<unknown>, any>) => Effect.Effect<X, never, R2>
210
+ ) => <A, E, R>(
211
+ self: Effect.Effect<A, E, R>
212
+ ) => Effect.Effect<A, E, R | R2>,
213
+ <A, E, R, X, R2>(
214
+ self: Effect.Effect<A, E, R>,
215
+ f: (fiber: Fiber.Fiber<ReadonlyArray<unknown>, any>) => Effect.Effect<X, never, R2>
216
+ ) => Effect.Effect<A, E, R | R2>
211
217
  >(2, (self, f) => ensuringChildren(self, (children) => f(fiberRuntime.fiberAll(children))))
212
218
 
213
219
  /** @internal */
214
220
  export const ensuringChildren = dual<
215
- <R1, X>(
216
- children: (fibers: ReadonlyArray<Fiber.RuntimeFiber<any, any>>) => Effect.Effect<R1, never, X>
217
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R | R1, E, A>,
218
- <R, E, A, R1, X>(
219
- self: Effect.Effect<R, E, A>,
220
- children: (fibers: ReadonlyArray<Fiber.RuntimeFiber<any, any>>) => Effect.Effect<R1, never, X>
221
- ) => Effect.Effect<R | R1, E, A>
221
+ <X, R2>(
222
+ children: (fibers: ReadonlyArray<Fiber.RuntimeFiber<any, any>>) => Effect.Effect<X, never, R2>
223
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R | R2>,
224
+ <A, E, R, X, R2>(
225
+ self: Effect.Effect<A, E, R>,
226
+ children: (fibers: ReadonlyArray<Fiber.RuntimeFiber<any, any>>) => Effect.Effect<X, never, R2>
227
+ ) => Effect.Effect<A, E, R | R2>
222
228
  >(2, (self, children) =>
223
229
  core.flatMap(supervisor.track, (supervisor) =>
224
230
  pipe(
@@ -227,46 +233,35 @@ export const ensuringChildren = dual<
227
233
  )))
228
234
 
229
235
  /** @internal */
230
- // @ts-expect-error
231
- export const forkAll = dual<
232
- {
233
- (options?: {
236
+ export const forkAll: {
237
+ (
238
+ options?: {
234
239
  readonly discard?: false | undefined
235
- }): <R, E, A>(
236
- effects: Iterable<Effect.Effect<R, E, A>>
237
- ) => Effect.Effect<R, never, Fiber.Fiber<E, Array<A>>>
238
- (options: {
239
- readonly discard: true
240
- }): <R, E, A>(
241
- effects: Iterable<Effect.Effect<R, E, A>>
242
- ) => Effect.Effect<R, never, void>
243
- },
244
- {
245
- <R, E, A>(
246
- effects: Iterable<Effect.Effect<R, E, A>>,
247
- options?: {
248
- readonly discard?: false | undefined
249
- }
250
- ): Effect.Effect<R, never, Fiber.Fiber<E, Array<A>>>
251
- <R, E, A>(
252
- effects: Iterable<Effect.Effect<R, E, A>>,
253
- options: {
254
- readonly discard: true
255
- }
256
- ): Effect.Effect<R, never, void>
257
- }
258
- >((args) => Predicate.isIterable(args[0]), (
259
- effects,
260
- options
261
- ) =>
240
+ }
241
+ ): <A, E, R>(effects: Iterable<Effect.Effect<A, E, R>>) => Effect.Effect<Fiber.Fiber<Array<A>, E>, never, R>
242
+ (options: {
243
+ readonly discard: true
244
+ }): <A, E, R>(effects: Iterable<Effect.Effect<A, E, R>>) => Effect.Effect<void, never, R>
245
+ <A, E, R>(
246
+ effects: Iterable<Effect.Effect<A, E, R>>,
247
+ options?: {
248
+ readonly discard?: false | undefined
249
+ }
250
+ ): Effect.Effect<Fiber.Fiber<Array<A>, E>, never, R>
251
+ <A, E, R>(effects: Iterable<Effect.Effect<A, E, R>>, options: {
252
+ readonly discard: true
253
+ }): Effect.Effect<void, never, R>
254
+ } = dual((args) => Predicate.isIterable(args[0]), <A, E, R>(effects: Iterable<Effect.Effect<A, E, R>>, options: {
255
+ readonly discard: true
256
+ }): Effect.Effect<void, never, R> =>
262
257
  options?.discard ?
263
258
  core.forEachSequentialDiscard(effects, fiberRuntime.fork) :
264
259
  core.map(core.forEachSequential(effects, fiberRuntime.fork), fiberRuntime.fiberAll))
265
260
 
266
261
  /** @internal */
267
262
  export const forkIn = dual<
268
- (scope: Scope.Scope) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, never, Fiber.RuntimeFiber<E, A>>,
269
- <R, E, A>(self: Effect.Effect<R, E, A>, scope: Scope.Scope) => Effect.Effect<R, never, Fiber.RuntimeFiber<E, A>>
263
+ (scope: Scope.Scope) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<A, E>, never, R>,
264
+ <A, E, R>(self: Effect.Effect<A, E, R>, scope: Scope.Scope) => Effect.Effect<Fiber.RuntimeFiber<A, E>, never, R>
270
265
  >(
271
266
  2,
272
267
  (self, scope) =>
@@ -290,16 +285,16 @@ export const forkIn = dual<
290
285
  )
291
286
 
292
287
  /** @internal */
293
- export const forkScoped = <R, E, A>(
294
- self: Effect.Effect<R, E, A>
295
- ): Effect.Effect<R | Scope.Scope, never, Fiber.RuntimeFiber<E, A>> =>
288
+ export const forkScoped = <A, E, R>(
289
+ self: Effect.Effect<A, E, R>
290
+ ): Effect.Effect<Fiber.RuntimeFiber<A, E>, never, R | Scope.Scope> =>
296
291
  fiberRuntime.scopeWith((scope) => forkIn(self, scope))
297
292
 
298
293
  /** @internal */
299
- export const fromFiber = <E, A>(fiber: Fiber.Fiber<E, A>): Effect.Effect<never, E, A> => internalFiber.join(fiber)
294
+ export const fromFiber = <A, E>(fiber: Fiber.Fiber<A, E>): Effect.Effect<A, E> => internalFiber.join(fiber)
300
295
 
301
296
  /** @internal */
302
- export const fromFiberEffect = <R, E, A>(fiber: Effect.Effect<R, E, Fiber.Fiber<E, A>>): Effect.Effect<R, E, A> =>
297
+ export const fromFiberEffect = <A, E, R>(fiber: Effect.Effect<Fiber.Fiber<A, E>, E, R>): Effect.Effect<A, E, R> =>
303
298
  core.suspend(() => core.flatMap(fiber, internalFiber.join))
304
299
 
305
300
  const memoKeySymbol = Symbol.for("effect/Effect/memoizeFunction.key")
@@ -323,12 +318,12 @@ class Key<in out A> implements Equal.Equal {
323
318
  }
324
319
 
325
320
  /** @internal */
326
- export const memoizeFunction = <R, E, A, B>(
327
- f: (a: A) => Effect.Effect<R, E, B>,
321
+ export const cachedFunction = <A, B, E, R>(
322
+ f: (a: A) => Effect.Effect<B, E, R>,
328
323
  eq?: Equivalence<A>
329
- ): Effect.Effect<never, never, (a: A) => Effect.Effect<R, E, B>> => {
324
+ ): Effect.Effect<(a: A) => Effect.Effect<B, E, R>> => {
330
325
  return pipe(
331
- core.sync(() => MutableHashMap.empty<Key<A>, Deferred.Deferred<E, readonly [FiberRefsPatch.FiberRefsPatch, B]>>()),
326
+ core.sync(() => MutableHashMap.empty<Key<A>, Deferred.Deferred<readonly [FiberRefsPatch.FiberRefsPatch, B], E>>()),
332
327
  core.flatMap(makeSynchronized),
333
328
  core.map((ref) => (a: A) =>
334
329
  pipe(
@@ -336,7 +331,7 @@ export const memoizeFunction = <R, E, A, B>(
336
331
  const result = pipe(map, MutableHashMap.get(new Key(a, eq)))
337
332
  if (Option.isNone(result)) {
338
333
  return pipe(
339
- core.deferredMake<E, readonly [FiberRefsPatch.FiberRefsPatch, B]>(),
334
+ core.deferredMake<readonly [FiberRefsPatch.FiberRefsPatch, B], E>(),
340
335
  core.tap((deferred) =>
341
336
  pipe(
342
337
  effect.diffFiberRefs(f(a)),
@@ -358,42 +353,42 @@ export const memoizeFunction = <R, E, A, B>(
358
353
 
359
354
  /** @internal */
360
355
  export const raceFirst = dual<
361
- <R2, E2, A2>(
362
- that: Effect.Effect<R2, E2, A2>
363
- ) => <R, E, A>(
364
- self: Effect.Effect<R, E, A>
365
- ) => Effect.Effect<R | R2, E2 | E, A2 | A>,
366
- <R, E, A, R2, E2, A2>(
367
- self: Effect.Effect<R, E, A>,
368
- that: Effect.Effect<R2, E2, A2>
369
- ) => Effect.Effect<R | R2, E2 | E, A2 | A>
370
- >(2, <R, E, A, R2, E2, A2>(
371
- self: Effect.Effect<R, E, A>,
372
- that: Effect.Effect<R2, E2, A2>
356
+ <A2, E2, R2>(
357
+ that: Effect.Effect<A2, E2, R2>
358
+ ) => <A, E, R>(
359
+ self: Effect.Effect<A, E, R>
360
+ ) => Effect.Effect<A2 | A, E2 | E, R | R2>,
361
+ <A, E, R, A2, E2, R2>(
362
+ self: Effect.Effect<A, E, R>,
363
+ that: Effect.Effect<A2, E2, R2>
364
+ ) => Effect.Effect<A2 | A, E2 | E, R | R2>
365
+ >(2, <A, E, R, A2, E2, R2>(
366
+ self: Effect.Effect<A, E, R>,
367
+ that: Effect.Effect<A2, E2, R2>
373
368
  ) =>
374
369
  pipe(
375
370
  core.exit(self),
376
371
  fiberRuntime.race(core.exit(that)),
377
- (effect: Effect.Effect<R | R2, never, Exit.Exit<E | E2, A | A2>>) => core.flatten(effect)
372
+ (effect: Effect.Effect<Exit.Exit<A | A2, E | E2>, never, R | R2>) => core.flatten(effect)
378
373
  ))
379
374
 
380
375
  /** @internal */
381
376
  export const scheduleForked = dual<
382
377
  <R2, Out>(
383
378
  schedule: Schedule.Schedule<R2, unknown, Out>
384
- ) => <R, E, A>(
385
- self: Effect.Effect<R, E, A>
386
- ) => Effect.Effect<R | R2 | Scope.Scope, never, Fiber.RuntimeFiber<E, Out>>,
387
- <R, E, A, R2, Out>(
388
- self: Effect.Effect<R, E, A>,
379
+ ) => <A, E, R>(
380
+ self: Effect.Effect<A, E, R>
381
+ ) => Effect.Effect<Fiber.RuntimeFiber<Out, E>, never, R | R2 | Scope.Scope>,
382
+ <A, E, R, R2, Out>(
383
+ self: Effect.Effect<A, E, R>,
389
384
  schedule: Schedule.Schedule<R2, unknown, Out>
390
- ) => Effect.Effect<R | R2 | Scope.Scope, never, Fiber.RuntimeFiber<E, Out>>
385
+ ) => Effect.Effect<Fiber.RuntimeFiber<Out, E>, never, R | R2 | Scope.Scope>
391
386
  >(2, (self, schedule) => pipe(self, _schedule.schedule_Effect(schedule), forkScoped))
392
387
 
393
388
  /** @internal */
394
389
  export const supervised = dual<
395
- <X>(supervisor: Supervisor.Supervisor<X>) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
396
- <R, E, A, X>(self: Effect.Effect<R, E, A>, supervisor: Supervisor.Supervisor<X>) => Effect.Effect<R, E, A>
390
+ <X>(supervisor: Supervisor.Supervisor<X>) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
391
+ <A, E, R, X>(self: Effect.Effect<A, E, R>, supervisor: Supervisor.Supervisor<X>) => Effect.Effect<A, E, R>
397
392
  >(2, (self, supervisor) => {
398
393
  const supervise = core.fiberRefLocallyWith(fiberRuntime.currentSupervisor, (s) => s.zip(supervisor))
399
394
  return supervise(self)
@@ -403,14 +398,14 @@ export const supervised = dual<
403
398
  export const timeout = dual<
404
399
  (
405
400
  duration: Duration.DurationInput
406
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E | Cause.NoSuchElementException, A>,
407
- <R, E, A>(
408
- self: Effect.Effect<R, E, A>,
401
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | Cause.TimeoutException, R>,
402
+ <A, E, R>(
403
+ self: Effect.Effect<A, E, R>,
409
404
  duration: Duration.DurationInput
410
- ) => Effect.Effect<R, E | Cause.NoSuchElementException, A>
405
+ ) => Effect.Effect<A, E | Cause.TimeoutException, R>
411
406
  >(2, (self, duration) =>
412
407
  timeoutFail(self, {
413
- onTimeout: () => new core.NoSuchElementException(),
408
+ onTimeout: () => new core.TimeoutException(),
414
409
  duration
415
410
  }))
416
411
 
@@ -421,14 +416,14 @@ export const timeoutFail = dual<
421
416
  readonly onTimeout: LazyArg<E1>
422
417
  readonly duration: Duration.DurationInput
423
418
  }
424
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E | E1, A>,
425
- <R, E, A, E1>(
426
- self: Effect.Effect<R, E, A>,
419
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E1, R>,
420
+ <A, E, R, E1>(
421
+ self: Effect.Effect<A, E, R>,
427
422
  options: {
428
423
  readonly onTimeout: LazyArg<E1>
429
424
  readonly duration: Duration.DurationInput
430
425
  }
431
- ) => Effect.Effect<R, E | E1, A>
426
+ ) => Effect.Effect<A, E | E1, R>
432
427
  >(2, (self, { duration, onTimeout }) =>
433
428
  core.flatten(timeoutTo(self, {
434
429
  onTimeout: () => core.failSync(onTimeout),
@@ -443,14 +438,14 @@ export const timeoutFailCause = dual<
443
438
  readonly onTimeout: LazyArg<Cause.Cause<E1>>
444
439
  readonly duration: Duration.DurationInput
445
440
  }
446
- ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E | E1, A>,
447
- <R, E, A, E1>(
448
- self: Effect.Effect<R, E, A>,
441
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E1, R>,
442
+ <A, E, R, E1>(
443
+ self: Effect.Effect<A, E, R>,
449
444
  options: {
450
445
  readonly onTimeout: LazyArg<Cause.Cause<E1>>
451
446
  readonly duration: Duration.DurationInput
452
447
  }
453
- ) => Effect.Effect<R, E | E1, A>
448
+ ) => Effect.Effect<A, E | E1, R>
454
449
  >(2, (self, { duration, onTimeout }) =>
455
450
  core.flatten(timeoutTo(self, {
456
451
  onTimeout: () => core.failCauseSync(onTimeout),
@@ -466,15 +461,15 @@ export const timeoutTo = dual<
466
461
  readonly onSuccess: (a: A) => B
467
462
  readonly duration: Duration.DurationInput
468
463
  }
469
- ) => <R, E>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, B | B1>,
470
- <R, E, A, B, B1>(
471
- self: Effect.Effect<R, E, A>,
464
+ ) => <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<B | B1, E, R>,
465
+ <A, E, R, B1, B>(
466
+ self: Effect.Effect<A, E, R>,
472
467
  options: {
473
468
  readonly onTimeout: LazyArg<B1>
474
469
  readonly onSuccess: (a: A) => B
475
470
  readonly duration: Duration.DurationInput
476
471
  }
477
- ) => Effect.Effect<R, E, B | B1>
472
+ ) => Effect.Effect<B | B1, E, R>
478
473
  >(2, (self, { duration, onSuccess, onTimeout }) =>
479
474
  core.fiberIdWith((parentFiberId) =>
480
475
  fiberRuntime.raceFibersWith(
@@ -550,12 +545,12 @@ class SynchronizedImpl<in out A> implements Synchronized.SynchronizedRef<A> {
550
545
  readonly [internalRef.RefTypeId] = internalRef.refVariance
551
546
  constructor(
552
547
  readonly ref: Ref.Ref<A>,
553
- readonly withLock: <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
548
+ readonly withLock: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
554
549
  ) {}
555
- modify<B>(f: (a: A) => readonly [B, A]): Effect.Effect<never, never, B> {
550
+ modify<B>(f: (a: A) => readonly [B, A]): Effect.Effect<B> {
556
551
  return this.modifyEffect((a) => core.succeed(f(a)))
557
552
  }
558
- modifyEffect<R, E, B>(f: (a: A) => Effect.Effect<R, E, readonly [B, A]>): Effect.Effect<R, E, B> {
553
+ modifyEffect<B, E, R>(f: (a: A) => Effect.Effect<readonly [B, A], E, R>): Effect.Effect<B, E, R> {
559
554
  return this.withLock(
560
555
  pipe(
561
556
  core.flatMap(internalRef.get(this.ref), f),
@@ -569,7 +564,7 @@ class SynchronizedImpl<in out A> implements Synchronized.SynchronizedRef<A> {
569
564
  }
570
565
 
571
566
  /** @internal */
572
- export const makeSynchronized = <A>(value: A): Effect.Effect<never, never, Synchronized.SynchronizedRef<A>> =>
567
+ export const makeSynchronized = <A>(value: A): Effect.Effect<Synchronized.SynchronizedRef<A>> =>
573
568
  core.sync(() => unsafeMakeSynchronized(value))
574
569
 
575
570
  /** @internal */
@@ -582,12 +577,12 @@ export const unsafeMakeSynchronized = <A>(value: A): Synchronized.SynchronizedRe
582
577
  /** @internal */
583
578
  export const updateSomeAndGetEffectSynchronized = dual<
584
579
  <A, R, E>(
585
- pf: (a: A) => Option.Option<Effect.Effect<R, E, A>>
586
- ) => (self: Synchronized.SynchronizedRef<A>) => Effect.Effect<R, E, A>,
580
+ pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>
581
+ ) => (self: Synchronized.SynchronizedRef<A>) => Effect.Effect<A, E, R>,
587
582
  <A, R, E>(
588
583
  self: Synchronized.SynchronizedRef<A>,
589
- pf: (a: A) => Option.Option<Effect.Effect<R, E, A>>
590
- ) => Effect.Effect<R, E, A>
584
+ pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>
585
+ ) => Effect.Effect<A, E, R>
591
586
  >(2, (self, pf) =>
592
587
  self.modifyEffect((value) => {
593
588
  const result = pf(value)
@@ -605,33 +600,33 @@ export const updateSomeAndGetEffectSynchronized = dual<
605
600
 
606
601
  /** @internal */
607
602
  export const zipFiber = dual<
608
- <E2, A2>(that: Fiber.Fiber<E2, A2>) => <E, A>(self: Fiber.Fiber<E, A>) => Fiber.Fiber<E | E2, [A, A2]>,
609
- <E, A, E2, A2>(self: Fiber.Fiber<E, A>, that: Fiber.Fiber<E2, A2>) => Fiber.Fiber<E | E2, [A, A2]>
603
+ <A2, E2>(that: Fiber.Fiber<A2, E2>) => <A, E>(self: Fiber.Fiber<A, E>) => Fiber.Fiber<[A, A2], E | E2>,
604
+ <A, E, A2, E2>(self: Fiber.Fiber<A, E>, that: Fiber.Fiber<A2, E2>) => Fiber.Fiber<[A, A2], E | E2>
610
605
  >(2, (self, that) => zipWithFiber(self, that, (a, b) => [a, b]))
611
606
 
612
607
  /** @internal */
613
608
  export const zipLeftFiber = dual<
614
- <E2, A2>(that: Fiber.Fiber<E2, A2>) => <E, A>(self: Fiber.Fiber<E, A>) => Fiber.Fiber<E | E2, A>,
615
- <E, A, E2, A2>(self: Fiber.Fiber<E, A>, that: Fiber.Fiber<E2, A2>) => Fiber.Fiber<E | E2, A>
609
+ <A2, E2>(that: Fiber.Fiber<A2, E2>) => <A, E>(self: Fiber.Fiber<A, E>) => Fiber.Fiber<A, E | E2>,
610
+ <A, E, A2, E2>(self: Fiber.Fiber<A, E>, that: Fiber.Fiber<A2, E2>) => Fiber.Fiber<A, E | E2>
616
611
  >(2, (self, that) => zipWithFiber(self, that, (a, _) => a))
617
612
 
618
613
  /** @internal */
619
614
  export const zipRightFiber = dual<
620
- <E2, A2>(that: Fiber.Fiber<E2, A2>) => <E, A>(self: Fiber.Fiber<E, A>) => Fiber.Fiber<E | E2, A2>,
621
- <E, A, E2, A2>(self: Fiber.Fiber<E, A>, that: Fiber.Fiber<E2, A2>) => Fiber.Fiber<E | E2, A2>
615
+ <A2, E2>(that: Fiber.Fiber<A2, E2>) => <A, E>(self: Fiber.Fiber<A, E>) => Fiber.Fiber<A2, E | E2>,
616
+ <A, E, A2, E2>(self: Fiber.Fiber<A, E>, that: Fiber.Fiber<A2, E2>) => Fiber.Fiber<A2, E | E2>
622
617
  >(2, (self, that) => zipWithFiber(self, that, (_, b) => b))
623
618
 
624
619
  /** @internal */
625
620
  export const zipWithFiber = dual<
626
- <E2, A, B, C>(
627
- that: Fiber.Fiber<E2, B>,
621
+ <B, E2, A, C>(
622
+ that: Fiber.Fiber<B, E2>,
628
623
  f: (a: A, b: B) => C
629
- ) => <E>(self: Fiber.Fiber<E, A>) => Fiber.Fiber<E | E2, C>,
630
- <E, A, E2, B, C>(
631
- self: Fiber.Fiber<E, A>,
632
- that: Fiber.Fiber<E2, B>,
624
+ ) => <E>(self: Fiber.Fiber<A, E>) => Fiber.Fiber<C, E | E2>,
625
+ <A, E, B, E2, C>(
626
+ self: Fiber.Fiber<A, E>,
627
+ that: Fiber.Fiber<B, E2>,
633
628
  f: (a: A, b: B) => C
634
- ) => Fiber.Fiber<E | E2, C>
629
+ ) => Fiber.Fiber<C, E | E2>
635
630
  >(3, (self, that, f) => ({
636
631
  [internalFiber.FiberTypeId]: internalFiber.fiberVariance,
637
632
  id: () => pipe(self.id(), FiberId.getOrElse(that.id())),
@@ -35,15 +35,15 @@ export const effectVariance = {
35
35
 
36
36
  const sinkVariance = {
37
37
  /* c8 ignore next */
38
- _R: (_: never) => _,
39
- /* c8 ignore next */
40
- _E: (_: never) => _,
38
+ _A: (_: never) => _,
41
39
  /* c8 ignore next */
42
40
  _In: (_: unknown) => _,
43
41
  /* c8 ignore next */
44
42
  _L: (_: never) => _,
45
43
  /* c8 ignore next */
46
- _Z: (_: never) => _
44
+ _E: (_: never) => _,
45
+ /* c8 ignore next */
46
+ _R: (_: never) => _
47
47
  }
48
48
 
49
49
  const channelVariance = {
@@ -64,7 +64,7 @@ const channelVariance = {
64
64
  }
65
65
 
66
66
  /** @internal */
67
- export const EffectPrototype: Effect.Effect<never, never, never> = {
67
+ export const EffectPrototype: Effect.Effect<never> & Equal.Equal = {
68
68
  [EffectTypeId]: effectVariance,
69
69
  [StreamTypeId]: effectVariance,
70
70
  [SinkTypeId]: sinkVariance,
@@ -101,13 +101,13 @@ export const StructuralPrototype: Equal.Equal = {
101
101
  }
102
102
 
103
103
  /** @internal */
104
- export const CommitPrototype: Effect.Effect<never, never, never> = {
104
+ export const CommitPrototype: Effect.Effect<never> = {
105
105
  ...EffectPrototype,
106
106
  _op: OpCodes.OP_COMMIT
107
107
  } as any
108
108
 
109
109
  /** @internal */
110
- export const StructuralCommitPrototype: Effect.Effect<never, never, never> = {
110
+ export const StructuralCommitPrototype: Effect.Effect<never> = {
111
111
  ...CommitPrototype,
112
112
  ...StructuralPrototype
113
113
  } as any