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/src/Layer.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * A `Layer<RIn, E, ROut>` describes how to build one or more services in your
2
+ * A `Layer<ROut, E, RIn>` describes how to build one or more services in your
3
3
  * application. Services can be injected into effects via
4
4
  * `Effect.provideService`. Effects can require services via `Effect.service`.
5
5
  *
@@ -59,7 +59,7 @@ export type LayerTypeId = typeof LayerTypeId
59
59
  * @since 2.0.0
60
60
  * @category models
61
61
  */
62
- export interface Layer<out RIn, out E, in ROut> extends Layer.Variance<RIn, E, ROut>, Pipeable {}
62
+ export interface Layer<in ROut, out E = never, out RIn = never> extends Layer.Variance<ROut, E, RIn>, Pipeable {}
63
63
 
64
64
  /**
65
65
  * @since 2.0.0
@@ -69,28 +69,31 @@ export declare namespace Layer {
69
69
  * @since 2.0.0
70
70
  * @category models
71
71
  */
72
- export interface Variance<out RIn, out E, in ROut> {
72
+ export interface Variance<in ROut, out E, out RIn> {
73
73
  readonly [LayerTypeId]: {
74
- readonly _RIn: Types.Covariant<RIn>
75
- readonly _E: Types.Covariant<E>
76
74
  readonly _ROut: Types.Contravariant<ROut>
75
+ readonly _E: Types.Covariant<E>
76
+ readonly _RIn: Types.Covariant<RIn>
77
77
  }
78
78
  }
79
79
  /**
80
80
  * @since 2.0.0
81
81
  * @category type-level
82
82
  */
83
- export type Context<T extends Layer<any, any, never>> = [T] extends [Layer<infer _R, infer _E, infer _A>] ? _R : never
83
+ export type Context<T extends Layer<never, any, any>> = [T] extends [Layer<infer _ROut, infer _E, infer _RIn>] ? _RIn
84
+ : never
84
85
  /**
85
86
  * @since 2.0.0
86
87
  * @category type-level
87
88
  */
88
- export type Error<T extends Layer<any, any, never>> = [T] extends [Layer<infer _R, infer _E, infer _A>] ? _E : never
89
+ export type Error<T extends Layer<never, any, any>> = [T] extends [Layer<infer _ROut, infer _E, infer _RIn>] ? _E
90
+ : never
89
91
  /**
90
92
  * @since 2.0.0
91
93
  * @category type-level
92
94
  */
93
- export type Success<T extends Layer<any, any, never>> = [T] extends [Layer<infer _R, infer _E, infer _A>] ? _A : never
95
+ export type Success<T extends Layer<never, any, any>> = [T] extends [Layer<infer _ROut, infer _E, infer _RIn>] ? _ROut
96
+ : never
94
97
  }
95
98
 
96
99
  /**
@@ -114,9 +117,9 @@ export interface MemoMap {
114
117
 
115
118
  /** @internal */
116
119
  readonly getOrElseMemoize: <RIn, E, ROut>(
117
- layer: Layer<RIn, E, ROut>,
120
+ layer: Layer<ROut, E, RIn>,
118
121
  scope: Scope.Scope
119
- ) => Effect.Effect<RIn, E, Context.Context<ROut>>
122
+ ) => Effect.Effect<Context.Context<ROut>, E, RIn>
120
123
  }
121
124
 
122
125
  /**
@@ -134,7 +137,7 @@ export const isLayer: (u: unknown) => u is Layer<unknown, unknown, unknown> = in
134
137
  * @since 2.0.0
135
138
  * @category getters
136
139
  */
137
- export const isFresh: <R, E, A>(self: Layer<R, E, A>) => boolean = internal.isFresh
140
+ export const isFresh: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => boolean = internal.isFresh
138
141
 
139
142
  /**
140
143
  * Builds a layer into a scoped value.
@@ -143,8 +146,8 @@ export const isFresh: <R, E, A>(self: Layer<R, E, A>) => boolean = internal.isFr
143
146
  * @category destructors
144
147
  */
145
148
  export const build: <RIn, E, ROut>(
146
- self: Layer<RIn, E, ROut>
147
- ) => Effect.Effect<Scope.Scope | RIn, E, Context.Context<ROut>> = internal.build
149
+ self: Layer<ROut, E, RIn>
150
+ ) => Effect.Effect<Context.Context<ROut>, E, Scope.Scope | RIn> = internal.build
148
151
 
149
152
  /**
150
153
  * Builds a layer into an `Effect` value. Any resources associated with this
@@ -157,8 +160,8 @@ export const build: <RIn, E, ROut>(
157
160
  * @category destructors
158
161
  */
