effect 2.3.7 → 2.4.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 (422) hide show
  1. package/dist/cjs/BigDecimal.js +1 -1
  2. package/dist/cjs/BigDecimal.js.map +1 -1
  3. package/dist/cjs/BigInt.js +14 -1
  4. package/dist/cjs/BigInt.js.map +1 -1
  5. package/dist/cjs/Chunk.js +1 -1
  6. package/dist/cjs/Chunk.js.map +1 -1
  7. package/dist/cjs/Cron.js +1 -1
  8. package/dist/cjs/Cron.js.map +1 -1
  9. package/dist/cjs/Duration.js +1 -1
  10. package/dist/cjs/Duration.js.map +1 -1
  11. package/dist/cjs/Effect.js +16 -61
  12. package/dist/cjs/Effect.js.map +1 -1
  13. package/dist/cjs/Either.js +35 -6
  14. package/dist/cjs/Either.js.map +1 -1
  15. package/dist/cjs/Equal.js +1 -1
  16. package/dist/cjs/Equal.js.map +1 -1
  17. package/dist/cjs/Exit.js +1 -1
  18. package/dist/cjs/FiberMap.js.map +1 -1
  19. package/dist/cjs/Hash.js +29 -1
  20. package/dist/cjs/Hash.js.map +1 -1
  21. package/dist/cjs/List.js +3 -2
  22. package/dist/cjs/List.js.map +1 -1
  23. package/dist/cjs/Number.js +25 -1
  24. package/dist/cjs/Number.js.map +1 -1
  25. package/dist/cjs/ReadonlyArray.js +2 -2
  26. package/dist/cjs/ReadonlyArray.js.map +1 -1
  27. package/dist/cjs/ReadonlyRecord.js +71 -76
  28. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  29. package/dist/cjs/STM.js.map +1 -1
  30. package/dist/cjs/Schedule.js.map +1 -1
  31. package/dist/cjs/Sink.js.map +1 -1
  32. package/dist/cjs/SortedMap.js +1 -1
  33. package/dist/cjs/SortedMap.js.map +1 -1
  34. package/dist/cjs/SortedSet.js +1 -1
  35. package/dist/cjs/SortedSet.js.map +1 -1
  36. package/dist/cjs/Stream.js +3 -23
  37. package/dist/cjs/Stream.js.map +1 -1
  38. package/dist/cjs/Struct.js +3 -1
  39. package/dist/cjs/Struct.js.map +1 -1
  40. package/dist/cjs/TestAnnotation.js +1 -1
  41. package/dist/cjs/TestAnnotation.js.map +1 -1
  42. package/dist/cjs/internal/cache.js +1 -1
  43. package/dist/cjs/internal/cache.js.map +1 -1
  44. package/dist/cjs/internal/cause.js +1 -1
  45. package/dist/cjs/internal/cause.js.map +1 -1
  46. package/dist/cjs/internal/channel/channelExecutor.js +5 -5
  47. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  48. package/dist/cjs/internal/channel/channelState.js +5 -5
  49. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  50. package/dist/cjs/internal/channel.js.map +1 -1
  51. package/dist/cjs/internal/clock.js +3 -4
  52. package/dist/cjs/internal/clock.js.map +1 -1
  53. package/dist/cjs/internal/context.js +1 -1
  54. package/dist/cjs/internal/context.js.map +1 -1
  55. package/dist/cjs/internal/core-effect.js +6 -23
  56. package/dist/cjs/internal/core-effect.js.map +1 -1
  57. package/dist/cjs/internal/core.js +15 -31
  58. package/dist/cjs/internal/core.js.map +1 -1
  59. package/dist/cjs/internal/data.js +1 -1
  60. package/dist/cjs/internal/data.js.map +1 -1
  61. package/dist/cjs/internal/effect/circular.js +5 -6
  62. package/dist/cjs/internal/effect/circular.js.map +1 -1
  63. package/dist/cjs/internal/effectable.js +2 -2
  64. package/dist/cjs/internal/effectable.js.map +1 -1
  65. package/dist/cjs/internal/either.js +1 -1
  66. package/dist/cjs/internal/either.js.map +1 -1
  67. package/dist/cjs/internal/fiberId.js +2 -9
  68. package/dist/cjs/internal/fiberId.js.map +1 -1
  69. package/dist/cjs/internal/fiberStatus.js +4 -3
  70. package/dist/cjs/internal/fiberStatus.js.map +1 -1
  71. package/dist/cjs/internal/groupBy.js.map +1 -1
  72. package/dist/cjs/internal/hashMap.js +1 -1
  73. package/dist/cjs/internal/hashMap.js.map +1 -1
  74. package/dist/cjs/internal/hashSet.js +1 -1
  75. package/dist/cjs/internal/hashSet.js.map +1 -1
  76. package/dist/cjs/internal/keyedPool.js +2 -2
  77. package/dist/cjs/internal/keyedPool.js.map +1 -1
  78. package/dist/cjs/internal/layer.js +0 -2
  79. package/dist/cjs/internal/layer.js.map +1 -1
  80. package/dist/cjs/internal/metric/keyType.js +4 -4
  81. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  82. package/dist/cjs/internal/metric/state.js +5 -9
  83. package/dist/cjs/internal/metric/state.js.map +1 -1
  84. package/dist/cjs/internal/option.js +1 -1
  85. package/dist/cjs/internal/option.js.map +1 -1
  86. package/dist/cjs/internal/pool.js +1 -1
  87. package/dist/cjs/internal/pool.js.map +1 -1
  88. package/dist/cjs/internal/redBlackTree.js +1 -1
  89. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  90. package/dist/cjs/internal/runtime.js +12 -1
  91. package/dist/cjs/internal/runtime.js.map +1 -1
  92. package/dist/cjs/internal/schedule.js +4 -4
  93. package/dist/cjs/internal/schedule.js.map +1 -1
  94. package/dist/cjs/internal/secret.js +1 -1
  95. package/dist/cjs/internal/secret.js.map +1 -1
  96. package/dist/cjs/internal/sink.js +0 -2
  97. package/dist/cjs/internal/sink.js.map +1 -1
  98. package/dist/cjs/internal/stm/core.js +1 -1
  99. package/dist/cjs/internal/stm/core.js.map +1 -1
  100. package/dist/cjs/internal/stm/stm/stmState.js +6 -4
  101. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  102. package/dist/cjs/internal/stm/stm/tExit.js +7 -6
  103. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  104. package/dist/cjs/internal/stm/stm.js +1 -0
  105. package/dist/cjs/internal/stm/stm.js.map +1 -1
  106. package/dist/cjs/internal/stream.js +51 -64
  107. package/dist/cjs/internal/stream.js.map +1 -1
  108. package/dist/cjs/internal/trie.js +1 -1
  109. package/dist/cjs/internal/trie.js.map +1 -1
  110. package/dist/cjs/internal/version.js +1 -1
  111. package/dist/dts/BigDecimal.d.ts.map +1 -1
  112. package/dist/dts/BigInt.d.ts +7 -0
  113. package/dist/dts/BigInt.d.ts.map +1 -1
  114. package/dist/dts/Brand.d.ts +1 -1
  115. package/dist/dts/Brand.d.ts.map +1 -1
  116. package/dist/dts/Cause.d.ts +1 -1
  117. package/dist/dts/Cause.d.ts.map +1 -1
  118. package/dist/dts/Channel.d.ts +11 -11
  119. package/dist/dts/Channel.d.ts.map +1 -1
  120. package/dist/dts/Chunk.d.ts +3 -3
  121. package/dist/dts/Config.d.ts +4 -4
  122. package/dist/dts/Config.d.ts.map +1 -1
  123. package/dist/dts/Cron.d.ts +1 -1
  124. package/dist/dts/Cron.d.ts.map +1 -1
  125. package/dist/dts/Differ.d.ts +2 -2
  126. package/dist/dts/Differ.d.ts.map +1 -1
  127. package/dist/dts/Effect.d.ts +52 -108
  128. package/dist/dts/Effect.d.ts.map +1 -1
  129. package/dist/dts/Either.d.ts +126 -83
  130. package/dist/dts/Either.d.ts.map +1 -1
  131. package/dist/dts/Encoding.d.ts +6 -6
  132. package/dist/dts/Encoding.d.ts.map +1 -1
  133. package/dist/dts/Equal.d.ts.map +1 -1
  134. package/dist/dts/Exit.d.ts +2 -2
  135. package/dist/dts/Fiber.d.ts +2 -2
  136. package/dist/dts/Fiber.d.ts.map +1 -1
  137. package/dist/dts/FiberMap.d.ts +4 -5
  138. package/dist/dts/FiberMap.d.ts.map +1 -1
  139. package/dist/dts/GroupBy.d.ts +12 -12
  140. package/dist/dts/GroupBy.d.ts.map +1 -1
  141. package/dist/dts/Hash.d.ts +8 -0
  142. package/dist/dts/Hash.d.ts.map +1 -1
  143. package/dist/dts/Layer.d.ts +26 -26
  144. package/dist/dts/Layer.d.ts.map +1 -1
  145. package/dist/dts/List.d.ts +2 -2
  146. package/dist/dts/List.d.ts.map +1 -1
  147. package/dist/dts/Logger.d.ts +4 -4
  148. package/dist/dts/Match.d.ts +2 -2
  149. package/dist/dts/Match.d.ts.map +1 -1
  150. package/dist/dts/MergeDecision.d.ts +1 -1
  151. package/dist/dts/MergeState.d.ts +5 -5
  152. package/dist/dts/MergeState.d.ts.map +1 -1
  153. package/dist/dts/Metric.d.ts +13 -13
  154. package/dist/dts/Metric.d.ts.map +1 -1
  155. package/dist/dts/MetricPolling.d.ts +4 -4
  156. package/dist/dts/MetricPolling.d.ts.map +1 -1
  157. package/dist/dts/Number.d.ts +8 -0
  158. package/dist/dts/Number.d.ts.map +1 -1
  159. package/dist/dts/Option.d.ts +11 -11
  160. package/dist/dts/ReadonlyArray.d.ts +9 -8
  161. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  162. package/dist/dts/ReadonlyRecord.d.ts +111 -94
  163. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  164. package/dist/dts/Reloadable.d.ts +4 -4
  165. package/dist/dts/Reloadable.d.ts.map +1 -1
  166. package/dist/dts/RequestResolver.d.ts +13 -13
  167. package/dist/dts/RequestResolver.d.ts.map +1 -1
  168. package/dist/dts/Resource.d.ts +1 -1
  169. package/dist/dts/Resource.d.ts.map +1 -1
  170. package/dist/dts/STM.d.ts +144 -139
  171. package/dist/dts/STM.d.ts.map +1 -1
  172. package/dist/dts/Schedule.d.ts +171 -179
  173. package/dist/dts/Schedule.d.ts.map +1 -1
  174. package/dist/dts/SingleProducerAsyncInput.d.ts +1 -1
  175. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  176. package/dist/dts/Sink.d.ts +13 -13
  177. package/dist/dts/Sink.d.ts.map +1 -1
  178. package/dist/dts/SortedMap.d.ts.map +1 -1
  179. package/dist/dts/SortedSet.d.ts.map +1 -1
  180. package/dist/dts/Stream.d.ts +355 -366
  181. package/dist/dts/Stream.d.ts.map +1 -1
  182. package/dist/dts/Struct.d.ts +3 -3
  183. package/dist/dts/Struct.d.ts.map +1 -1
  184. package/dist/dts/SubscriptionRef.d.ts +2 -2
  185. package/dist/dts/TArray.d.ts +2 -2
  186. package/dist/dts/TDeferred.d.ts +3 -3
  187. package/dist/dts/TMap.d.ts +10 -10
  188. package/dist/dts/TSet.d.ts +4 -4
  189. package/dist/dts/Take.d.ts +2 -2
  190. package/dist/dts/TestAnnotation.d.ts +2 -2
  191. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  192. package/dist/dts/Types.d.ts +7 -0
  193. package/dist/dts/Types.d.ts.map +1 -1
  194. package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
  195. package/dist/dts/internal/metric/state.d.ts.map +1 -1
  196. package/dist/dts/internal/stm/stm.d.ts +2 -15
  197. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  198. package/dist/esm/BigDecimal.js +1 -1
  199. package/dist/esm/BigDecimal.js.map +1 -1
  200. package/dist/esm/BigInt.js +12 -0
  201. package/dist/esm/BigInt.js.map +1 -1
  202. package/dist/esm/Chunk.js +1 -1
  203. package/dist/esm/Chunk.js.map +1 -1
  204. package/dist/esm/Cron.js +1 -1
  205. package/dist/esm/Cron.js.map +1 -1
  206. package/dist/esm/Duration.js +1 -1
  207. package/dist/esm/Duration.js.map +1 -1
  208. package/dist/esm/Effect.js +13 -58
  209. package/dist/esm/Effect.js.map +1 -1
  210. package/dist/esm/Either.js +42 -5
  211. package/dist/esm/Either.js.map +1 -1
  212. package/dist/esm/Equal.js +1 -1
  213. package/dist/esm/Equal.js.map +1 -1
  214. package/dist/esm/Exit.js +1 -1
  215. package/dist/esm/FiberMap.js.map +1 -1
  216. package/dist/esm/Hash.js +27 -0
  217. package/dist/esm/Hash.js.map +1 -1
  218. package/dist/esm/List.js +3 -2
  219. package/dist/esm/List.js.map +1 -1
  220. package/dist/esm/Number.js +23 -0
  221. package/dist/esm/Number.js.map +1 -1
  222. package/dist/esm/ReadonlyArray.js +2 -2
  223. package/dist/esm/ReadonlyArray.js.map +1 -1
  224. package/dist/esm/ReadonlyRecord.js +70 -75
  225. package/dist/esm/ReadonlyRecord.js.map +1 -1
  226. package/dist/esm/STM.js.map +1 -1
  227. package/dist/esm/Schedule.js.map +1 -1
  228. package/dist/esm/Sink.js.map +1 -1
  229. package/dist/esm/SortedMap.js +1 -1
  230. package/dist/esm/SortedMap.js.map +1 -1
  231. package/dist/esm/SortedSet.js +1 -1
  232. package/dist/esm/SortedSet.js.map +1 -1
  233. package/dist/esm/Stream.js +5 -22
  234. package/dist/esm/Stream.js.map +1 -1
  235. package/dist/esm/Struct.js +3 -1
  236. package/dist/esm/Struct.js.map +1 -1
  237. package/dist/esm/TestAnnotation.js +1 -1
  238. package/dist/esm/TestAnnotation.js.map +1 -1
  239. package/dist/esm/internal/cache.js +1 -1
  240. package/dist/esm/internal/cache.js.map +1 -1
  241. package/dist/esm/internal/cause.js +1 -1
  242. package/dist/esm/internal/cause.js.map +1 -1
  243. package/dist/esm/internal/channel/channelExecutor.js +5 -5
  244. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  245. package/dist/esm/internal/channel/channelState.js +3 -3
  246. package/dist/esm/internal/channel/channelState.js.map +1 -1
  247. package/dist/esm/internal/channel.js.map +1 -1
  248. package/dist/esm/internal/clock.js +3 -4
  249. package/dist/esm/internal/clock.js.map +1 -1
  250. package/dist/esm/internal/context.js +1 -1
  251. package/dist/esm/internal/context.js.map +1 -1
  252. package/dist/esm/internal/core-effect.js +4 -20
  253. package/dist/esm/internal/core-effect.js.map +1 -1
  254. package/dist/esm/internal/core.js +12 -26
  255. package/dist/esm/internal/core.js.map +1 -1
  256. package/dist/esm/internal/data.js +1 -1
  257. package/dist/esm/internal/data.js.map +1 -1
  258. package/dist/esm/internal/effect/circular.js +5 -6
  259. package/dist/esm/internal/effect/circular.js.map +1 -1
  260. package/dist/esm/internal/effectable.js +2 -2
  261. package/dist/esm/internal/effectable.js.map +1 -1
  262. package/dist/esm/internal/either.js +1 -1
  263. package/dist/esm/internal/either.js.map +1 -1
  264. package/dist/esm/internal/fiberId.js +2 -9
  265. package/dist/esm/internal/fiberId.js.map +1 -1
  266. package/dist/esm/internal/fiberStatus.js +4 -3
  267. package/dist/esm/internal/fiberStatus.js.map +1 -1
  268. package/dist/esm/internal/groupBy.js.map +1 -1
  269. package/dist/esm/internal/hashMap.js +1 -1
  270. package/dist/esm/internal/hashMap.js.map +1 -1
  271. package/dist/esm/internal/hashSet.js +1 -1
  272. package/dist/esm/internal/hashSet.js.map +1 -1
  273. package/dist/esm/internal/keyedPool.js +2 -2
  274. package/dist/esm/internal/keyedPool.js.map +1 -1
  275. package/dist/esm/internal/layer.js +0 -2
  276. package/dist/esm/internal/layer.js.map +1 -1
  277. package/dist/esm/internal/metric/keyType.js +4 -4
  278. package/dist/esm/internal/metric/keyType.js.map +1 -1
  279. package/dist/esm/internal/metric/state.js +5 -9
  280. package/dist/esm/internal/metric/state.js.map +1 -1
  281. package/dist/esm/internal/option.js +1 -1
  282. package/dist/esm/internal/option.js.map +1 -1
  283. package/dist/esm/internal/pool.js +1 -1
  284. package/dist/esm/internal/pool.js.map +1 -1
  285. package/dist/esm/internal/redBlackTree.js +1 -1
  286. package/dist/esm/internal/redBlackTree.js.map +1 -1
  287. package/dist/esm/internal/runtime.js +12 -1
  288. package/dist/esm/internal/runtime.js.map +1 -1
  289. package/dist/esm/internal/schedule.js +4 -4
  290. package/dist/esm/internal/schedule.js.map +1 -1
  291. package/dist/esm/internal/secret.js +1 -1
  292. package/dist/esm/internal/secret.js.map +1 -1
  293. package/dist/esm/internal/sink.js +0 -2
  294. package/dist/esm/internal/sink.js.map +1 -1
  295. package/dist/esm/internal/stm/core.js +1 -1
  296. package/dist/esm/internal/stm/core.js.map +1 -1
  297. package/dist/esm/internal/stm/stm/stmState.js +5 -3
  298. package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
  299. package/dist/esm/internal/stm/stm/tExit.js +6 -5
  300. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  301. package/dist/esm/internal/stm/stm.js +1 -0
  302. package/dist/esm/internal/stm/stm.js.map +1 -1
  303. package/dist/esm/internal/stream.js +49 -59
  304. package/dist/esm/internal/stream.js.map +1 -1
  305. package/dist/esm/internal/trie.js +1 -1
  306. package/dist/esm/internal/trie.js.map +1 -1
  307. package/dist/esm/internal/version.js +1 -1
  308. package/package.json +3 -2
  309. package/src/BigDecimal.ts +2 -1
  310. package/src/BigInt.ts +13 -0
  311. package/src/Brand.ts +4 -4
  312. package/src/Cause.ts +1 -1
  313. package/src/Channel.ts +17 -17
  314. package/src/Chunk.ts +5 -5
  315. package/src/Config.ts +4 -4
  316. package/src/Cron.ts +4 -3
  317. package/src/Differ.ts +2 -2
  318. package/src/Duration.ts +2 -2
  319. package/src/Effect.ts +68 -145
  320. package/src/Either.ts +215 -133
  321. package/src/Encoding.ts +3 -3
  322. package/src/Equal.ts +1 -1
  323. package/src/Exit.ts +2 -2
  324. package/src/Fiber.ts +2 -2
  325. package/src/FiberMap.ts +0 -1
  326. package/src/GroupBy.ts +16 -16
  327. package/src/Hash.ts +31 -0
  328. package/src/Layer.ts +32 -32
  329. package/src/List.ts +6 -5
  330. package/src/Logger.ts +4 -4
  331. package/src/Match.ts +3 -3
  332. package/src/MergeDecision.ts +1 -1
  333. package/src/MergeState.ts +8 -8
  334. package/src/Metric.ts +13 -13
  335. package/src/MetricPolling.ts +9 -9
  336. package/src/Number.ts +26 -0
  337. package/src/Option.ts +17 -17
  338. package/src/ReadonlyArray.ts +23 -15
  339. package/src/ReadonlyRecord.ts +421 -265
  340. package/src/Reloadable.ts +4 -4
  341. package/src/RequestResolver.ts +19 -19
  342. package/src/Resource.ts +3 -3
  343. package/src/STM.ts +166 -213
  344. package/src/Schedule.ts +331 -361
  345. package/src/SingleProducerAsyncInput.ts +1 -1
  346. package/src/Sink.ts +19 -19
  347. package/src/SortedMap.ts +5 -1
  348. package/src/SortedSet.ts +5 -1
  349. package/src/Stream.ts +449 -456
  350. package/src/Struct.ts +8 -5
  351. package/src/SubscriptionRef.ts +2 -2
  352. package/src/TArray.ts +2 -2
  353. package/src/TDeferred.ts +4 -4
  354. package/src/TMap.ts +10 -10
  355. package/src/TSet.ts +4 -4
  356. package/src/Take.ts +4 -4
  357. package/src/TestAnnotation.ts +7 -9
  358. package/src/Types.ts +11 -0
  359. package/src/internal/blockedRequests.ts +2 -2
  360. package/src/internal/cache.ts +2 -1
  361. package/src/internal/cause.ts +4 -3
  362. package/src/internal/channel/channelExecutor.ts +26 -26
  363. package/src/internal/channel/channelState.ts +13 -13
  364. package/src/internal/channel/mergeDecision.ts +1 -1
  365. package/src/internal/channel/mergeState.ts +6 -6
  366. package/src/internal/channel/singleProducerAsyncInput.ts +5 -5
  367. package/src/internal/channel.ts +43 -43
  368. package/src/internal/clock.ts +3 -4
  369. package/src/internal/config.ts +7 -7
  370. package/src/internal/configError.ts +1 -1
  371. package/src/internal/configProvider/pathPatch.ts +2 -2
  372. package/src/internal/configProvider.ts +1 -1
  373. package/src/internal/context.ts +1 -1
  374. package/src/internal/core-effect.ts +28 -43
  375. package/src/internal/core.ts +19 -44
  376. package/src/internal/data.ts +1 -1
  377. package/src/internal/dataSource.ts +26 -26
  378. package/src/internal/differ/orPatch.ts +7 -7
  379. package/src/internal/differ.ts +2 -2
  380. package/src/internal/effect/circular.ts +10 -11
  381. package/src/internal/effectable.ts +3 -3
  382. package/src/internal/either.ts +23 -20
  383. package/src/internal/encoding/base64.ts +1 -1
  384. package/src/internal/encoding/base64Url.ts +1 -1
  385. package/src/internal/encoding/hex.ts +1 -1
  386. package/src/internal/fiber.ts +2 -2
  387. package/src/internal/fiberId.ts +7 -13
  388. package/src/internal/fiberRuntime.ts +9 -9
  389. package/src/internal/fiberStatus.ts +7 -6
  390. package/src/internal/groupBy.ts +40 -40
  391. package/src/internal/hashMap.ts +2 -2
  392. package/src/internal/hashSet.ts +4 -1
  393. package/src/internal/keyedPool.ts +4 -2
  394. package/src/internal/layer/circular.ts +4 -4
  395. package/src/internal/layer.ts +52 -54
  396. package/src/internal/matcher.ts +5 -5
  397. package/src/internal/metric/keyType.ts +7 -5
  398. package/src/internal/metric/polling.ts +8 -8
  399. package/src/internal/metric/state.ts +11 -10
  400. package/src/internal/metric.ts +6 -6
  401. package/src/internal/option.ts +1 -1
  402. package/src/internal/pool.ts +2 -1
  403. package/src/internal/redBlackTree.ts +2 -2
  404. package/src/internal/reloadable.ts +4 -4
  405. package/src/internal/resource.ts +2 -2
  406. package/src/internal/runtime.ts +32 -19
  407. package/src/internal/schedule.ts +430 -500
  408. package/src/internal/secret.ts +2 -1
  409. package/src/internal/sink.ts +27 -29
  410. package/src/internal/stm/core.ts +24 -24
  411. package/src/internal/stm/stm/stmState.ts +16 -11
  412. package/src/internal/stm/stm/tExit.ts +15 -9
  413. package/src/internal/stm/stm.ts +158 -157
  414. package/src/internal/stm/tArray.ts +3 -3
  415. package/src/internal/stm/tDeferred.ts +5 -5
  416. package/src/internal/stm/tMap.ts +13 -13
  417. package/src/internal/stm/tSet.ts +4 -4
  418. package/src/internal/stream.ts +688 -723
  419. package/src/internal/subscriptionRef.ts +3 -3
  420. package/src/internal/take.ts +6 -6
  421. package/src/internal/trie.ts +2 -2
  422. package/src/internal/version.ts +1 -1