159
162
  export const buildWithScope: {
160
- (scope: Scope.Scope): <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Effect.Effect<RIn, E, Context.Context<ROut>>
161
- <RIn, E, ROut>(self: Layer<RIn, E, ROut>, scope: Scope.Scope): Effect.Effect<RIn, E, Context.Context<ROut>>
163
+ (scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect.Effect<Context.Context<ROut>, E, RIn>
164
+ <RIn, E, ROut>(self: Layer<ROut, E, RIn>, scope: Scope.Scope): Effect.Effect<Context.Context<ROut>, E, RIn>
162
165
  } = internal.buildWithScope
163
166
 
164
167
  /**
@@ -168,8 +171,13 @@ export const buildWithScope: {
168
171
  * @category error handling
169
172
  */
170
173
  export const catchAll: {
171
- <E, R2, E2, A2>(onError: (error: E) => Layer<R2, E2, A2>): <R, A>(self: Layer<R, E, A>) => Layer<R2 | R, E2, A & A2>
172
- <R, E, A, R2, E2, A2>(self: Layer<R, E, A>, onError: (error: E) => Layer<R2, E2, A2>): Layer<R | R2, E2, A & A2>
174
+ <E, RIn2, E2, ROut2>(
175
+ onError: (error: E) => Layer<ROut2, E2, RIn2>
176
+ ): <RIn, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut & ROut2, E2, RIn2 | RIn>
177
+ <RIn, E, ROut, RIn2, E2, ROut2>(
178
+ self: Layer<ROut, E, RIn>,
179
+ onError: (error: E) => Layer<ROut2, E2, RIn2>
180
+ ): Layer<ROut & ROut2, E2, RIn | RIn2>
173
181
  } = internal.catchAll
174
182
 
175
183
  /**
@@ -179,13 +187,13 @@ export const catchAll: {
179
187
  * @category error handling
180
188
  */
181
189
  export const catchAllCause: {
182
- <E, R2, E2, A2>(
183
- onError: (cause: Cause.Cause<E>) => Layer<R2, E2, A2>
184
- ): <R, A>(self: Layer<R, E, A>) => Layer<R2 | R, E2, A & A2>
185
- <R, E, A, R2, E2, A2>(
186
- self: Layer<R, E, A>,
187
- onError: (cause: Cause.Cause<E>) => Layer<R2, E2, A2>
188
- ): Layer<R | R2, E2, A & A2>
190
+ <E, RIn2, E2, ROut2>(
191
+ onError: (cause: Cause.Cause<E>) => Layer<ROut2, E2, RIn2>
192
+ ): <RIn, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut & ROut2, E2, RIn2 | RIn>
193
+ <RIn, E, ROut, RIn2, E2, ROut22>(
194
+ self: Layer<ROut, E, RIn>,
195
+ onError: (cause: Cause.Cause<E>) => Layer<ROut22, E2, RIn2>
196
+ ): Layer<ROut & ROut22, E2, RIn | RIn2>
189
197
  } = internal.catchAllCause
190
198
 
191
199
  /**
@@ -203,7 +211,7 @@ export const context: <R>() => Layer<R, never, R> = internal.context
203
211
  * @since 2.0.0
204
212
  * @category constructors
205
213
  */
206
- export const die: (defect: unknown) => Layer<never, never, unknown> = internal.die
214
+ export const die: (defect: unknown) => Layer<unknown> = internal.die
207
215
 
208
216
  /**
209
217
  * Constructs a layer that dies with the specified defect.
@@ -211,7 +219,7 @@ export const die: (defect: unknown) => Layer<never, never, unknown> = internal.d
211
219
  * @since 2.0.0
212
220
  * @category constructors
213
221
  */
214
- export const dieSync: (evaluate: LazyArg<unknown>) => Layer<never, never, unknown> = internal.dieSync
222
+ export const dieSync: (evaluate: LazyArg<unknown>) => Layer<unknown> = internal.dieSync
215
223
 
216
224
  /**
217
225
  * Replaces the layer's output with `void` and includes the layer only for its
@@ -220,7 +228,7 @@ export const dieSync: (evaluate: LazyArg<unknown>) => Layer<never, never, unknow
220
228
  * @since 2.0.0
221
229
  * @category mapping
222
230
  */
223
- export const discard: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn, E, never> = internal.discard
231
+ export const discard: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Layer<never, E, RIn> = internal.discard
224
232
 
225
233
  /**
226
234
  * Constructs a layer from the specified effect.
@@ -231,11 +239,11 @@ export const discard: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn, E,
231
239
  export const effect: {
232
240
  <T extends Context.Tag<any, any>>(
233
241
  tag: T
234
- ): <R, E>(effect: Effect.Effect<R, E, Context.Tag.Service<T>>) => Layer<R, E, Context.Tag.Identifier<T>>
235
- <T extends Context.Tag<any, any>, R, E>(
242
+ ): <E, R>(effect: Effect.Effect<Context.Tag.Service<T>, E, R>) => Layer<Context.Tag.Identifier<T>, E, R>
243
+ <T extends Context.Tag<any, any>, E, R>(
236
244
  tag: T,
237
- effect: Effect.Effect<R, E, Context.Tag.Service<T>>
238
- ): Layer<R, E, Context.Tag.Identifier<T>>
245
+ effect: Effect.Effect<Context.Tag.Service<T>, E, R>
246
+ ): Layer<Context.Tag.Identifier<T>, E, R>
239
247
  } = internal.fromEffect
240
248
 
241
249
  /**
@@ -244,7 +252,7 @@ export const effect: {
244
252
  * @since 2.0.0
245
253
  * @category constructors
246
254
  */
247
- export const effectDiscard: <R, E, _>(effect: Effect.Effect<R, E, _>) => Layer<R, E, never> = internal.fromEffectDiscard
255
+ export const effectDiscard: <_, E, R>(effect: Effect.Effect<_, E, R>) => Layer<never, E, R> = internal.fromEffectDiscard
248
256
 
249
257
  /**
250
258
  * Constructs a layer from the specified effect, which must return one or more
@@ -253,7 +261,7 @@ export const effectDiscard: <R, E, _>(effect: Effect.Effect<R, E, _>) => Layer<R
253
261
  * @since 2.0.0
254
262
  * @category constructors
255
263
  */
256
- export const effectContext: <R, E, A>(effect: Effect.Effect<R, E, Context.Context<A>>) => Layer<R, E, A> =
264
+ export const effectContext: <A, E, R>(effect: Effect.Effect<Context.Context<A>, E, R>) => Layer<A, E, R> =
257
265
  internal.fromEffectContext
258
266
 
259
267
  /**
@@ -262,7 +270,7 @@ export const effectContext: <R, E, A>(effect: Effect.Effect<R, E, Context.Contex
262
270
  * @since 2.0.0
263
271
  * @category constructors
264
272
  */
265
- export const empty: Layer<never, never, never> = internal.empty
273
+ export const empty: Layer<never> = internal.empty
266
274
 
267
275
  /**
268
276
  * Extends the scope of this layer, returning a new layer that when provided
@@ -273,7 +281,7 @@ export const empty: Layer<never, never, never> = internal.empty
273
281
  * @since 2.0.0
274
282
  * @category utils
275
283
  */
276
- export const extendScope: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<Scope.Scope | RIn, E, ROut> =
284
+ export const extendScope: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut, E, Scope.Scope | RIn> =
277
285
  internal.extendScope
278
286
 
279
287
  /**
@@ -282,7 +290,7 @@ export const extendScope: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<Sco
282
290
  * @since 2.0.0
283
291
  * @category constructors
284
292
  */
285
- export const fail: <E>(error: E) => Layer<never, E, unknown> = internal.fail
293
+ export const fail: <E>(error: E) => Layer<unknown, E> = internal.fail
286
294
 
287
295
  /**
288
296
  * Constructs a layer that fails with the specified error.
@@ -290,7 +298,7 @@ export const fail: <E>(error: E) => Layer<never, E, unknown> = internal.fail
290
298
  * @since 2.0.0
291
299
  * @category constructors
292
300
  */
293
- export const failSync: <E>(evaluate: LazyArg<E>) => Layer<never, E, unknown> = internal.failSync
301
+ export const failSync: <E>(evaluate: LazyArg<E>) => Layer<unknown, E> = internal.failSync
294
302
 
295
303
  /**
296
304
  * Constructs a layer that fails with the specified cause.
@@ -298,7 +306,7 @@ export const failSync: <E>(evaluate: LazyArg<E>) => Layer<never, E, unknown> = i
298
306
  * @since 2.0.0
299
307
  * @category constructors
300
308
  */
301
- export const failCause: <E>(cause: Cause.Cause<E>) => Layer<never, E, unknown> = internal.failCause
309
+ export const failCause: <E>(cause: Cause.Cause<E>) => Layer<unknown, E> = internal.failCause
302
310
 
303
311
  /**
304
312
  * Constructs a layer that fails with the specified cause.
@@ -306,7 +314,7 @@ export const failCause: <E>(cause: Cause.Cause<E>) => Layer<never, E, unknown> =
306
314
  * @since 2.0.0
307
315
  * @category constructors
308
316
  */
309
- export const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => Layer<never, E, unknown> = internal.failCauseSync
317
+ export const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => Layer<unknown, E> = internal.failCauseSync
310
318
 
311
319
  /**
312
320
  * Constructs a layer dynamically based on the output of this layer.
@@ -316,12 +324,12 @@ export const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => Layer<neve
316
324
  */
317
325
  export const flatMap: {
318
326
  <A, R2, E2, A2>(
319
- f: (context: Context.Context<A>) => Layer<R2, E2, A2>
320
- ): <R, E>(self: Layer<R, E, A>) => Layer<R2 | R, E2 | E, A2>
327
+ f: (context: Context.Context<A>) => Layer<A2, E2, R2>
328
+ ): <R, E>(self: Layer<A, E, R>) => Layer<A2, E2 | E, R2 | R>
321
329
  <R, E, A, R2, E2, A2>(
322
- self: Layer<R, E, A>,
323
- f: (context: Context.Context<A>) => Layer<R2, E2, A2>
324
- ): Layer<R | R2, E | E2, A2>
330
+ self: Layer<A, E, R>,
331
+ f: (context: Context.Context<A>) => Layer<A2, E2, R2>
332
+ ): Layer<A2, E | E2, R | R2>
325
333
  } = internal.flatMap
326
334
 
327
335
  /**
@@ -331,8 +339,8 @@ export const flatMap: {
331
339
  * @category sequencing
332
340
  */
333
341
  export const flatten: {
334
- <R2, E2, A, I>(tag: Context.Tag<I, Layer<R2, E2, A>>): <R, E>(self: Layer<R, E, I>) => Layer<R2 | R, E2 | E, A>
335
- <R, E, A, R2, E2, I>(self: Layer<R, E, I>, tag: Context.Tag<I, Layer<R2, E2, A>>): Layer<R | R2, E | E2, A>
342
+ <R2, E2, A, I>(tag: Context.Tag<I, Layer<A, E2, R2>>): <R, E>(self: Layer<I, E, R>) => Layer<A, E2 | E, R2 | R>
343
+ <R, E, A, R2, E2, I>(self: Layer<I, E, R>, tag: Context.Tag<I, Layer<A, E2, R2>>): Layer<A, E | E2, R | R2>
336
344
  } = internal.flatten
337
345
 
338
346
  /**
@@ -341,13 +349,13 @@ export const flatten: {
341
349
  * @since 2.0.0
342
350
  * @category utils
343
351
  */
344
- export const fresh: <R, E, A>(self: Layer<R, E, A>) => Layer<R, E, A> = internal.fresh
352
+ export const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R> = internal.fresh
345
353
 
346
354
  const fromFunction: <A extends Context.Tag<any, any>, B extends Context.Tag<any, any>>(
347
355
  tagA: A,
348
356
  tagB: B,
349
357
  f: (a: Context.Tag.Service<A>) => Context.Tag.Service<B>
350
- ) => Layer<Context.Tag.Identifier<A>, never, Context.Tag.Identifier<B>> = internal.fromFunction
358
+ ) => Layer<Context.Tag.Identifier<B>, never, Context.Tag.Identifier<A>> = internal.fromFunction
351
359
 
352
360
  export {
353
361
  /**
@@ -366,7 +374,7 @@ export {
366
374
  * @since 2.0.0
367
375
  * @category conversions
368
376
  */
369
- export const launch: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Effect.Effect<RIn, E, never> = internal.launch
377
+ export const launch: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect.Effect<never, E, RIn> = internal.launch
370
378
 
371
379
  /**
372
380
  * Returns a new layer whose output is mapped by the specified function.
@@ -375,8 +383,8 @@ export const launch: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Effect.Effect<
375
383
  * @category mapping
376
384
  */
377
385
  export const map: {
378
- <A, B>(f: (context: Context.Context<A>) => Context.Context<B>): <R, E>(self: Layer<R, E, A>) => Layer<R, E, B>
379
- <R, E, A, B>(self: Layer<R, E, A>, f: (context: Context.Context<A>) => Context.Context<B>): Layer<R, E, B>
386
+ <A, B>(f: (context: Context.Context<A>) => Context.Context<B>): <R, E>(self: Layer<A, E, R>) => Layer<B, E, R>
387
+ <R, E, A, B>(self: Layer<A, E, R>, f: (context: Context.Context<A>) => Context.Context<B>): Layer<B, E, R>
380
388
  } = internal.map
381
389
 
382
390
  /**
@@ -386,8 +394,8 @@ export const map: {
386
394
  * @category mapping
387
395
  */
388
396
  export const mapError: {
389
- <E, E2>(f: (error: E) => E2): <R, A>(self: Layer<R, E, A>) => Layer<R, E2, A>
390
- <R, E, A, E2>(self: Layer<R, E, A>, f: (error: E) => E2): Layer<R, E2, A>
397
+ <E, E2>(f: (error: E) => E2): <R, A>(self: Layer<A, E, R>) => Layer<A, E2, R>
398
+ <R, E, A, E2>(self: Layer<A, E, R>, f: (error: E) => E2): Layer<A, E2, R>
391
399
  } = internal.mapError
392
400
 
393
401
  /**
@@ -401,17 +409,17 @@ export const mapError: {
401
409
  export const match: {
402
410
  <E, R2, E2, A2, A, R3, E3, A3>(
403
411
  options: {
404
- readonly onFailure: (error: E) => Layer<R2, E2, A2>
405
- readonly onSuccess: (context: Context.Context<A>) => Layer<R3, E3, A3>
412
+ readonly onFailure: (error: E) => Layer<A2, E2, R2>
413
+ readonly onSuccess: (context: Context.Context<A>) => Layer<A3, E3, R3>
406
414
  }
407
- ): <R>(self: Layer<R, E, A>) => Layer<R2 | R3 | R, E2 | E3, A2 & A3>
415
+ ): <R>(self: Layer<A, E, R>) => Layer<A2 & A3, E2 | E3, R2 | R3 | R>
408
416
  <R, E, A, R2, E2, A2, R3, E3, A3>(
409
- self: Layer<R, E, A>,
417
+ self: Layer<A, E, R>,
410
418
  options: {
411
- readonly onFailure: (error: E) => Layer<R2, E2, A2>
412
- readonly onSuccess: (context: Context.Context<A>) => Layer<R3, E3, A3>
419
+ readonly onFailure: (error: E) => Layer<A2, E2, R2>
420
+ readonly onSuccess: (context: Context.Context<A>) => Layer<A3, E3, R3>
413
421
  }
414
- ): Layer<R | R2 | R3, E2 | E3, A2 & A3>
422
+ ): Layer<A2 & A3, E2 | E3, R | R2 | R3>
415
423
  } = internal.match
416
424
 
417
425
  /**
@@ -425,17 +433,17 @@ export const match: {
425
433
  export const matchCause: {
426
434
  <E, A, R2, E2, A2, R3, E3, A3>(
427
435
  options: {
428
- readonly onFailure: (cause: Cause.Cause<E>) => Layer<R2, E2, A2>
429
- readonly onSuccess: (context: Context.Context<A>) => Layer<R3, E3, A3>
436
+ readonly onFailure: (cause: Cause.Cause<E>) => Layer<A2, E2, R2>
437
+ readonly onSuccess: (context: Context.Context<A>) => Layer<A3, E3, R3>
430
438
  }
431
- ): <R>(self: Layer<R, E, A>) => Layer<R2 | R3 | R, E2 | E3, A2 & A3>
439
+ ): <R>(self: Layer<A, E, R>) => Layer<A2 & A3, E2 | E3, R2 | R3 | R>
432
440
  <R, E, A, R2, E2, A2, R3, E3, A3>(
433
- self: Layer<R, E, A>,
441
+ self: Layer<A, E, R>,
434
442
  options: {
435
- readonly onFailure: (cause: Cause.Cause<E>) => Layer<R2, E2, A2>
436
- readonly onSuccess: (context: Context.Context<A>) => Layer<R3, E3, A3>
443
+ readonly onFailure: (cause: Cause.Cause<E>) => Layer<A2, E2, R2>
444
+ readonly onSuccess: (context: Context.Context<A>) => Layer<A3, E3, R3>
437
445
  }
438
- ): Layer<R | R2 | R3, E2 | E3, A2 & A3>
446
+ ): Layer<A2 & A3, E2 | E3, R | R2 | R3>
439
447
  } = internal.matchCause
440
448
 
441
449
  /**
@@ -446,8 +454,8 @@ export const matchCause: {
446
454
  * @category utils
447
455
  */
448
456
  export const memoize: <RIn, E, ROut>(
449
- self: Layer<RIn, E, ROut>
450
- ) => Effect.Effect<Scope.Scope, never, Layer<RIn, E, ROut>> = internal.memoize
457
+ self: Layer<ROut, E, RIn>
458
+ ) => Effect.Effect<Layer<ROut, E, RIn>, never, Scope.Scope> = internal.memoize
451
459
 