@@ -71,12 +71,8 @@ class Runtime implements FiberId.Runtime {
71
71
  readonly id: number,
72
72
  readonly startTimeMillis: number
73
73
  ) {}
74
- _hash: number | undefined;
75
74
  [Hash.symbol](): number {
76
- if (this._hash == undefined) {
77
- this._hash = Hash.string(`${FiberIdSymbolKey}-${this._tag}-${this.id}-${this.startTimeMillis}`)
78
- }
79
- return this._hash
75
+ return Hash.cached(this, Hash.string(`${FiberIdSymbolKey}-${this._tag}-${this.id}-${this.startTimeMillis}`))
80
76
  }
81
77
  [Equal.symbol](that: unknown): boolean {
82
78
  return isFiberId(that) &&
@@ -111,14 +107,12 @@ class Composite implements FiberId.Composite {
111
107
  }
112
108
  _hash: number | undefined;
113
109
  [Hash.symbol](): number {
114
- if (this._hash == undefined) {
115
- this._hash = pipe(
116
- Hash.string(`${FiberIdSymbolKey}-${this._tag}`),
117
- Hash.combine(Hash.hash(this.left)),
118
- Hash.combine(Hash.hash(this.right))
119
- )
120
- }
121
- return this._hash
110
+ return pipe(
111
+ Hash.string(`${FiberIdSymbolKey}-${this._tag}`),
112
+ Hash.combine(Hash.hash(this.left)),
113
+ Hash.combine(Hash.hash(this.right)),
114
+ Hash.cached(this)
115
+ )
122
116
  }
123
117
  [Equal.symbol](that: unknown): boolean {
124
118
  return isFiberId(that) &&
@@ -1915,9 +1915,9 @@ export const forEachParUnbounded = <A, B, E, R>(
1915
1915
  })
1916
1916
 
1917
1917
  /** @internal */
1918
- export const forEachConcurrentDiscard = <A, _, E, R>(
1918
+ export const forEachConcurrentDiscard = <A, X, E, R>(
1919
1919
  self: Iterable<A>,
1920
- f: (a: A, i: number) => Effect.Effect<_, E, R>,
1920
+ f: (a: A, i: number) => Effect.Effect<X, E, R>,
1921
1921
  batching: boolean,
1922
1922
  processAll: boolean,
1923
1923
  n?: number
@@ -1933,7 +1933,7 @@ export const forEachConcurrentDiscard = <A, _, E, R>(
1933
1933
  let counter = 0
1934
1934
  let interrupted = false
1935
1935
  const fibersCount = n ? Math.min(todos.length, n) : todos.length
1936
- const fibers = new Set<FiberRuntime<Exit.Exit<_, E> | Effect.Blocked<_, E>>>()
1936
+ const fibers = new Set<FiberRuntime<Exit.Exit<X, E> | Effect.Blocked<X, E>>>()
1937
1937
  const results = new Array()
1938
1938
  const interruptAll = () =>
1939
1939
  fibers.forEach((fiber) => {
@@ -1941,8 +1941,8 @@ export const forEachConcurrentDiscard = <A, _, E, R>(
1941
1941
  fiber.unsafeInterruptAsFork(parent.id())
1942
1942
  }, 0)
1943
1943
  })
1944
- const startOrder = new Array<FiberRuntime<Exit.Exit<_, E> | Effect.Blocked<_, E>>>()
1945
- const joinOrder = new Array<FiberRuntime<Exit.Exit<_, E> | Effect.Blocked<_, E>>>()
1944
+ const startOrder = new Array<FiberRuntime<Exit.Exit<X, E> | Effect.Blocked<X, E>>>()
1945
+ const joinOrder = new Array<FiberRuntime<Exit.Exit<X, E> | Effect.Blocked<X, E>>>()
1946
1946
  const residual = new Array<core.Blocked>()
1947
1947
  const collectExits = () => {
1948
1948
  const exits: Array<Exit.Exit<any, E>> = results
@@ -1978,7 +1978,7 @@ export const forEachConcurrentDiscard = <A, _, E, R>(
1978
1978
  const stepOrExit = batching ? core.step : core.exit
1979
1979
  const processingFiber = runFiber(
1980
1980
  core.async<any, any, any>((resume) => {
1981
- const pushResult = <_, E>(res: Exit.Exit<_, E> | Effect.Blocked<_, E>, index: number) => {
1981
+ const pushResult = <X, E>(res: Exit.Exit<X, E> | Effect.Blocked<X, E>, index: number) => {
1982
1982
  if (res._op === "Blocked") {
1983
1983
  residual.push(res as core.Blocked)
1984
1984
  } else {
@@ -2002,8 +2002,8 @@ export const forEachConcurrentDiscard = <A, _, E, R>(
2002
2002
  ))
2003
2003
  }
2004
2004
  const onRes = (
2005
- res: Exit.Exit<_, E> | Effect.Blocked<_, E>
2006
- ): Effect.Effect<Exit.Exit<_, E> | Effect.Blocked<_, E>, never, R> => {
2005
+ res: Exit.Exit<X, E> | Effect.Blocked<X, E>
2006
+ ): Effect.Effect<Exit.Exit<X, E> | Effect.Blocked<X, E>, never, R> => {
2007
2007
  if (todos.length > 0) {
2008
2008
  pushResult(res, index)
2009
2009
  if (todos.length > 0) {
@@ -3315,7 +3315,7 @@ export const raceFibersWith = dual<
3315
3315
  }, FiberId.combine(leftFiber.id(), rightFiber.id()))
3316
3316
  }))
3317
3317
 
3318
- const completeRace = <R, R1, R2, E2, A2, R3, E3, A3>(
3318
+ const completeRace = <A2, A3, E2, E3, R, R1, R2, R3>(
3319
3319
  winner: Fiber.RuntimeFiber<any, any>,
3320
3320
  loser: Fiber.RuntimeFiber<any, any>,
3321
3321
  cont: (winner: Fiber.RuntimeFiber<any, any>, loser: Fiber.RuntimeFiber<any, any>) => Effect.Effect<any, any, any>,
@@ -31,15 +31,14 @@ export const OP_SUSPENDED = "Suspended" as const
31
31
  /** @internal */
32
32
  export type OP_SUSPENDED = typeof OP_SUSPENDED
33
33
 
34
+ const DoneHash = Hash.string(`${FiberStatusSymbolKey}-${OP_DONE}`)
35
+
34
36
  /** @internal */
35
37
  class Done implements FiberStatus.Done {
36
38
  readonly [FiberStatusTypeId]: FiberStatus.FiberStatusTypeId = FiberStatusTypeId
37
39
  readonly _tag = OP_DONE;
38
40
  [Hash.symbol](): number {
39
- return pipe(
40
- Hash.hash(FiberStatusSymbolKey),
41
- Hash.combine(Hash.hash(this._tag))
42
- )
41
+ return DoneHash
43
42
  }
44
43
  [Equal.symbol](that: unknown): boolean {
45
44
  return isFiberStatus(that) && that._tag === OP_DONE
@@ -55,7 +54,8 @@ class Running implements FiberStatus.Running {
55
54
  return pipe(
56
55
  Hash.hash(FiberStatusSymbolKey),
57
56
  Hash.combine(Hash.hash(this._tag)),
58
- Hash.combine(Hash.hash(this.runtimeFlags))
57
+ Hash.combine(Hash.hash(this.runtimeFlags)),
58
+ Hash.cached(this)
59
59
  )
60
60
  }
61
61
  [Equal.symbol](that: unknown): boolean {
@@ -80,7 +80,8 @@ class Suspended implements FiberStatus.Suspended {
80
80
  Hash.hash(FiberStatusSymbolKey),
81
81
  Hash.combine(Hash.hash(this._tag)),
82
82
  Hash.combine(Hash.hash(this.runtimeFlags)),
83
- Hash.combine(Hash.hash(this.blockingOn))
83
+ Hash.combine(Hash.hash(this.blockingOn)),
84
+ Hash.cached(this)
84
85
  )
85
86
  }
86
87
  [Equal.symbol](that: unknown): boolean {
@@ -13,7 +13,7 @@ import * as Queue from "../Queue.js"
13
13
  import * as Ref from "../Ref.js"
14
14
  import type * as Stream from "../Stream.js"
15
15
  import type * as Take from "../Take.js"
16
- import type { NoInfer } from "../Types.js"
16
+ import type { MergeRecord, NoInfer } from "../Types.js"
17
17
  import * as channel from "./channel.js"
18
18
  import * as channelExecutor from "./channel/channelExecutor.js"
19
19
  import * as core from "./core-stream.js"
@@ -45,14 +45,14 @@ export const isGroupBy = (u: unknown): u is GroupBy.GroupBy<unknown, unknown, un
45
45
 
46
46
  /** @internal */
47
47
  export const evaluate = dual<
48
- <K, E, V, R2, E2, A>(
48
+ <K, V, E, A, E2, R2>(
49
49
  f: (key: K, stream: Stream.Stream<V, E>) => Stream.Stream<A, E2, R2>,
50
50
  options?: {
51
51
  readonly bufferSize?: number | undefined
52
52
  }
53
- ) => <R>(self: GroupBy.GroupBy<R, E, K, V>) => Stream.Stream<A, E | E2, R2 | R>,
54
- <R, K, E, V, R2, E2, A>(
55
- self: GroupBy.GroupBy<R, E, K, V>,
53
+ ) => <R>(self: GroupBy.GroupBy<K, V, E, R>) => Stream.Stream<A, E | E2, R2 | R>,
54
+ <K, V, E, R, A, E2, R2>(
55
+ self: GroupBy.GroupBy<K, V, E, R>,
56
56
  f: (key: K, stream: Stream.Stream<V, E>) => Stream.Stream<A, E2, R2>,
57
57
  options?: {
58
58
  readonly bufferSize?: number | undefined
@@ -60,8 +60,8 @@ export const evaluate = dual<
60
60
  ) => Stream.Stream<A, E | E2, R2 | R>
61
61
  >(
62
62
  (args) => isGroupBy(args[0]),
63
- <R, K, E, V, R2, E2, A>(
64
- self: GroupBy.GroupBy<R, E, K, V>,
63
+ <K, V, E, R, A, E2, R2>(
64
+ self: GroupBy.GroupBy<K, V, E, R>,
65
65
  f: (key: K, stream: Stream.Stream<V, E>) => Stream.Stream<A, E2, R2>,
66
66
  options?: {
67
67
  readonly bufferSize?: number | undefined
@@ -76,9 +76,9 @@ export const evaluate = dual<
76
76
 
77
77
  /** @internal */
78
78
  export const filter = dual<
79
- <K>(predicate: Predicate<NoInfer<K>>) => <R, E, V>(self: GroupBy.GroupBy<R, E, K, V>) => GroupBy.GroupBy<R, E, K, V>,
80
- <R, E, V, K>(self: GroupBy.GroupBy<R, E, K, V>, predicate: Predicate<K>) => GroupBy.GroupBy<R, E, K, V>
81
- >(2, <R, E, V, K>(self: GroupBy.GroupBy<R, E, K, V>, predicate: Predicate<K>): GroupBy.GroupBy<R, E, K, V> =>
79
+ <K>(predicate: Predicate<NoInfer<K>>) => <V, E, R>(self: GroupBy.GroupBy<K, V, E, R>) => GroupBy.GroupBy<K, V, E, R>,
80
+ <K, V, E, R>(self: GroupBy.GroupBy<K, V, E, R>, predicate: Predicate<K>) => GroupBy.GroupBy<K, V, E, R>
81
+ >(2, <K, V, E, R>(self: GroupBy.GroupBy<K, V, E, R>, predicate: Predicate<K>): GroupBy.GroupBy<K, V, E, R> =>
82
82
  make(
83
83
  pipe(
84
84
  self.grouped,
@@ -93,9 +93,9 @@ export const filter = dual<
93
93
 
94
94
  /** @internal */
95
95
  export const first = dual<
96
- (n: number) => <R, E, K, V>(self: GroupBy.GroupBy<R, E, K, V>) => GroupBy.GroupBy<R, E, K, V>,
97
- <R, E, K, V>(self: GroupBy.GroupBy<R, E, K, V>, n: number) => GroupBy.GroupBy<R, E, K, V>
98
- >(2, <R, E, K, V>(self: GroupBy.GroupBy<R, E, K, V>, n: number): GroupBy.GroupBy<R, E, K, V> =>
96
+ (n: number) => <K, V, E, R>(self: GroupBy.GroupBy<K, V, E, R>) => GroupBy.GroupBy<K, V, E, R>,
97
+ <K, V, E, R>(self: GroupBy.GroupBy<K, V, E, R>, n: number) => GroupBy.GroupBy<K, V, E, R>
98
+ >(2, <K, V, E, R>(self: GroupBy.GroupBy<K, V, E, R>, n: number): GroupBy.GroupBy<K, V, E, R> =>
99
99
  make(
100
100
  pipe(
101
101
  stream.zipWithIndex(self.grouped),
@@ -112,9 +112,9 @@ export const first = dual<
112
112
  ))
113
113
 
114
114
  /** @internal */
115
- export const make = <R, E, K, V>(
115
+ export const make = <K, V, E, R>(
116
116
  grouped: Stream.Stream<readonly [K, Queue.Dequeue<Take.Take<V, E>>], E, R>
117
- ): GroupBy.GroupBy<R, E, K, V> => ({
117
+ ): GroupBy.GroupBy<K, V, E, R> => ({
118
118
  [GroupByTypeId]: groupByVariance,
119
119
  pipe() {
120
120
  return pipeArguments(this, arguments)
@@ -126,28 +126,28 @@ export const make = <R, E, K, V>(
126
126
 
127
127
  /** @internal */
128
128
  export const groupBy = dual<
129
- <A, R2, E2, K, V>(
129
+ <A, K, V, E2, R2>(
130
130
  f: (a: A) => Effect.Effect<readonly [K, V], E2, R2>,
131
131
  options?: {
132
132
  readonly bufferSize?: number | undefined
133
133
  }
134
- ) => <R, E>(self: Stream.Stream<A, E, R>) => GroupBy.GroupBy<R2 | R, E2 | E, K, V>,
135
- <R, E, A, R2, E2, K, V>(
134
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => GroupBy.GroupBy<K, V, E2 | E, R2 | R>,
135
+ <A, E, R, K, V, E2, R2>(
136
136
  self: Stream.Stream<A, E, R>,
137
137
  f: (a: A) => Effect.Effect<readonly [K, V], E2, R2>,
138
138
  options?: {
139
139
  readonly bufferSize?: number | undefined
140
140
  }
141
- ) => GroupBy.GroupBy<R2 | R, E2 | E, K, V>
141
+ ) => GroupBy.GroupBy<K, V, E2 | E, R2 | R>
142
142
  >(
143
143
  (args) => stream.isStream(args[0]),
144
- <R, E, A, R2, E2, K, V>(
144
+ <A, E, R, K, V, E2, R2>(
145
145
  self: Stream.Stream<A, E, R>,
146
146
  f: (a: A) => Effect.Effect<readonly [K, V], E2, R2>,
147
147
  options?: {
148
148
  readonly bufferSize?: number | undefined
149
149
  }
150
- ): GroupBy.GroupBy<R | R2, E | E2, K, V> =>
150
+ ): GroupBy.GroupBy<K, V, E | E2, R | R2> =>
151
151
  make(
152
152
  stream.unwrapScoped(
153
153
  Effect.gen(function*($) {
@@ -209,23 +209,23 @@ export const groupBy = dual<
209
209
  /** @internal */
210
210
  export const mapEffectOptions = dual<
211
211
  {
212
- <A, R2, E2, A2>(
212
+ <A, A2, E2, R2>(
213
213
  f: (a: A) => Effect.Effect<A2, E2, R2>,
214
214
  options?: {
215
215
  readonly concurrency?: number | "unbounded" | undefined
216
216
  readonly unordered?: boolean | undefined
217
217
  }
218
- ): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>
219
- <A, R2, E2, A2, K>(
218
+ ): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>
219
+ <A, A2, E2, R2, K>(
220
220
  f: (a: A) => Effect.Effect<A2, E2, R2>,
221
221
  options: {
222
222
  readonly key: (a: A) => K
223
223
  readonly bufferSize?: number | undefined
224
224
  }
225
- ): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>
225
+ ): <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>
226
226
  },
227
227
  {
228
- <R, E, A, R2, E2, A2>(
228
+ <A, E, R, A2, E2, R2>(
229
229
  self: Stream.Stream<A, E, R>,
230
230
  f: (a: A) => Effect.Effect<A2, E2, R2>,
231
231
  options?: {
@@ -233,7 +233,7 @@ export const mapEffectOptions = dual<
233
233
  readonly unordered?: boolean | undefined
234
234
  }
235
235
  ): Stream.Stream<A2, E2 | E, R2 | R>
236
- <R, E, A, R2, E2, A2, K>(
236
+ <A, E, R, A2, E2, R2, K>(
237
237
  self: Stream.Stream<A, E, R>,
238
238
  f: (a: A) => Effect.Effect<A2, E2, R2>,
239
239
  options: {
@@ -244,7 +244,7 @@ export const mapEffectOptions = dual<
244
244
  }
245
245
  >(
246
246
  (args) => typeof args[0] !== "function",
247
- (<R, E, A, R2, E2, A2, K>(
247
+ (<A, E, R, A2, E2, R2, K>(
248
248
  self: Stream.Stream<A, E, R>,
249
249
  f: (a: A) => Effect.Effect<A2, E2, R2>,
250
250
  options?: {
@@ -274,19 +274,19 @@ export const mapEffectOptions = dual<
274
274
 
275
275
  /** @internal */
276
276
  export const bindEffect = dual<
277
- <N extends string, K, R2, E2, A>(
277
+ <N extends string, K, A, E2, R2>(
278
278
  tag: Exclude<N, keyof K>,
279
279
  f: (_: K) => Effect.Effect<A, E2, R2>,
280
280
  options?: {
281
281
  readonly concurrency?: number | "unbounded" | undefined
282
282
  readonly bufferSize?: number | undefined
283
283
  }
284
- ) => <R, E>(self: Stream.Stream<K, E, R>) => Stream.Stream<
285
- Effect.MergeRecord<K, { [k in N]: A }>,
284
+ ) => <E, R>(self: Stream.Stream<K, E, R>) => Stream.Stream<
285
+ MergeRecord<K, { [k in N]: A }>,
286
286
  E | E2,
287
287
  R | R2
288
288
  >,
289
- <R, E, N extends string, K, R2, E2, A>(
289
+ <K, E, R, N extends string, A, E2, R2>(
290
290
  self: Stream.Stream<K, E, R>,
291
291
  tag: Exclude<N, keyof K>,
292
292
  f: (_: K) => Effect.Effect<A, E2, R2>,
@@ -295,11 +295,11 @@ export const bindEffect = dual<
295
295
  readonly unordered?: boolean | undefined
296
296
  }
297
297
  ) => Stream.Stream<
298
- Effect.MergeRecord<K, { [k in N]: A }>,
298
+ MergeRecord<K, { [k in N]: A }>,
299
299
  E | E2,
300
300
  R | R2
301
301
  >
302
- >((args) => typeof args[0] !== "string", <R, E, N extends string, K, R2, E2, A>(
302
+ >((args) => typeof args[0] !== "string", <K, E, R, N extends string, A, E2, R2>(
303
303
  self: Stream.Stream<K, E, R>,
304
304
  tag: Exclude<N, keyof K>,
305
305
  f: (_: K) => Effect.Effect<A, E2, R2>,
@@ -311,7 +311,7 @@ export const bindEffect = dual<
311
311
  mapEffectOptions(self, (k) =>
312
312
  Effect.map(
313
313
  f(k),
314
- (a): Effect.MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: a } as any)
314
+ (a): MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: a } as any)
315
315
  ), options))
316
316
 
317
317
  const mapDequeue = <A, B>(dequeue: Queue.Dequeue<A>, f: (a: A) => B): Queue.Dequeue<B> => new MapDequeue(dequeue, f)
@@ -399,23 +399,23 @@ export const groupByKey = dual<
399
399
  options?: {
400
400
  readonly bufferSize?: number | undefined
401
401
  }
402
- ) => <R, E>(self: Stream.Stream<A, E, R>) => GroupBy.GroupBy<R, E, K, A>,
403
- <R, E, A, K>(
402
+ ) => <E, R>(self: Stream.Stream<A, E, R>) => GroupBy.GroupBy<K, A, E, R>,
403
+ <A, E, R, K>(
404
404
  self: Stream.Stream<A, E, R>,
405
405
  f: (a: A) => K,
406
406
  options?: {
407
407
  readonly bufferSize?: number | undefined
408
408
  }
409
- ) => GroupBy.GroupBy<R, E, K, A>
409
+ ) => GroupBy.GroupBy<K, A, E, R>
410
410
  >(
411
411
  (args) => typeof args[0] !== "function",
412
- <R, E, A, K>(
412
+ <A, E, R, K>(
413
413
  self: Stream.Stream<A, E, R>,
414
414
  f: (a: A) => K,
415
415
  options?: {
416
416
  readonly bufferSize?: number | undefined
417
417
  }
418
- ): GroupBy.GroupBy<R, E, K, A> => {
418
+ ): GroupBy.GroupBy<K, A, E, R> => {
419
419
  const loop = (
420
420
  map: Map<K, Queue.Queue<Take.Take<A, E>>>,
421
421
  outerQueue: Queue.Queue<Take.Take<readonly [K, Queue.Queue<Take.Take<A, E>>], E>>
@@ -47,12 +47,12 @@ const HashMapProto: HM.HashMap<unknown, unknown> = {
47
47
  [Symbol.iterator]<K, V>(this: HashMapImpl<K, V>): Iterator<[K, V]> {
48
48
  return new HashMapIterator(this, (k, v) => [k, v])
49
49
  },
50
- [Hash.symbol](): number {
50
+ [Hash.symbol](this: HM.HashMap<unknown, unknown>): number {
51
51
  let hash = Hash.hash(HashMapSymbolKey)
52
52
  for (const item of this) {
53
53
  hash ^= pipe(Hash.hash(item[0]), Hash.combine(Hash.hash(item[1])))
54
54
  }
55
- return hash
55
+ return Hash.cached(this, hash)
56
56
  },
57
57
  [Equal.symbol]<K, V>(this: HashMapImpl<K, V>, that: unknown): boolean {
58
58
  if (isHashMap(that)) {
@@ -26,7 +26,10 @@ const HashSetProto: Omit<HashSetImpl<unknown>, "_keyMap"> = {
26
26
  return HM.keys(this._keyMap)
27
27
  },
28
28
  [Hash.symbol]<A>(this: HashSetImpl<A>): number {
29
- return Hash.combine(Hash.hash(this._keyMap))(Hash.hash(HashSetSymbolKey))
29
+ return Hash.cached(
30
+ this,
31
+ Hash.combine(Hash.hash(this._keyMap))(Hash.hash(HashSetSymbolKey))
32
+ )
30
33
  },
31
34
  [Equal.symbol]<A>(this: HashSetImpl<A>, that: unknown): boolean {
32
35
  if (isHashSet(that)) {
@@ -62,7 +62,8 @@ class Complete<in out A, out E> implements Equal.Equal {
62
62
  [Hash.symbol](): number {
63
63
  return pipe(
64
64
  Hash.string("effect/KeyedPool/Complete"),
65
- Hash.combine(Hash.hash(this.pool))
65
+ Hash.combine(Hash.hash(this.pool)),
66
+ Hash.cached(this)
66
67
  )
67
68
  }
68
69
  [Equal.symbol](u: unknown): boolean {
@@ -80,7 +81,8 @@ class Pending<in out A, in out E> implements Equal.Equal {
80
81
  [Hash.symbol](): number {
81
82
  return pipe(
82
83
  Hash.string("effect/KeyedPool/Pending"),
83
- Hash.combine(Hash.hash(this.deferred))
84
+ Hash.combine(Hash.hash(this.deferred)),
85
+ Hash.cached(this)
84
86
  )
85
87
  }
86
88
  [Equal.symbol](u: unknown): boolean {
@@ -81,10 +81,10 @@ export const replaceLogger = dual<
81
81
 
82
82
  /** @internal */
83
83
  export const replaceLoggerEffect = dual<
84
- <R, E, B>(
84
+ <B, E, R>(
85
85
  that: Effect.Effect<Logger.Logger<unknown, B>, E, R>
86
86
  ) => <A>(self: Logger.Logger<unknown, A>) => Layer.Layer<never, E, R>,
87
- <A, R, E, B>(
87
+ <A, B, E, R>(
88
88
  self: Logger.Logger<unknown, A>,
89
89
  that: Effect.Effect<Logger.Logger<unknown, B>, E, R>
90
90
  ) => Layer.Layer<never, E, R>
@@ -92,10 +92,10 @@ export const replaceLoggerEffect = dual<
92
92
 
93
93
  /** @internal */
94
94
  export const replaceLoggerScoped = dual<
95
- <R, E, B>(
95
+ <B, E, R>(
96
96
  that: Effect.Effect<Logger.Logger<unknown, B>, E, R>
97
97
  ) => <A>(self: Logger.Logger<unknown, A>) => Layer.Layer<never, E, Exclude<R, Scope>>,
98
- <A, R, E, B>(
98
+ <A, B, E, R>(
99
99
  self: Logger.Logger<unknown, A>,
100
100
  that: Effect.Effect<Logger.Logger<unknown, B>, E, R>
101
101
  ) => Layer.Layer<never, E, Exclude<R, Scope>>