452
460
  /**
453
461
  * Merges this layer with the specified layer concurrently, producing a new layer with combined input and output types.
@@ -457,12 +465,12 @@ export const memoize: <RIn, E, ROut>(
457
465
  */
458
466
  export const merge: {
459
467
  <RIn2, E2, ROut2>(
460
- that: Layer<RIn2, E2, ROut2>
461
- ): <RIn, E1, ROut>(self: Layer<RIn, E1, ROut>) => Layer<RIn2 | RIn, E2 | E1, ROut2 | ROut>
468
+ that: Layer<ROut2, E2, RIn2>
469
+ ): <RIn, E1, ROut>(self: Layer<ROut, E1, RIn>) => Layer<ROut2 | ROut, E2 | E1, RIn2 | RIn>
462
470
  <RIn, E1, ROut, RIn2, E2, ROut2>(
463
- self: Layer<RIn, E1, ROut>,
464
- that: Layer<RIn2, E2, ROut2>
465
- ): Layer<RIn | RIn2, E1 | E2, ROut | ROut2>
471
+ self: Layer<ROut, E1, RIn>,
472
+ that: Layer<ROut2, E2, RIn2>
473
+ ): Layer<ROut | ROut2, E1 | E2, RIn | RIn2>
466
474
  } = internal.merge
467
475
 
468
476
  /**
@@ -471,12 +479,12 @@ export const merge: {
471
479
  * @since 2.0.0
472
480
  * @category zipping
473
481
  */
474
- export const mergeAll: <Layers extends [Layer<any, any, never>, ...Array<Layer<any, any, never>>]>(
482
+ export const mergeAll: <Layers extends [Layer<never, any, any>, ...Array<Layer<never, any, any>>]>(
475
483
  ...layers: Layers
476
484
  ) => Layer<
477
- { [k in keyof Layers]: Layer.Context<Layers[k]> }[number],
485
+ { [k in keyof Layers]: Layer.Success<Layers[k]> }[number],
478
486
  { [k in keyof Layers]: Layer.Error<Layers[k]> }[number],
479
- { [k in keyof Layers]: Layer.Success<Layers[k]> }[number]
487
+ { [k in keyof Layers]: Layer.Context<Layers[k]> }[number]
480
488
  > = internal.mergeAll
481
489
 
482
490
  /**
@@ -486,7 +494,7 @@ export const mergeAll: <Layers extends [Layer<any, any, never>, ...Array<Layer<a
486
494
  * @since 2.0.0
487
495
  * @category error handling
488
496
  */
489
- export const orDie: <R, E, A>(self: Layer<R, E, A>) => Layer<R, never, A> = internal.orDie
497
+ export const orDie: <A, E, R>(self: Layer<A, E, R>) => Layer<A, never, R> = internal.orDie
490
498
 
491
499
  /**
492
500
  * Executes this layer and returns its output, if it succeeds, but otherwise
@@ -496,8 +504,8 @@ export const orDie: <R, E, A>(self: Layer<R, E, A>) => Layer<R, never, A> = inte
496
504
  * @category error handling
497
505
  */
498
506
  export const orElse: {
499
- <R2, E2, A2>(that: LazyArg<Layer<R2, E2, A2>>): <R, E, A>(self: Layer<R, E, A>) => Layer<R2 | R, E2 | E, A & A2>
500
- <R, E, A, R2, E2, A2>(self: Layer<R, E, A>, that: LazyArg<Layer<R2, E2, A2>>): Layer<R | R2, E | E2, A & A2>
507
+ <R2, E2, A2>(that: LazyArg<Layer<A2, E2, R2>>): <A, E, R>(self: Layer<A, E, R>) => Layer<A & A2, E2 | E, R2 | R>
508
+ <R, E, A, R2, E2, A2>(self: Layer<A, E, R>, that: LazyArg<Layer<A2, E2, R2>>): Layer<A & A2, E | E2, R | R2>
501
509
  } = internal.orElse
502
510
 
503
511
  /**
@@ -507,7 +515,7 @@ export const orElse: {
507
515
  * @since 2.0.0
508
516
  * @category utils
509
517
  */
510
- export const passthrough: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn, E, RIn | ROut> = internal.passthrough
518
+ export const passthrough: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Layer<RIn | ROut, E, RIn> = internal.passthrough
511
519
 
512
520
  /**
513
521
  * Projects out part of one of the services output by this layer using the
@@ -521,13 +529,13 @@ export const project: {
521
529
  tagA: A,
522
530
  tagB: B,
523
531
  f: (a: Context.Tag.Service<A>) => Context.Tag.Service<B>
524
- ): <RIn, E>(self: Layer<RIn, E, Context.Tag.Identifier<A>>) => Layer<RIn, E, Context.Tag.Identifier<B>>
532
+ ): <RIn, E>(self: Layer<Context.Tag.Identifier<A>, E, RIn>) => Layer<Context.Tag.Identifier<B>, E, RIn>
525
533
  <RIn, E, A extends Context.Tag<any, any>, B extends Context.Tag<any, any>>(
526
- self: Layer<RIn, E, Context.Tag.Identifier<A>>,
534
+ self: Layer<Context.Tag.Identifier<A>, E, RIn>,
527
535
  tagA: A,
528
536
  tagB: B,
529
537
  f: (a: Context.Tag.Service<A>) => Context.Tag.Service<B>
530
- ): Layer<RIn, E, Context.Tag.Identifier<B>>
538
+ ): Layer<Context.Tag.Identifier<B>, E, RIn>
531
539
  } = internal.project
532
540
 
533
541
  /**
@@ -537,11 +545,11 @@ export const project: {
537
545
  export const locallyEffect: {
538
546
  <RIn, E, ROut, RIn2, E2, ROut2>(
539
547
  f: (_: Effect.Effect<RIn, E, Context.Context<ROut>>) => Effect.Effect<RIn2, E2, Context.Context<ROut2>>
540
- ): (self: Layer<RIn, E, ROut>) => Layer<RIn2, E2, ROut2>
548
+ ): (self: Layer<ROut, E, RIn>) => Layer<ROut2, E2, RIn2>
541
549
  <RIn, E, ROut, RIn2, E2, ROut2>(
542
- self: Layer<RIn, E, ROut>,
550
+ self: Layer<ROut, E, RIn>,
543
551
  f: (_: Effect.Effect<RIn, E, Context.Context<ROut>>) => Effect.Effect<RIn2, E2, Context.Context<ROut2>>
544
- ): Layer<RIn2, E2, ROut2>
552
+ ): Layer<ROut2, E2, RIn2>
545
553
  } = internal.locallyEffect
546
554
 
547
555
  /**
@@ -552,12 +560,12 @@ export const locally: {
552
560
  <X>(
553
561
  ref: FiberRef<X>,
554
562
  value: X
555
- ): <R, E, A>(self: Layer<R, E, A>) => Layer<R, E, A>
563
+ ): <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>
556
564
  <R, E, A, X>(
557
- self: Layer<R, E, A>,
565
+ self: Layer<A, E, R>,
558
566
  ref: FiberRef<X>,
559
567
  value: X
560
- ): Layer<R, E, A>
568
+ ): Layer<A, E, R>
561
569
  } = internal.fiberRefLocally
562
570
 
563
571
  /**
@@ -565,22 +573,21 @@ export const locally: {
565
573
  * @category utils
566
574
  */
567
575
  export const locallyWith: {
568
- <X>(ref: FiberRef<X>, value: (_: X) => X): <R, E, A>(self: Layer<R, E, A>) => Layer<R, E, A>
569
- <R, E, A, X>(self: Layer<R, E, A>, ref: FiberRef<X>, value: (_: X) => X): Layer<R, E, A>
576
+ <X>(ref: FiberRef<X>, value: (_: X) => X): <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>
577
+ <R, E, A, X>(self: Layer<A, E, R>, ref: FiberRef<X>, value: (_: X) => X): Layer<A, E, R>
570
578
  } = internal.fiberRefLocallyWith
571
579
 
572
580
  /**
573
581
  * @since 2.0.0
574
582
  * @category utils
575
583
  */
576
- export const locallyScoped: <A>(self: FiberRef<A>, value: A) => Layer<never, never, never> =
577
- internal.fiberRefLocallyScoped
584
+ export const locallyScoped: <A>(self: FiberRef<A>, value: A) => Layer<never> = internal.fiberRefLocallyScoped
578
585
 
579
586
  /**
580
587
  * @since 2.0.0
581
588
  * @category utils
582
589
  */
583
- export const fiberRefLocallyScopedWith: <A>(self: FiberRef<A>, value: (_: A) => A) => Layer<never, never, never> =
590
+ export const fiberRefLocallyScopedWith: <A>(self: FiberRef<A>, value: (_: A) => A) => Layer<never> =
584
591
  internal.fiberRefLocallyScopedWith
585
592
 
586
593
  /**
@@ -592,11 +599,11 @@ export const fiberRefLocallyScopedWith: <A>(self: FiberRef<A>, value: (_: A) =>
592
599
  export const retry: {
593
600
  <RIn2, E, X>(
594
601
  schedule: Schedule.Schedule<RIn2, E, X>
595
- ): <RIn, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn2 | RIn, E, ROut>
602
+ ): <RIn, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut, E, RIn2 | RIn>
596
603
  <RIn, E, ROut, RIn2, X>(
597
- self: Layer<RIn, E, ROut>,
604
+ self: Layer<ROut, E, RIn>,
598
605
  schedule: Schedule.Schedule<RIn2, E, X>
599
- ): Layer<RIn | RIn2, E, ROut>
606
+ ): Layer<ROut, E, RIn | RIn2>
600
607
  } = internal.retry
601
608
 
602
609
  /**
@@ -608,7 +615,7 @@ export const retry: {
608
615
  * @since 2.0.0
609
616
  * @category constructors
610
617
  */
611
- export const scope: Layer<never, never, Scope.CloseableScope> = internal.scope
618
+ export const scope: Layer<Scope.CloseableScope> = internal.scope
612
619
 
613
620
  /**
614
621
  * Constructs a layer from the specified scoped effect.
@@ -620,12 +627,12 @@ export const scoped: {
620
627
  <T extends Context.Tag<any, any>>(
621
628
  tag: T
622
629
  ): <R, E>(
623
- effect: Effect.Effect<R, E, Context.Tag.Service<T>>
624
- ) => Layer<Exclude<R, Scope.Scope>, E, Context.Tag.Identifier<T>>
630
+ effect: Effect.Effect<Context.Tag.Service<T>, E, R>
631
+ ) => Layer<Context.Tag.Identifier<T>, E, Exclude<R, Scope.Scope>>
625
632
  <T extends Context.Tag<any, any>, R, E>(
626
633
  tag: T,
627
- effect: Effect.Effect<R, E, Context.Tag.Service<T>>
628
- ): Layer<Exclude<R, Scope.Scope>, E, Context.Tag.Identifier<T>>
634
+ effect: Effect.Effect<Context.Tag.Service<T>, E, R>
635
+ ): Layer<Context.Tag.Identifier<T>, E, Exclude<R, Scope.Scope>>
629
636
  } = internal.scoped
630
637
 
631
638
  /**
@@ -634,7 +641,7 @@ export const scoped: {
634
641
  * @since 2.0.0
635
642
  * @category constructors
636
643
  */
637
- export const scopedDiscard: <R, E, T>(effect: Effect.Effect<R, E, T>) => Layer<Exclude<R, Scope.Scope>, E, never> =
644
+ export const scopedDiscard: <_, E, R>(effect: Effect.Effect<_, E, R>) => Layer<never, E, Exclude<R, Scope.Scope>> =
638
645
  internal.scopedDiscard
639
646
 
640
647
  /**
@@ -644,9 +651,9 @@ export const scopedDiscard: <R, E, T>(effect: Effect.Effect<R, E, T>) => Layer<E
644
651
  * @since 2.0.0
645
652
  * @category constructors
646
653
  */
647
- export const scopedContext: <R, E, A>(
648
- effect: Effect.Effect<R, E, Context.Context<A>>
649
- ) => Layer<Exclude<R, Scope.Scope>, E, A> = internal.scopedContext
654
+ export const scopedContext: <A, E, R>(
655
+ effect: Effect.Effect<Context.Context<A>, E, R>
656
+ ) => Layer<A, E, Exclude<R, Scope.Scope>> = internal.scopedContext
650
657
 
651
658
  /**
652
659
  * Constructs a layer that accesses and returns the specified service from the
@@ -668,11 +675,11 @@ export const service: <T extends Context.Tag<any, any>>(
668
675
  export const succeed: {
669
676
  <T extends Context.Tag<any, any>>(
670
677
  tag: T
671
- ): (resource: Context.Tag.Service<T>) => Layer<never, never, Context.Tag.Identifier<T>>
678
+ ): (resource: Context.Tag.Service<T>) => Layer<Context.Tag.Identifier<T>>
672
679
  <T extends Context.Tag<any, any>>(
673
680
  tag: T,
674
681
  resource: Context.Tag.Service<T>
675
- ): Layer<never, never, Context.Tag.Identifier<T>>
682
+ ): Layer<Context.Tag.Identifier<T>>
676
683
  } = internal.succeed
677
684
 
678
685
  /**
@@ -682,7 +689,7 @@ export const succeed: {
682
689
  * @since 2.0.0
683
690
  * @category constructors
684
691
  */
685
- export const succeedContext: <A>(context: Context.Context<A>) => Layer<never, never, A> = internal.succeedContext
692
+ export const succeedContext: <A>(context: Context.Context<A>) => Layer<A> = internal.succeedContext
686
693
 
687
694
  /**
688
695
  * Lazily constructs a layer. This is useful to avoid infinite recursion when
@@ -691,7 +698,7 @@ export const succeedContext: <A>(context: Context.Context<A>) => Layer<never, ne
691
698
  * @since 2.0.0
692
699
  * @category constructors
693
700
  */
694
- export const suspend: <RIn, E, ROut>(evaluate: LazyArg<Layer<RIn, E, ROut>>) => Layer<RIn, E, ROut> = internal.suspend
701
+ export const suspend: <RIn, E, ROut>(evaluate: LazyArg<Layer<ROut, E, RIn>>) => Layer<ROut, E, RIn> = internal.suspend
695
702
 
696
703
  /**
697
704
  * Lazily constructs a layer from the specified value.
@@ -702,11 +709,11 @@ export const suspend: <RIn, E, ROut>(evaluate: LazyArg<Layer<RIn, E, ROut>>) =>
702
709
  export const sync: {
703
710
  <T extends Context.Tag<any, any>>(
704
711
  tag: T
705
- ): (evaluate: LazyArg<Context.Tag.Service<T>>) => Layer<never, never, Context.Tag.Identifier<T>>
712
+ ): (evaluate: LazyArg<Context.Tag.Service<T>>) => Layer<Context.Tag.Identifier<T>>
706
713
  <T extends Context.Tag<any, any>>(
707
714
  tag: T,
708
715
  evaluate: LazyArg<Context.Tag.Service<T>>
709
- ): Layer<never, never, Context.Tag.Identifier<T>>
716
+ ): Layer<Context.Tag.Identifier<T>>
710
717
  } = internal.sync
711
718
 
712
719
  /**
@@ -716,7 +723,7 @@ export const sync: {
716
723
  * @since 2.0.0
717
724
  * @category constructors
718
725
  */
719
- export const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) => Layer<never, never, A> = internal.syncContext
726
+ export const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) => Layer<A> = internal.syncContext
720
727
 
721
728
  /**
722
729
  * Performs the specified effect if this layer succeeds.
@@ -726,12 +733,12 @@ export const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) => Layer<ne
726
733
  */
727
734
  export const tap: {
728
735
  <ROut, XR extends ROut, RIn2, E2, X>(
729
- f: (context: Context.Context<XR>) => Effect.Effect<RIn2, E2, X>
730
- ): <RIn, E>(self: Layer<RIn, E, ROut>) => Layer<RIn2 | RIn, E2 | E, ROut>
736
+ f: (context: Context.Context<XR>) => Effect.Effect<X, E2, RIn2>
737
+ ): <RIn, E>(self: Layer<ROut, E, RIn>) => Layer<ROut, E2 | E, RIn2 | RIn>
731
738
  <RIn, E, ROut, XR extends ROut, RIn2, E2, X>(
732
- self: Layer<RIn, E, ROut>,
733
- f: (context: Context.Context<XR>) => Effect.Effect<RIn2, E2, X>
734
- ): Layer<RIn | RIn2, E | E2, ROut>
739
+ self: Layer<ROut, E, RIn>,
740
+ f: (context: Context.Context<XR>) => Effect.Effect<X, E2, RIn2>
741
+ ): Layer<ROut, E | E2, RIn | RIn2>
735
742
  } = internal.tap
736
743
 
737
744
  /**
@@ -742,12 +749,12 @@ export const tap: {
742
749
  */
743
750
  export const tapError: {
744
751
  <E, XE extends E, RIn2, E2, X>(
745
- f: (e: XE) => Effect.Effect<RIn2, E2, X>
746
- ): <RIn, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn2 | RIn, E | E2, ROut>
752
+ f: (e: XE) => Effect.Effect<X, E2, RIn2>
753
+ ): <RIn, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut, E | E2, RIn2 | RIn>
747
754
  <RIn, E, XE extends E, ROut, RIn2, E2, X>(
748
- self: Layer<RIn, E, ROut>,
749
- f: (e: XE) => Effect.Effect<RIn2, E2, X>
750
- ): Layer<RIn | RIn2, E | E2, ROut>
755
+ self: Layer<ROut, E, RIn>,
756
+ f: (e: XE) => Effect.Effect<X, E2, RIn2>
757
+ ): Layer<ROut, E | E2, RIn | RIn2>
751
758
  } = internal.tapError
752
759
 
753
760
  /**
@@ -758,12 +765,12 @@ export const tapError: {
758
765
  */
759
766
  export const tapErrorCause: {
760
767
  <E, XE extends E, RIn2, E2, X>(
761
- f: (cause: Cause.Cause<XE>) => Effect.Effect<RIn2, E2, X>
762
- ): <RIn, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn2 | RIn, E | E2, ROut>
768
+ f: (cause: Cause.Cause<XE>) => Effect.Effect<X, E2, RIn2>
769
+ ): <RIn, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut, E | E2, RIn2 | RIn>
763
770
  <RIn, E, XE extends E, ROut, RIn2, E2, X>(
764
- self: Layer<RIn, E, ROut>,
765
- f: (cause: Cause.Cause<XE>) => Effect.Effect<RIn2, E2, X>
766
- ): Layer<RIn | RIn2, E | E2, ROut>
771
+ self: Layer<ROut, E, RIn>,
772
+ f: (cause: Cause.Cause<XE>) => Effect.Effect<X, E2, RIn2>
773
+ ): Layer<ROut, E | E2, RIn | RIn2>
767
774
  } = internal.tapErrorCause
768
775
 
769
776
  /**
@@ -774,8 +781,8 @@ export const tapErrorCause: {
774
781
  * @category conversions
775
782
  */
776
783
  export const toRuntime: <RIn, E, ROut>(
777
- self: Layer<RIn, E, ROut>
778
- ) => Effect.Effect<Scope.Scope | RIn, E, Runtime.Runtime<ROut>> = internal.toRuntime
784
+ self: Layer<ROut, E, RIn>
785
+ ) => Effect.Effect<Runtime.Runtime<ROut>, E, Scope.Scope | RIn> = internal.toRuntime
779
786
 
780
787
  /**
781
788
  * Feeds the output services of this builder into the input of the specified
@@ -787,12 +794,12 @@ export const toRuntime: <RIn, E, ROut>(
787
794
  */
788
795
  export const provide: {
789
796
  <RIn, E, ROut>(
790
- self: Layer<RIn, E, ROut>
791
- ): <RIn2, E2, ROut2>(that: Layer<RIn2, E2, ROut2>) => Layer<RIn | Exclude<RIn2, ROut>, E | E2, ROut2>
797
+ self: Layer<ROut, E, RIn>
798
+ ): <RIn2, E2, ROut2>(that: Layer<ROut2, E2, RIn2>) => Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>
792
799
  <RIn2, E2, ROut2, RIn, E, ROut>(
793
- that: Layer<RIn2, E2, ROut2>,
794
- self: Layer<RIn, E, ROut>
795
- ): Layer<RIn | Exclude<RIn2, ROut>, E2 | E, ROut2>
800
+ that: Layer<ROut2, E2, RIn2>,
801
+ self: Layer<ROut, E, RIn>
802
+ ): Layer<ROut2, E2 | E, RIn | Exclude<RIn2, ROut>>
796
803
  } = internal.provide
797
804
 
798
805
  /**
@@ -805,12 +812,12 @@ export const provide: {
805
812
  */
806
813
  export const provideMerge: {
807
814
  <RIn, E, ROut>(
808
- self: Layer<RIn, E, ROut>
809
- ): <RIn2, E2, ROut2>(that: Layer<RIn2, E2, ROut2>) => Layer<RIn | Exclude<RIn2, ROut>, E | E2, ROut | ROut2>
815
+ self: Layer<ROut, E, RIn>
816
+ ): <RIn2, E2, ROut2>(that: Layer<ROut2, E2, RIn2>) => Layer<ROut | ROut2, E | E2, RIn | Exclude<RIn2, ROut>>
810
817
  <RIn2, E2, ROut2, RIn, E, ROut>(
811
- that: Layer<RIn2, E2, ROut2>,
812
- self: Layer<RIn, E, ROut>
813
- ): Layer<RIn | Exclude<RIn2, ROut>, E2 | E, ROut2 | ROut>
818
+ that: Layer<ROut2, E2, RIn2>,
819
+ self: Layer<ROut, E, RIn>
820
+ ): Layer<ROut2 | ROut, E2 | E, RIn | Exclude<RIn2, ROut>>
814
821
  } = internal.provideMerge
815
822
 
816
823
  /**
@@ -822,21 +829,21 @@ export const provideMerge: {
822
829
  */
823
830
  export const zipWith: {
824
831
  <R2, E2, B, A, C>(
825
- that: Layer<R2, E2, B>,
832
+ that: Layer<B, E2, R2>,
826
833
  f: (a: Context.Context<A>, b: Context.Context<B>) => Context.Context<C>
827
- ): <R, E>(self: Layer<R, E, A>) => Layer<R2 | R, E2 | E, C>
834
+ ): <R, E>(self: Layer<A, E, R>) => Layer<C, E2 | E, R2 | R>
828
835
  <R, E, R2, E2, B, A, C>(
829
- self: Layer<R, E, A>,
830
- that: Layer<R2, E2, B>,
836
+ self: Layer<A, E, R>,
837
+ that: Layer<B, E2, R2>,
831
838
  f: (a: Context.Context<A>, b: Context.Context<B>) => Context.Context<C>
832
- ): Layer<R | R2, E | E2, C>
839
+ ): Layer<C, E | E2, R | R2>
833
840
  } = internal.zipWith
834
841
 
835
842
  /**
836
843
  * @since 2.0.0
837
844
  * @category utils
838
845
  */
839
- export const unwrapEffect: <R, E, R1, E1, A>(self: Effect.Effect<R, E, Layer<R1, E1, A>>) => Layer<R | R1, E | E1, A> =
846
+ export const unwrapEffect: <R, E, R1, E1, A>(self: Effect.Effect<Layer<A, E1, R1>, E, R>) => Layer<A, E | E1, R | R1> =
840
847
  internal.unwrapEffect
841
848
 
842
849
  /**
@@ -844,16 +851,16 @@ export const unwrapEffect: <R, E, R1, E1, A>(self: Effect.Effect<R, E, Layer<R1,
844
851
  * @category utils
845
852
  */
846
853
  export const unwrapScoped: <R, E, R1, E1, A>(
847
- self: Effect.Effect<R, E, Layer<R1, E1, A>>
848
- ) => Layer<R1 | Exclude<R, Scope.Scope>, E | E1, A> = internal.unwrapScoped
854
+ self: Effect.Effect<Layer<A, E1, R1>, E, R>
855
+ ) => Layer<A, E | E1, R1 | Exclude<R, Scope.Scope>> = internal.unwrapScoped
849
856
 
850
857
  /**
851
858
  * @since 2.0.0
852
859
  * @category clock
853
860
  */
854
- export const setClock: <A extends Clock.Clock>(clock: A) => Layer<never, never, never> = <A extends Clock.Clock>(
861
+ export const setClock: <A extends Clock.Clock>(clock: A) => Layer<never> = <A extends Clock.Clock>(
855
862
  clock: A
856
- ): Layer<never, never, never> =>
863
+ ): Layer<never> =>
857
864
  scopedDiscard(
858
865
  fiberRuntime.fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(clockTag, clock))
859
866
  )
@@ -864,8 +871,7 @@ export const setClock: <A extends Clock.Clock>(clock: A) => Layer<never, never,
864
871
  * @since 2.0.0
865
872
  * @category config
866
873
  */
867
- export const setConfigProvider: (configProvider: ConfigProvider) => Layer<never, never, never> =
868
- circularLayer.setConfigProvider
874
+ export const setConfigProvider: (configProvider: ConfigProvider) => Layer<never> = circularLayer.setConfigProvider
869
875
 
870
876
  /**
871
877
  * Adds the provided span to the span stack.
@@ -873,13 +879,13 @@ export const setConfigProvider: (configProvider: ConfigProvider) => Layer<never,
873
879
  * @since 2.0.0
874
880
  * @category tracing
875
881
  */
876
- export const parentSpan: (span: Tracer.ParentSpan) => Layer<never, never, Tracer.ParentSpan> = circularLayer.parentSpan
882
+ export const parentSpan: (span: Tracer.ParentSpan) => Layer<Tracer.ParentSpan> = circularLayer.parentSpan
877
883
 
878
884
  /**
879
885
  * @since 2.0.0
880
886
  * @category requests & batching
881
887
  */
882
- export const setRequestBatching: (requestBatching: boolean) => Layer<never, never, never> = (
888
+ export const setRequestBatching: (requestBatching: boolean) => Layer<never> = (
883
889
  requestBatching: boolean
884
890
  ) =>
885
891
  scopedDiscard(
@@ -890,7 +896,7 @@ export const setRequestBatching: (requestBatching: boolean) => Layer<never, neve
890
896
  * @since 2.0.0
891
897
  * @category requests & batching
892
898
  */
893
- export const setRequestCaching: (requestCaching: boolean) => Layer<never, never, never> = (
899
+ export const setRequestCaching: (requestCaching: boolean) => Layer<never> = (
894
900
  requestCaching: boolean
895
901
  ) =>
896
902
  scopedDiscard(
@@ -902,13 +908,13 @@ export const setRequestCaching: (requestCaching: boolean) => Layer<never, never,
902
908
  * @category requests & batching
903
909
  */
904
910
  export const setRequestCache: {
905
- <R, E>(
906
- cache: Effect.Effect<R, E, Request.Cache>
907
- ): Layer<Exclude<R, Scope.Scope>, E, never>
911
+ <E, R>(
912
+ cache: Effect.Effect<Request.Cache, E, R>
913
+ ): Layer<never, E, Exclude<R, Scope.Scope>>
908
914
  (
909
915
  cache: Request.Cache
910
- ): Layer<never, never, never>
911
- } = (<R, E>(cache: Request.Cache | Effect.Effect<R, E, Request.Cache>) =>
916
+ ): Layer<never>
917
+ } = (<R, E>(cache: Request.Cache | Effect.Effect<Request.Cache, E, R>) =>
912
918
  scopedDiscard(
913
919
  core.isEffect(cache) ?
914
920
  core.flatMap(cache, (x) => fiberRuntime.fiberRefLocallyScoped(query.currentCache as any, x)) :
@@ -919,9 +925,9 @@ export const setRequestCache: {
919
925
  * @since 2.0.0
920
926
  * @category scheduler
921
927
  */
922
- export const setScheduler: (scheduler: Scheduler.Scheduler) => Layer<never, never, never> = (
928
+ export const setScheduler: (scheduler: Scheduler.Scheduler) => Layer<never> = (
923
929
  scheduler: Scheduler.Scheduler
924
- ): Layer<never, never, never> =>
930
+ ): Layer<never> =>
925
931
  scopedDiscard(
926
932
  fiberRuntime.fiberRefLocallyScoped(Scheduler.currentScheduler, scheduler)
927
933
  )
@@ -943,10 +949,10 @@ export const span: (
943
949
  readonly root?: boolean | undefined
944
950
  readonly context?: Context.Context<never> | undefined
945
951
  readonly onEnd?:
946
- | ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<never, never, void>)
952
+ | ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>)
947
953
  | undefined
948
954
  }
949
- ) => Layer<never, never, Tracer.ParentSpan> = circularLayer.span
955
+ ) => Layer<Tracer.ParentSpan> = circularLayer.span
950
956
 
951
957
  /**
952
958
  * Create a Layer that sets the current Tracer
@@ -954,13 +960,13 @@ export const span: (
954
960
  * @since 2.0.0
955
961
  * @category tracing
956
962
  */
957
- export const setTracer: (tracer: Tracer.Tracer) => Layer<never, never, never> = circularLayer.setTracer
963
+ export const setTracer: (tracer: Tracer.Tracer) => Layer<never> = circularLayer.setTracer
958
964
 
959
965
  /**
960
966
  * @since 2.0.0
961
967
  * @category tracing
962
968
  */
963
- export const setTracerTiming: (enabled: boolean) => Layer<never, never, never> = (enabled: boolean) =>
969
+ export const setTracerTiming: (enabled: boolean) => Layer<never> = (enabled: boolean) =>
964
970
  scopedDiscard(
965
971
  fiberRuntime.fiberRefLocallyScoped(core.currentTracerTimingEnabled, enabled)
966
972
  )
@@ -969,9 +975,9 @@ export const setTracerTiming: (enabled: boolean) => Layer<never, never, never> =
969
975
  * @since 2.0.0
970
976
  * @category logging
971
977
  */
972
- export const setUnhandledErrorLogLevel: (level: Option.Option<LogLevel>) => Layer<never, never, never> = (
978
+ export const setUnhandledErrorLogLevel: (level: Option.Option<LogLevel>) => Layer<never> = (
973
979
  level: Option.Option<LogLevel>
974
- ): Layer<never, never, never> =>
980
+ ): Layer<never> =>
975
981
  scopedDiscard(
976
982
  fiberRuntime.fiberRefLocallyScoped(core.currentUnhandledErrorLogLevel, level)
977
983
  )
@@ -990,12 +996,12 @@ export const withSpan: {
990
996
  readonly root?: boolean | undefined
991
997
  readonly context?: Context.Context<never> | undefined
992
998
  readonly onEnd?:
993
- | ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<never, never, void>)
999
+ | ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>)
994
1000
  | undefined
995
1001
  }
996
- ): <R, E, A>(self: Layer<R, E, A>) => Layer<Exclude<R, Tracer.ParentSpan>, E, A>
997
- <R, E, A>(
998
- self: Layer<R, E, A>,
1002
+ ): <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, Exclude<R, Tracer.ParentSpan>>
1003
+ <A, E, R>(
1004
+ self: Layer<A, E, R>,
999
1005
  name: string,
1000
1006
  options?: {
1001
1007
  readonly attributes?: Record<string, unknown> | undefined
@@ -1004,10 +1010,10 @@ export const withSpan: {
1004
1010
  readonly root?: boolean | undefined
1005
1011
  readonly context?: Context.Context<never> | undefined
1006
1012
  readonly onEnd?:
1007
- | ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<never, never, void>)
1013
+ | ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>)
1008
1014
  | undefined
1009
1015
  }
1010
- ): Layer<Exclude<R, Tracer.ParentSpan>, E, A>
1016
+ ): Layer<A, E, Exclude<R, Tracer.ParentSpan>>
1011
1017
  } = internal.withSpan
1012
1018
 
1013
1019
  /**
@@ -1015,8 +1021,8 @@ export const withSpan: {
1015
1021
  * @category tracing
1016
1022
  */
1017
1023
  export const withParentSpan: {
1018
- (span: Tracer.ParentSpan): <R, E, A>(self: Layer<R, E, A>) => Layer<Exclude<R, Tracer.ParentSpan>, E, A>
1019
- <R, E, A>(self: Layer<R, E, A>, span: Tracer.ParentSpan): Layer<Exclude<R, Tracer.ParentSpan>, E, A>
1024
+ (span: Tracer.ParentSpan): <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, Exclude<R, Tracer.ParentSpan>>
1025
+ <A, E, R>(self: Layer<A, E, R>, span: Tracer.ParentSpan): Layer<A, E, Exclude<R, Tracer.ParentSpan>>
1020
1026
  } = internal.withParentSpan
1021
1027
 
1022
1028
  // -----------------------------------------------------------------------------
@@ -1029,7 +1035,7 @@ export const withParentSpan: {
1029
1035
  * @since 2.0.0
1030
1036
  * @category memo map
1031
1037
  */
1032
- export const makeMemoMap: Effect.Effect<never, never, MemoMap> = internal.makeMemoMap
1038
+ export const makeMemoMap: Effect.Effect<MemoMap> = internal.makeMemoMap
1033
1039
 
1034
1040
  /**
1035
1041
  * Builds a layer into an `Effect` value, using the specified `MemoMap` to memoize
@@ -1042,10 +1048,10 @@ export const buildWithMemoMap: {
1042
1048
  (
1043
1049
  memoMap: MemoMap,
1044
1050
  scope: Scope.Scope
1045
- ): <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Effect.Effect<RIn, E, Context.Context<ROut>>
1051
+ ): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect.Effect<Context.Context<ROut>, E, RIn>
1046
1052
  <RIn, E, ROut>(
1047
- self: Layer<RIn, E, ROut>,
1053
+ self: Layer<ROut, E, RIn>,
1048
1054
  memoMap: MemoMap,
1049
1055
  scope: Scope.Scope
1050
- ): Effect.Effect<RIn, E, Context.Context<ROut>>
1056
+ ): Effect.Effect<Context.Context<ROut>, E, RIn>
1051
1057
  } = internal.buildWithMemoMap