effect 2.0.0-next.55 → 2.0.0-next.56

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 (652) hide show
  1. package/README.md +14 -9
  2. package/dist/cjs/Cache.js.map +1 -1
  3. package/dist/cjs/Cause.js +53 -18
  4. package/dist/cjs/Cause.js.map +1 -1
  5. package/dist/cjs/ChildExecutorDecision.js.map +1 -1
  6. package/dist/cjs/Chunk.js +5 -5
  7. package/dist/cjs/Chunk.js.map +1 -1
  8. package/dist/cjs/Data.js +11 -20
  9. package/dist/cjs/Data.js.map +1 -1
  10. package/dist/cjs/Duration.js +4 -0
  11. package/dist/cjs/Duration.js.map +1 -1
  12. package/dist/cjs/Effect.js +11 -4
  13. package/dist/cjs/Effect.js.map +1 -1
  14. package/dist/cjs/Either.js +9 -2
  15. package/dist/cjs/Either.js.map +1 -1
  16. package/dist/cjs/Exit.js.map +1 -1
  17. package/dist/cjs/Fiber.js.map +1 -1
  18. package/dist/cjs/HashMap.js.map +1 -1
  19. package/dist/cjs/KeyedPool.js.map +1 -1
  20. package/dist/cjs/List.js.map +1 -1
  21. package/dist/cjs/MergeState.js.map +1 -1
  22. package/dist/cjs/MetricPolling.js +2 -2
  23. package/dist/cjs/MetricPolling.js.map +1 -1
  24. package/dist/cjs/MetricState.js.map +1 -1
  25. package/dist/cjs/NonEmptyIterable.js.map +1 -1
  26. package/dist/cjs/Option.js +2 -2
  27. package/dist/cjs/Option.js.map +1 -1
  28. package/dist/cjs/Pipeable.js.map +1 -1
  29. package/dist/cjs/Predicate.js +17 -1
  30. package/dist/cjs/Predicate.js.map +1 -1
  31. package/dist/cjs/PrimaryKey.js +15 -0
  32. package/dist/cjs/PrimaryKey.js.map +1 -0
  33. package/dist/cjs/Queue.js +6 -1
  34. package/dist/cjs/Queue.js.map +1 -1
  35. package/dist/cjs/ReadonlyArray.js +2 -0
  36. package/dist/cjs/ReadonlyArray.js.map +1 -1
  37. package/dist/cjs/ReadonlyRecord.js +2 -2
  38. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  39. package/dist/cjs/RedBlackTree.js.map +1 -1
  40. package/dist/cjs/Request.js +35 -1
  41. package/dist/cjs/Request.js.map +1 -1
  42. package/dist/cjs/STM.js +1 -1
  43. package/dist/cjs/STM.js.map +1 -1
  44. package/dist/cjs/Sink.js.map +1 -1
  45. package/dist/cjs/SortedMap.js +4 -1
  46. package/dist/cjs/SortedMap.js.map +1 -1
  47. package/dist/cjs/SortedSet.js +2 -2
  48. package/dist/cjs/SortedSet.js.map +1 -1
  49. package/dist/cjs/Stream.js.map +1 -1
  50. package/dist/cjs/SubscriptionRef.js.map +1 -1
  51. package/dist/cjs/TPubSub.js.map +1 -1
  52. package/dist/cjs/TestAnnotation.js +3 -1
  53. package/dist/cjs/TestAnnotation.js.map +1 -1
  54. package/dist/cjs/TestClock.js.map +1 -1
  55. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  56. package/dist/cjs/index.js +4 -2
  57. package/dist/cjs/index.js.map +1 -1
  58. package/dist/cjs/internal/cache.js.map +1 -1
  59. package/dist/cjs/internal/cause.js +4 -103
  60. package/dist/cjs/internal/cause.js.map +1 -1
  61. package/dist/cjs/internal/channel/continuation.js.map +1 -1
  62. package/dist/cjs/internal/configProvider.js +13 -1
  63. package/dist/cjs/internal/configProvider.js.map +1 -1
  64. package/dist/cjs/internal/core-effect.js +7 -7
  65. package/dist/cjs/internal/core-effect.js.map +1 -1
  66. package/dist/cjs/internal/core-stream.js.map +1 -1
  67. package/dist/cjs/internal/core.js +159 -11
  68. package/dist/cjs/internal/core.js.map +1 -1
  69. package/dist/cjs/internal/data.js +4 -22
  70. package/dist/cjs/internal/data.js.map +1 -1
  71. package/dist/cjs/internal/dataSource.js +1 -1
  72. package/dist/cjs/internal/dataSource.js.map +1 -1
  73. package/dist/cjs/internal/deferred.js.map +1 -1
  74. package/dist/cjs/internal/differ/orPatch.js.map +1 -1
  75. package/dist/cjs/internal/effect/circular.js.map +1 -1
  76. package/dist/cjs/internal/effectable.js +21 -3
  77. package/dist/cjs/internal/effectable.js.map +1 -1
  78. package/dist/cjs/internal/fiberMessage.js.map +1 -1
  79. package/dist/cjs/internal/fiberRuntime.js +9 -10
  80. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  81. package/dist/cjs/internal/hashMap.js +1 -1
  82. package/dist/cjs/internal/hashMap.js.map +1 -1
  83. package/dist/cjs/internal/hashSet.js +2 -2
  84. package/dist/cjs/internal/hashSet.js.map +1 -1
  85. package/dist/cjs/internal/keyedPool.js.map +1 -1
  86. package/dist/cjs/internal/layer.js.map +1 -1
  87. package/dist/cjs/internal/metric/polling.js +7 -7
  88. package/dist/cjs/internal/metric/polling.js.map +1 -1
  89. package/dist/cjs/internal/metric.js +4 -0
  90. package/dist/cjs/internal/metric.js.map +1 -1
  91. package/dist/cjs/internal/pool.js.map +1 -1
  92. package/dist/cjs/internal/pubsub.js +24 -23
  93. package/dist/cjs/internal/pubsub.js.map +1 -1
  94. package/dist/cjs/internal/queue.js +10 -1
  95. package/dist/cjs/internal/queue.js.map +1 -1
  96. package/dist/cjs/internal/redBlackTree.js +5 -1
  97. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  98. package/dist/cjs/internal/reloadable.js.map +1 -1
  99. package/dist/cjs/internal/request.js +29 -15
  100. package/dist/cjs/internal/request.js.map +1 -1
  101. package/dist/cjs/internal/resource.js +2 -2
  102. package/dist/cjs/internal/resource.js.map +1 -1
  103. package/dist/cjs/internal/runtime.js +2 -3
  104. package/dist/cjs/internal/runtime.js.map +1 -1
  105. package/dist/cjs/internal/schedule.js +6 -7
  106. package/dist/cjs/internal/schedule.js.map +1 -1
  107. package/dist/cjs/internal/scopedCache.js.map +1 -1
  108. package/dist/cjs/internal/scopedRef.js.map +1 -1
  109. package/dist/cjs/internal/sink.js +1 -1
  110. package/dist/cjs/internal/sink.js.map +1 -1
  111. package/dist/cjs/internal/stm/core.js +2 -2
  112. package/dist/cjs/internal/stm/core.js.map +1 -1
  113. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  114. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  115. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  116. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  117. package/dist/cjs/internal/stm/tPubSub.js +17 -14
  118. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  119. package/dist/cjs/internal/stm/tQueue.js +6 -7
  120. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  121. package/dist/cjs/internal/stm/tSemaphore.js +2 -2
  122. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  123. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  124. package/dist/cjs/internal/stream.js +4 -4
  125. package/dist/cjs/internal/stream.js.map +1 -1
  126. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  127. package/dist/cjs/internal/take.js +1 -1
  128. package/dist/cjs/internal/take.js.map +1 -1
  129. package/dist/cjs/internal/version.js +1 -1
  130. package/dist/dts/Brand.d.ts +4 -4
  131. package/dist/dts/Brand.d.ts.map +1 -1
  132. package/dist/dts/Cache.d.ts +15 -14
  133. package/dist/dts/Cache.d.ts.map +1 -1
  134. package/dist/dts/Cause.d.ts +92 -25
  135. package/dist/dts/Cause.d.ts.map +1 -1
  136. package/dist/dts/Channel.d.ts +4 -4
  137. package/dist/dts/Channel.d.ts.map +1 -1
  138. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
  139. package/dist/dts/Chunk.d.ts +26 -24
  140. package/dist/dts/Chunk.d.ts.map +1 -1
  141. package/dist/dts/Clock.d.ts +4 -4
  142. package/dist/dts/Clock.d.ts.map +1 -1
  143. package/dist/dts/Config.d.ts +4 -4
  144. package/dist/dts/Config.d.ts.map +1 -1
  145. package/dist/dts/ConfigError.d.ts +7 -7
  146. package/dist/dts/ConfigError.d.ts.map +1 -1
  147. package/dist/dts/ConfigProvider.d.ts +3 -3
  148. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  149. package/dist/dts/ConfigProviderPathPatch.d.ts +1 -1
  150. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
  151. package/dist/dts/Console.d.ts +36 -36
  152. package/dist/dts/Console.d.ts.map +1 -1
  153. package/dist/dts/Context.d.ts +4 -4
  154. package/dist/dts/Context.d.ts.map +1 -1
  155. package/dist/dts/Data.d.ts +3 -17
  156. package/dist/dts/Data.d.ts.map +1 -1
  157. package/dist/dts/Deferred.d.ts +4 -4
  158. package/dist/dts/Deferred.d.ts.map +1 -1
  159. package/dist/dts/Differ.d.ts +9 -9
  160. package/dist/dts/Differ.d.ts.map +1 -1
  161. package/dist/dts/Duration.d.ts +1 -1
  162. package/dist/dts/Duration.d.ts.map +1 -1
  163. package/dist/dts/Effect.d.ts +34 -20
  164. package/dist/dts/Effect.d.ts.map +1 -1
  165. package/dist/dts/Either.d.ts +15 -3
  166. package/dist/dts/Either.d.ts.map +1 -1
  167. package/dist/dts/Equal.d.ts +1 -1
  168. package/dist/dts/Equal.d.ts.map +1 -1
  169. package/dist/dts/Equivalence.d.ts +1 -1
  170. package/dist/dts/Equivalence.d.ts.map +1 -1
  171. package/dist/dts/Exit.d.ts +5 -3
  172. package/dist/dts/Exit.d.ts.map +1 -1
  173. package/dist/dts/Fiber.d.ts +12 -12
  174. package/dist/dts/Fiber.d.ts.map +1 -1
  175. package/dist/dts/FiberRef.d.ts +3 -3
  176. package/dist/dts/FiberRef.d.ts.map +1 -1
  177. package/dist/dts/GroupBy.d.ts +2 -2
  178. package/dist/dts/GroupBy.d.ts.map +1 -1
  179. package/dist/dts/Hash.d.ts +1 -1
  180. package/dist/dts/Hash.d.ts.map +1 -1
  181. package/dist/dts/HashMap.d.ts +6 -4
  182. package/dist/dts/HashMap.d.ts.map +1 -1
  183. package/dist/dts/HashSet.d.ts +9 -9
  184. package/dist/dts/HashSet.d.ts.map +1 -1
  185. package/dist/dts/Inspectable.d.ts +3 -3
  186. package/dist/dts/Inspectable.d.ts.map +1 -1
  187. package/dist/dts/KeyedPool.d.ts +5 -5
  188. package/dist/dts/KeyedPool.d.ts.map +1 -1
  189. package/dist/dts/Layer.d.ts +2 -2
  190. package/dist/dts/Layer.d.ts.map +1 -1
  191. package/dist/dts/List.d.ts +16 -16
  192. package/dist/dts/List.d.ts.map +1 -1
  193. package/dist/dts/Logger.d.ts +4 -4
  194. package/dist/dts/Logger.d.ts.map +1 -1
  195. package/dist/dts/Match.d.ts +11 -11
  196. package/dist/dts/Match.d.ts.map +1 -1
  197. package/dist/dts/MergeDecision.d.ts +2 -2
  198. package/dist/dts/MergeDecision.d.ts.map +1 -1
  199. package/dist/dts/MergeState.d.ts +5 -5
  200. package/dist/dts/MergeState.d.ts.map +1 -1
  201. package/dist/dts/Metric.d.ts +5 -5
  202. package/dist/dts/Metric.d.ts.map +1 -1
  203. package/dist/dts/MetricHook.d.ts +4 -4
  204. package/dist/dts/MetricHook.d.ts.map +1 -1
  205. package/dist/dts/MetricKey.d.ts +2 -2
  206. package/dist/dts/MetricKey.d.ts.map +1 -1
  207. package/dist/dts/MetricKeyType.d.ts +2 -2
  208. package/dist/dts/MetricKeyType.d.ts.map +1 -1
  209. package/dist/dts/MetricPair.d.ts +2 -2
  210. package/dist/dts/MetricPair.d.ts.map +1 -1
  211. package/dist/dts/MetricPolling.d.ts +16 -16
  212. package/dist/dts/MetricPolling.d.ts.map +1 -1
  213. package/dist/dts/MetricRegistry.d.ts +7 -7
  214. package/dist/dts/MetricRegistry.d.ts.map +1 -1
  215. package/dist/dts/MetricState.d.ts +4 -4
  216. package/dist/dts/MetricState.d.ts.map +1 -1
  217. package/dist/dts/MutableHashMap.d.ts +1 -1
  218. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  219. package/dist/dts/MutableHashSet.d.ts +1 -1
  220. package/dist/dts/MutableHashSet.d.ts.map +1 -1
  221. package/dist/dts/MutableList.d.ts +1 -1
  222. package/dist/dts/MutableList.d.ts.map +1 -1
  223. package/dist/dts/MutableQueue.d.ts +1 -1
  224. package/dist/dts/MutableQueue.d.ts.map +1 -1
  225. package/dist/dts/MutableRef.d.ts +1 -1
  226. package/dist/dts/MutableRef.d.ts.map +1 -1
  227. package/dist/dts/NonEmptyIterable.d.ts +2 -2
  228. package/dist/dts/NonEmptyIterable.d.ts.map +1 -1
  229. package/dist/dts/Option.d.ts +13 -11
  230. package/dist/dts/Option.d.ts.map +1 -1
  231. package/dist/dts/Order.d.ts +1 -1
  232. package/dist/dts/Order.d.ts.map +1 -1
  233. package/dist/dts/Pipeable.d.ts +21 -23
  234. package/dist/dts/Pipeable.d.ts.map +1 -1
  235. package/dist/dts/Pool.d.ts +4 -4
  236. package/dist/dts/Pool.d.ts.map +1 -1
  237. package/dist/dts/Predicate.d.ts +17 -2
  238. package/dist/dts/Predicate.d.ts.map +1 -1
  239. package/dist/dts/PrimaryKey.d.ts +16 -0
  240. package/dist/dts/PrimaryKey.d.ts.map +1 -0
  241. package/dist/dts/PubSub.d.ts +3 -3
  242. package/dist/dts/PubSub.d.ts.map +1 -1
  243. package/dist/dts/Queue.d.ts +46 -27
  244. package/dist/dts/Queue.d.ts.map +1 -1
  245. package/dist/dts/Random.d.ts +3 -3
  246. package/dist/dts/Random.d.ts.map +1 -1
  247. package/dist/dts/ReadonlyArray.d.ts +36 -36
  248. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  249. package/dist/dts/ReadonlyRecord.d.ts +13 -11
  250. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  251. package/dist/dts/RedBlackTree.d.ts +5 -2
  252. package/dist/dts/RedBlackTree.d.ts.map +1 -1
  253. package/dist/dts/Ref.d.ts +3 -3
  254. package/dist/dts/Ref.d.ts.map +1 -1
  255. package/dist/dts/Reloadable.d.ts +3 -3
  256. package/dist/dts/Reloadable.d.ts.map +1 -1
  257. package/dist/dts/Request.d.ts +49 -8
  258. package/dist/dts/Request.d.ts.map +1 -1
  259. package/dist/dts/RequestBlock.d.ts +8 -8
  260. package/dist/dts/RequestBlock.d.ts.map +1 -1
  261. package/dist/dts/RequestResolver.d.ts +5 -5
  262. package/dist/dts/RequestResolver.d.ts.map +1 -1
  263. package/dist/dts/Resource.d.ts +4 -4
  264. package/dist/dts/Resource.d.ts.map +1 -1
  265. package/dist/dts/Runtime.d.ts +3 -3
  266. package/dist/dts/Runtime.d.ts.map +1 -1
  267. package/dist/dts/STM.d.ts +9 -9
  268. package/dist/dts/STM.d.ts.map +1 -1
  269. package/dist/dts/Schedule.d.ts +6 -6
  270. package/dist/dts/Schedule.d.ts.map +1 -1
  271. package/dist/dts/Scheduler.d.ts +3 -3
  272. package/dist/dts/Scheduler.d.ts.map +1 -1
  273. package/dist/dts/ScopedCache.d.ts +9 -9
  274. package/dist/dts/ScopedCache.d.ts.map +1 -1
  275. package/dist/dts/ScopedRef.d.ts +3 -3
  276. package/dist/dts/ScopedRef.d.ts.map +1 -1
  277. package/dist/dts/SingleProducerAsyncInput.d.ts +7 -7
  278. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  279. package/dist/dts/Sink.d.ts +7 -4
  280. package/dist/dts/Sink.d.ts.map +1 -1
  281. package/dist/dts/SortedMap.d.ts +5 -2
  282. package/dist/dts/SortedMap.d.ts.map +1 -1
  283. package/dist/dts/SortedSet.d.ts +6 -12
  284. package/dist/dts/SortedSet.d.ts.map +1 -1
  285. package/dist/dts/Stream.d.ts +27 -19
  286. package/dist/dts/Stream.d.ts.map +1 -1
  287. package/dist/dts/StreamEmit.d.ts +12 -12
  288. package/dist/dts/StreamEmit.d.ts.map +1 -1
  289. package/dist/dts/SubscriptionRef.d.ts +3 -3
  290. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  291. package/dist/dts/Supervisor.d.ts +9 -9
  292. package/dist/dts/Supervisor.d.ts.map +1 -1
  293. package/dist/dts/SynchronizedRef.d.ts +4 -4
  294. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  295. package/dist/dts/TArray.d.ts +3 -3
  296. package/dist/dts/TArray.d.ts.map +1 -1
  297. package/dist/dts/TDeferred.d.ts +4 -4
  298. package/dist/dts/TDeferred.d.ts.map +1 -1
  299. package/dist/dts/TMap.d.ts +4 -4
  300. package/dist/dts/TMap.d.ts.map +1 -1
  301. package/dist/dts/TPriorityQueue.d.ts +3 -3
  302. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  303. package/dist/dts/TPubSub.d.ts +4 -1
  304. package/dist/dts/TPubSub.d.ts.map +1 -1
  305. package/dist/dts/TQueue.d.ts +9 -9
  306. package/dist/dts/TQueue.d.ts.map +1 -1
  307. package/dist/dts/TRandom.d.ts +3 -3
  308. package/dist/dts/TRandom.d.ts.map +1 -1
  309. package/dist/dts/TRef.d.ts +3 -3
  310. package/dist/dts/TRef.d.ts.map +1 -1
  311. package/dist/dts/TSet.d.ts +3 -3
  312. package/dist/dts/TSet.d.ts.map +1 -1
  313. package/dist/dts/Take.d.ts +2 -2
  314. package/dist/dts/Take.d.ts.map +1 -1
  315. package/dist/dts/TestAnnotation.d.ts +5 -3
  316. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  317. package/dist/dts/TestAnnotations.d.ts +2 -2
  318. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  319. package/dist/dts/TestClock.d.ts +3 -3
  320. package/dist/dts/TestClock.d.ts.map +1 -1
  321. package/dist/dts/TestLive.d.ts +1 -1
  322. package/dist/dts/TestLive.d.ts.map +1 -1
  323. package/dist/dts/TestSized.d.ts +1 -1
  324. package/dist/dts/TestSized.d.ts.map +1 -1
  325. package/dist/dts/Tracer.d.ts +5 -5
  326. package/dist/dts/Tracer.d.ts.map +1 -1
  327. package/dist/dts/Types.d.ts +7 -0
  328. package/dist/dts/Types.d.ts.map +1 -1
  329. package/dist/dts/UpstreamPullRequest.d.ts +2 -2
  330. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
  331. package/dist/dts/UpstreamPullStrategy.d.ts +3 -3
  332. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
  333. package/dist/dts/Utils.d.ts +1 -1
  334. package/dist/dts/Utils.d.ts.map +1 -1
  335. package/dist/dts/index.d.ts +4 -0
  336. package/dist/dts/index.d.ts.map +1 -1
  337. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  338. package/dist/dts/internal/fiberScope.d.ts +1 -1
  339. package/dist/dts/internal/fiberScope.d.ts.map +1 -1
  340. package/dist/dts/internal/stream/handoffSignal.d.ts +1 -1
  341. package/dist/dts/internal/stream/handoffSignal.d.ts.map +1 -1
  342. package/dist/dts/internal/version.d.ts +1 -1
  343. package/dist/esm/Cache.js.map +1 -1
  344. package/dist/esm/Cause.js +52 -17
  345. package/dist/esm/Cause.js.map +1 -1
  346. package/dist/esm/ChildExecutorDecision.js.map +1 -1
  347. package/dist/esm/Chunk.js +5 -5
  348. package/dist/esm/Chunk.js.map +1 -1
  349. package/dist/esm/Data.js +10 -19
  350. package/dist/esm/Data.js.map +1 -1
  351. package/dist/esm/Duration.js +4 -0
  352. package/dist/esm/Duration.js.map +1 -1
  353. package/dist/esm/Effect.js +7 -0
  354. package/dist/esm/Effect.js.map +1 -1
  355. package/dist/esm/Either.js +8 -1
  356. package/dist/esm/Either.js.map +1 -1
  357. package/dist/esm/Exit.js.map +1 -1
  358. package/dist/esm/Fiber.js.map +1 -1
  359. package/dist/esm/HashMap.js.map +1 -1
  360. package/dist/esm/KeyedPool.js.map +1 -1
  361. package/dist/esm/List.js.map +1 -1
  362. package/dist/esm/MergeState.js.map +1 -1
  363. package/dist/esm/MetricPolling.js +1 -1
  364. package/dist/esm/MetricPolling.js.map +1 -1
  365. package/dist/esm/MetricState.js.map +1 -1
  366. package/dist/esm/NonEmptyIterable.js.map +1 -1
  367. package/dist/esm/Option.js +2 -2
  368. package/dist/esm/Option.js.map +1 -1
  369. package/dist/esm/Pipeable.js.map +1 -1
  370. package/dist/esm/Predicate.js +15 -0
  371. package/dist/esm/Predicate.js.map +1 -1
  372. package/dist/esm/PrimaryKey.js +9 -0
  373. package/dist/esm/PrimaryKey.js.map +1 -0
  374. package/dist/esm/Queue.js +5 -0
  375. package/dist/esm/Queue.js.map +1 -1
  376. package/dist/esm/ReadonlyArray.js +2 -0
  377. package/dist/esm/ReadonlyArray.js.map +1 -1
  378. package/dist/esm/ReadonlyRecord.js +2 -2
  379. package/dist/esm/ReadonlyRecord.js.map +1 -1
  380. package/dist/esm/RedBlackTree.js.map +1 -1
  381. package/dist/esm/Request.js +34 -0
  382. package/dist/esm/Request.js.map +1 -1
  383. package/dist/esm/STM.js +1 -1
  384. package/dist/esm/STM.js.map +1 -1
  385. package/dist/esm/Sink.js.map +1 -1
  386. package/dist/esm/SortedMap.js +4 -1
  387. package/dist/esm/SortedMap.js.map +1 -1
  388. package/dist/esm/SortedSet.js +2 -2
  389. package/dist/esm/SortedSet.js.map +1 -1
  390. package/dist/esm/Stream.js.map +1 -1
  391. package/dist/esm/SubscriptionRef.js.map +1 -1
  392. package/dist/esm/TPubSub.js.map +1 -1
  393. package/dist/esm/TestAnnotation.js +3 -1
  394. package/dist/esm/TestAnnotation.js.map +1 -1
  395. package/dist/esm/TestClock.js.map +1 -1
  396. package/dist/esm/UpstreamPullRequest.js.map +1 -1
  397. package/dist/esm/index.js +4 -0
  398. package/dist/esm/index.js.map +1 -1
  399. package/dist/esm/internal/cache.js.map +1 -1
  400. package/dist/esm/internal/cause.js +3 -96
  401. package/dist/esm/internal/cause.js.map +1 -1
  402. package/dist/esm/internal/channel/continuation.js.map +1 -1
  403. package/dist/esm/internal/configProvider.js +13 -1
  404. package/dist/esm/internal/configProvider.js.map +1 -1
  405. package/dist/esm/internal/core-effect.js +7 -7
  406. package/dist/esm/internal/core-effect.js.map +1 -1
  407. package/dist/esm/internal/core-stream.js.map +1 -1
  408. package/dist/esm/internal/core.js +151 -10
  409. package/dist/esm/internal/core.js.map +1 -1
  410. package/dist/esm/internal/data.js +3 -21
  411. package/dist/esm/internal/data.js.map +1 -1
  412. package/dist/esm/internal/dataSource.js +1 -1
  413. package/dist/esm/internal/dataSource.js.map +1 -1
  414. package/dist/esm/internal/deferred.js.map +1 -1
  415. package/dist/esm/internal/differ/orPatch.js.map +1 -1
  416. package/dist/esm/internal/effect/circular.js.map +1 -1
  417. package/dist/esm/internal/effectable.js +20 -2
  418. package/dist/esm/internal/effectable.js.map +1 -1
  419. package/dist/esm/internal/fiberMessage.js.map +1 -1
  420. package/dist/esm/internal/fiberRuntime.js +9 -10
  421. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  422. package/dist/esm/internal/hashMap.js +1 -1
  423. package/dist/esm/internal/hashMap.js.map +1 -1
  424. package/dist/esm/internal/hashSet.js +2 -2
  425. package/dist/esm/internal/hashSet.js.map +1 -1
  426. package/dist/esm/internal/keyedPool.js.map +1 -1
  427. package/dist/esm/internal/layer.js.map +1 -1
  428. package/dist/esm/internal/metric/polling.js +6 -6
  429. package/dist/esm/internal/metric/polling.js.map +1 -1
  430. package/dist/esm/internal/metric.js +4 -0
  431. package/dist/esm/internal/metric.js.map +1 -1
  432. package/dist/esm/internal/pool.js.map +1 -1
  433. package/dist/esm/internal/pubsub.js +24 -23
  434. package/dist/esm/internal/pubsub.js.map +1 -1
  435. package/dist/esm/internal/queue.js +9 -0
  436. package/dist/esm/internal/queue.js.map +1 -1
  437. package/dist/esm/internal/redBlackTree.js +5 -1
  438. package/dist/esm/internal/redBlackTree.js.map +1 -1
  439. package/dist/esm/internal/reloadable.js.map +1 -1
  440. package/dist/esm/internal/request.js +27 -14
  441. package/dist/esm/internal/request.js.map +1 -1
  442. package/dist/esm/internal/resource.js +2 -2
  443. package/dist/esm/internal/resource.js.map +1 -1
  444. package/dist/esm/internal/runtime.js +1 -2
  445. package/dist/esm/internal/runtime.js.map +1 -1
  446. package/dist/esm/internal/schedule.js +6 -7
  447. package/dist/esm/internal/schedule.js.map +1 -1
  448. package/dist/esm/internal/scopedCache.js.map +1 -1
  449. package/dist/esm/internal/scopedRef.js.map +1 -1
  450. package/dist/esm/internal/sink.js +1 -1
  451. package/dist/esm/internal/sink.js.map +1 -1
  452. package/dist/esm/internal/stm/core.js +2 -2
  453. package/dist/esm/internal/stm/core.js.map +1 -1
  454. package/dist/esm/internal/stm/tArray.js.map +1 -1
  455. package/dist/esm/internal/stm/tDeferred.js.map +1 -1
  456. package/dist/esm/internal/stm/tMap.js.map +1 -1
  457. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  458. package/dist/esm/internal/stm/tPubSub.js +17 -14
  459. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  460. package/dist/esm/internal/stm/tQueue.js +6 -7
  461. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  462. package/dist/esm/internal/stm/tSemaphore.js +2 -2
  463. package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
  464. package/dist/esm/internal/stm/tSet.js.map +1 -1
  465. package/dist/esm/internal/stream.js +4 -4
  466. package/dist/esm/internal/stream.js.map +1 -1
  467. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  468. package/dist/esm/internal/take.js +1 -1
  469. package/dist/esm/internal/take.js.map +1 -1
  470. package/dist/esm/internal/version.js +1 -1
  471. package/dist/esm/package.json +1 -1
  472. package/package.json +10 -2
  473. package/src/Brand.ts +4 -4
  474. package/src/Cache.ts +15 -17
  475. package/src/Cause.ts +124 -40
  476. package/src/Channel.ts +4 -4
  477. package/src/ChildExecutorDecision.ts +10 -2
  478. package/src/Chunk.ts +44 -36
  479. package/src/Clock.ts +4 -4
  480. package/src/Config.ts +4 -4
  481. package/src/ConfigError.ts +8 -8
  482. package/src/ConfigProvider.ts +5 -5
  483. package/src/ConfigProviderPathPatch.ts +1 -1
  484. package/src/Console.ts +36 -36
  485. package/src/Context.ts +4 -4
  486. package/src/Data.ts +13 -44
  487. package/src/Deferred.ts +4 -4
  488. package/src/Differ.ts +9 -9
  489. package/src/Duration.ts +5 -0
  490. package/src/Effect.ts +88 -26
  491. package/src/Either.ts +28 -5
  492. package/src/Equal.ts +1 -1
  493. package/src/Equivalence.ts +1 -1
  494. package/src/Exit.ts +21 -7
  495. package/src/Fiber.ts +20 -14
  496. package/src/FiberRef.ts +7 -7
  497. package/src/GroupBy.ts +2 -2
  498. package/src/Hash.ts +1 -1
  499. package/src/HashMap.ts +6 -4
  500. package/src/HashSet.ts +11 -11
  501. package/src/Inspectable.ts +3 -3
  502. package/src/KeyedPool.ts +13 -7
  503. package/src/Layer.ts +2 -2
  504. package/src/List.ts +24 -22
  505. package/src/Logger.ts +4 -4
  506. package/src/Match.ts +11 -11
  507. package/src/MergeDecision.ts +2 -2
  508. package/src/MergeState.ts +11 -5
  509. package/src/Metric.ts +5 -5
  510. package/src/MetricHook.ts +4 -4
  511. package/src/MetricKey.ts +2 -2
  512. package/src/MetricKeyType.ts +2 -2
  513. package/src/MetricPair.ts +2 -2
  514. package/src/MetricPolling.ts +22 -22
  515. package/src/MetricRegistry.ts +9 -9
  516. package/src/MetricState.ts +6 -4
  517. package/src/MutableHashMap.ts +1 -1
  518. package/src/MutableHashSet.ts +1 -1
  519. package/src/MutableList.ts +1 -1
  520. package/src/MutableQueue.ts +1 -1
  521. package/src/MutableRef.ts +1 -1
  522. package/src/NonEmptyIterable.ts +2 -2
  523. package/src/Option.ts +18 -15
  524. package/src/Order.ts +1 -1
  525. package/src/Pipeable.ts +275 -277
  526. package/src/Pool.ts +4 -4
  527. package/src/Predicate.ts +21 -2
  528. package/src/PrimaryKey.ts +17 -0
  529. package/src/PubSub.ts +3 -3
  530. package/src/Queue.ts +52 -30
  531. package/src/Random.ts +3 -3
  532. package/src/ReadonlyArray.ts +51 -66
  533. package/src/ReadonlyRecord.ts +37 -35
  534. package/src/RedBlackTree.ts +5 -2
  535. package/src/Ref.ts +3 -3
  536. package/src/Reloadable.ts +3 -3
  537. package/src/Request.ts +53 -8
  538. package/src/RequestBlock.ts +9 -9
  539. package/src/RequestResolver.ts +5 -5
  540. package/src/Resource.ts +4 -4
  541. package/src/Runtime.ts +3 -3
  542. package/src/STM.ts +23 -12
  543. package/src/Schedule.ts +7 -7
  544. package/src/Scheduler.ts +3 -3
  545. package/src/Scope.ts +3 -3
  546. package/src/ScopedCache.ts +9 -9
  547. package/src/ScopedRef.ts +3 -3
  548. package/src/SingleProducerAsyncInput.ts +7 -7
  549. package/src/Sink.ts +23 -9
  550. package/src/SortedMap.ts +9 -3
  551. package/src/SortedSet.ts +26 -41
  552. package/src/Stream.ts +70 -29
  553. package/src/StreamEmit.ts +12 -12
  554. package/src/SubscriptionRef.ts +5 -3
  555. package/src/Supervisor.ts +10 -10
  556. package/src/SynchronizedRef.ts +4 -4
  557. package/src/TArray.ts +4 -4
  558. package/src/TDeferred.ts +5 -5
  559. package/src/TMap.ts +5 -5
  560. package/src/TPriorityQueue.ts +4 -4
  561. package/src/TPubSub.ts +6 -3
  562. package/src/TQueue.ts +9 -9
  563. package/src/TRandom.ts +3 -3
  564. package/src/TRef.ts +4 -4
  565. package/src/TSet.ts +4 -4
  566. package/src/Take.ts +2 -2
  567. package/src/TestAnnotation.ts +8 -4
  568. package/src/TestAnnotations.ts +2 -2
  569. package/src/TestClock.ts +3 -5
  570. package/src/TestLive.ts +1 -1
  571. package/src/TestSized.ts +1 -1
  572. package/src/Tracer.ts +6 -6
  573. package/src/Types.ts +8 -0
  574. package/src/UpstreamPullRequest.ts +10 -4
  575. package/src/UpstreamPullStrategy.ts +3 -3
  576. package/src/Utils.ts +1 -1
  577. package/src/index.ts +5 -0
  578. package/src/internal/blockedRequests.ts +6 -6
  579. package/src/internal/cache.ts +12 -12
  580. package/src/internal/cause.ts +14 -138
  581. package/src/internal/channel/channelExecutor.ts +1 -1
  582. package/src/internal/channel/channelState.ts +5 -5
  583. package/src/internal/channel/continuation.ts +52 -32
  584. package/src/internal/channel/mergeDecision.ts +1 -1
  585. package/src/internal/channel/singleProducerAsyncInput.ts +1 -1
  586. package/src/internal/channel/subexecutor.ts +7 -7
  587. package/src/internal/config.ts +6 -6
  588. package/src/internal/configProvider.ts +14 -1
  589. package/src/internal/core-effect.ts +49 -38
  590. package/src/internal/core-stream.ts +18 -21
  591. package/src/internal/core.ts +286 -38
  592. package/src/internal/data.ts +3 -22
  593. package/src/internal/dataSource.ts +1 -1
  594. package/src/internal/deferred.ts +5 -5
  595. package/src/internal/differ/contextPatch.ts +5 -5
  596. package/src/internal/differ/orPatch.ts +18 -6
  597. package/src/internal/effect/circular.ts +3 -3
  598. package/src/internal/effectable.ts +23 -4
  599. package/src/internal/fiberMessage.ts +1 -4
  600. package/src/internal/fiberRuntime.ts +14 -15
  601. package/src/internal/fiberScope.ts +1 -1
  602. package/src/internal/groupBy.ts +1 -1
  603. package/src/internal/hashMap/node.ts +5 -5
  604. package/src/internal/hashMap.ts +23 -22
  605. package/src/internal/hashSet.ts +18 -20
  606. package/src/internal/keyedPool.ts +4 -4
  607. package/src/internal/layer.ts +6 -12
  608. package/src/internal/metric/key.ts +1 -1
  609. package/src/internal/metric/polling.ts +26 -26
  610. package/src/internal/metric.ts +4 -0
  611. package/src/internal/pool.ts +2 -2
  612. package/src/internal/pubsub.ts +64 -61
  613. package/src/internal/queue.ts +20 -6
  614. package/src/internal/redBlackTree/iterator.ts +1 -1
  615. package/src/internal/redBlackTree/node.ts +1 -1
  616. package/src/internal/redBlackTree.ts +7 -2
  617. package/src/internal/ref.ts +1 -1
  618. package/src/internal/reloadable.ts +1 -1
  619. package/src/internal/request.ts +39 -13
  620. package/src/internal/resource.ts +4 -4
  621. package/src/internal/ringBuffer.ts +1 -1
  622. package/src/internal/runtime.ts +2 -3
  623. package/src/internal/schedule.ts +6 -7
  624. package/src/internal/scopedCache.ts +7 -5
  625. package/src/internal/scopedRef.ts +1 -1
  626. package/src/internal/sink.ts +6 -3
  627. package/src/internal/stack.ts +1 -1
  628. package/src/internal/stm/core.ts +3 -3
  629. package/src/internal/stm/stm/stmState.ts +1 -1
  630. package/src/internal/stm/stm/tExit.ts +3 -3
  631. package/src/internal/stm/stm/tryCommit.ts +1 -1
  632. package/src/internal/stm/stm/versioned.ts +1 -1
  633. package/src/internal/stm/stm.ts +2 -2
  634. package/src/internal/stm/tArray.ts +2 -2
  635. package/src/internal/stm/tDeferred.ts +3 -3
  636. package/src/internal/stm/tMap.ts +3 -3
  637. package/src/internal/stm/tPriorityQueue.ts +2 -2
  638. package/src/internal/stm/tPubSub.ts +43 -38
  639. package/src/internal/stm/tQueue.ts +7 -8
  640. package/src/internal/stm/tReentrantLock.ts +2 -2
  641. package/src/internal/stm/tRef.ts +1 -1
  642. package/src/internal/stm/tSemaphore.ts +2 -2
  643. package/src/internal/stm/tSet.ts +2 -2
  644. package/src/internal/stream/debounceState.ts +2 -2
  645. package/src/internal/stream/handoff.ts +3 -3
  646. package/src/internal/stream/handoffSignal.ts +2 -2
  647. package/src/internal/stream/pull.ts +1 -1
  648. package/src/internal/stream.ts +66 -33
  649. package/src/internal/subscriptionRef.ts +2 -2
  650. package/src/internal/supervisor.ts +3 -3
  651. package/src/internal/take.ts +2 -2
  652. package/src/internal/version.ts +1 -1
@@ -300,7 +300,7 @@ export const fromFiberEffect = <R, E, A>(fiber: Effect.Effect<R, E, Fiber.Fiber<
300
300
 
301
301
  const memoKeySymbol = Symbol.for("effect/Effect/memoizeFunction.key")
302
302
 
303
- class Key<A> implements Equal.Equal {
303
+ class Key<in out A> implements Equal.Equal {
304
304
  [memoKeySymbol] = memoKeySymbol
305
305
  constructor(readonly a: A, readonly eq?: Equivalence<A>) {}
306
306
  [Equal.symbol](that: Equal.Equal) {
@@ -534,11 +534,11 @@ export const SynchronizedTypeId: Synchronized.SynchronizedRefTypeId = Symbol.for
534
534
 
535
535
  /** @internal */
536
536
  export const synchronizedVariance = {
537
- _A: (_: never) => _
537
+ _A: (_: any) => _
538
538
  }
539
539
 
540
540
  /** @internal */
541
- class SynchronizedImpl<A> implements Synchronized.SynchronizedRef<A> {
541
+ class SynchronizedImpl<in out A> implements Synchronized.SynchronizedRef<A> {
542
542
  readonly [SynchronizedTypeId] = synchronizedVariance
543
543
  readonly [internalRef.RefTypeId] = internalRef.refVariance
544
544
  constructor(
@@ -6,7 +6,6 @@ import * as Hash from "../Hash.js"
6
6
  import { pipeArguments } from "../Pipeable.js"
7
7
  import type * as Sink from "../Sink.js"
8
8
  import type * as Stream from "../Stream.js"
9
- import * as Data from "./data.js"
10
9
  import * as OpCodes from "./opCodes/effect.js"
11
10
  import { moduleVersion } from "./version.js"
12
11
 
@@ -67,6 +66,26 @@ export const EffectPrototype: Effect.Effect<never, never, never> = {
67
66
  }
68
67
  }
69
68
 
69
+ /** @internal */
70
+ export const StructuralPrototype: Equal.Equal = {
71
+ [Hash.symbol](this: Equal.Equal) {
72
+ return Hash.structure(this)
73
+ },
74
+ [Equal.symbol](this: Equal.Equal, that: Equal.Equal) {
75
+ const selfKeys = Object.keys(this)
76
+ const thatKeys = Object.keys(that as object)
77
+ if (selfKeys.length !== thatKeys.length) {
78
+ return false
79
+ }
80
+ for (const key of selfKeys) {
81
+ if (!(key in (that as object) && Equal.equals((this as any)[key], (that as any)[key]))) {
82
+ return false
83
+ }
84
+ }
85
+ return true
86
+ }
87
+ }
88
+
70
89
  /** @internal */
71
90
  export const CommitPrototype: Effect.Effect<never, never, never> = {
72
91
  ...EffectPrototype,
@@ -74,10 +93,10 @@ export const CommitPrototype: Effect.Effect<never, never, never> = {
74
93
  } as any
75
94
 
76
95
  /** @internal */
77
- export const StructuralCommitPrototype = {
96
+ export const StructuralCommitPrototype: Effect.Effect<never, never, never> = {
78
97
  ...CommitPrototype,
79
- ...Data.Structural.prototype
80
- }
98
+ ...StructuralPrototype
99
+ } as any
81
100
 
82
101
  /** @internal */
83
102
  export const Base: Effectable.CommitPrimitive = (function() {
@@ -39,10 +39,7 @@ export interface InterruptSignal {
39
39
  /** @internal */
40
40
  export interface Stateful {
41
41
  readonly _tag: OP_STATEFUL
42
- readonly onFiber: (
43
- fiber: FiberRuntime.FiberRuntime<any, any>,
44
- status: FiberStatus.FiberStatus
45
- ) => void
42
+ onFiber(fiber: FiberRuntime.FiberRuntime<any, any>, status: FiberStatus.FiberStatus): void
46
43
  }
47
44
 
48
45
  /** @internal */
@@ -238,7 +238,7 @@ const runBlockedRequests = <R>(self: RequestBlock.RequestBlock<R>) =>
238
238
  )
239
239
 
240
240
  /** @internal */
241
- export class FiberRuntime<E, A> implements Fiber.RuntimeFiber<E, A> {
241
+ export class FiberRuntime<in out E, in out A> implements Fiber.RuntimeFiber<E, A> {
242
242
  readonly [internalFiber.FiberTypeId] = internalFiber.fiberVariance
243
243
  readonly [internalFiber.RuntimeFiberTypeId] = runtimeFiberVariance
244
244
 
@@ -1044,7 +1044,7 @@ export class FiberRuntime<E, A> implements Fiber.RuntimeFiber<E, A> {
1044
1044
  }
1045
1045
 
1046
1046
  ["None"](_: core.Primitive & { _op: "None" }) {
1047
- return core.fail(internalCause.NoSuchElementException())
1047
+ return core.fail(new core.NoSuchElementException())
1048
1048
  }
1049
1049
 
1050
1050
  ["Right"](op: core.Primitive & { _op: "Right" }) {
@@ -1312,23 +1312,22 @@ export class FiberRuntime<E, A> implements Fiber.RuntimeFiber<E, A> {
1312
1312
  (e as core.Primitive)._op === OpCodes.OP_ASYNC
1313
1313
  ) {
1314
1314
  throw e
1315
- }
1316
- if (
1315
+ } else if (
1317
1316
  (e as core.Primitive)._op === OpCodes.OP_SUCCESS ||
1318
1317
  (e as core.Primitive)._op === OpCodes.OP_FAILURE
1319
1318
  ) {
1320
1319
  return e as Exit.Exit<E, A>
1321
- }
1322
- } else {
1323
- if (core.isEffectError(e)) {
1324
- cur = core.exitFailCause(e.cause)
1325
- } else if (internalCause.isInterruptedException(e)) {
1326
- cur = core.exitFailCause(
1327
- internalCause.sequential(internalCause.die(e), internalCause.interrupt(FiberId.none))
1328
- )
1329
1320
  } else {
1330
1321
  cur = core.exitFailCause(internalCause.die(e))
1331
1322
  }
1323
+ } else if (core.isEffectError(e)) {
1324
+ cur = core.exitFailCause(e.cause)
1325
+ } else if (core.isInterruptedException(e)) {
1326
+ cur = core.exitFailCause(
1327
+ internalCause.sequential(internalCause.die(e), internalCause.interrupt(FiberId.none))
1328
+ )
1329
+ } else {
1330
+ cur = core.exitFailCause(internalCause.die(e))
1332
1331
  }
1333
1332
  }
1334
1333
  }
@@ -2291,7 +2290,7 @@ export const partition = dual<
2291
2290
  readonly concurrency?: Concurrency | undefined
2292
2291
  readonly batching?: boolean | "inherit" | undefined
2293
2292
  }
2294
- ) => (elements: Iterable<A>) => Effect.Effect<R, never, [Array<E>, Array<B>]>,
2293
+ ) => (elements: Iterable<A>) => Effect.Effect<R, never, [excluded: Array<E>, satisfying: Array<B>]>,
2295
2294
  <R, E, A, B>(
2296
2295
  elements: Iterable<A>,
2297
2296
  f: (a: A, i: number) => Effect.Effect<R, E, B>,
@@ -2299,7 +2298,7 @@ export const partition = dual<
2299
2298
  readonly concurrency?: Concurrency | undefined
2300
2299
  readonly batching?: boolean | "inherit" | undefined
2301
2300
  }
2302
- ) => Effect.Effect<R, never, [Array<E>, Array<B>]>
2301
+ ) => Effect.Effect<R, never, [excluded: Array<E>, satisfying: Array<B>]>
2303
2302
  >((args) => Predicate.isIterable(args[0]), (elements, f, options) =>
2304
2303
  pipe(
2305
2304
  forEach(elements, (a, i) => core.either(f(a, i)), options),
@@ -2369,7 +2368,7 @@ export const validateAll = dual<
2369
2368
  export const raceAll = <R, E, A>(all: Iterable<Effect.Effect<R, E, A>>) => {
2370
2369
  const list = Chunk.fromIterable(all)
2371
2370
  if (!Chunk.isNonEmpty(list)) {
2372
- return core.dieSync(() => internalCause.IllegalArgumentException(`Received an empty collection of effects`))
2371
+ return core.dieSync(() => new core.IllegalArgumentException(`Received an empty collection of effects`))
2373
2372
  }
2374
2373
  const self = Chunk.headNonEmpty(list)
2375
2374
  const effects = Chunk.tailNonEmpty(list)
@@ -24,7 +24,7 @@ export type FiberScopeTypeId = typeof FiberScopeTypeId
24
24
  export interface FiberScope {
25
25
  readonly [FiberScopeTypeId]: FiberScopeTypeId
26
26
  get fiberId(): FiberId.FiberId
27
- readonly add: (runtimeFlags: RuntimeFlags.RuntimeFlags, child: FiberRuntime.FiberRuntime<any, any>) => void
27
+ add(runtimeFlags: RuntimeFlags.RuntimeFlags, child: FiberRuntime.FiberRuntime<any, any>): void
28
28
  }
29
29
 
30
30
  /** @internal */
@@ -315,7 +315,7 @@ export const bindEffect = dual<
315
315
 
316
316
  const mapDequeue = <A, B>(dequeue: Queue.Dequeue<A>, f: (a: A) => B): Queue.Dequeue<B> => new MapDequeue(dequeue, f)
317
317
 
318
- class MapDequeue<A, B> implements Queue.Dequeue<B> {
318
+ class MapDequeue<in out A, out B> implements Queue.Dequeue<B> {
319
319
  readonly [Queue.DequeueTypeId] = {
320
320
  _Out: (_: never) => _
321
321
  }
@@ -21,7 +21,7 @@ export interface SizeRef {
21
21
  }
22
22
 
23
23
  /** @internal */
24
- export class EmptyNode<K, V> {
24
+ export class EmptyNode<out K, out V> {
25
25
  readonly _tag = "EmptyNode"
26
26
 
27
27
  modify(
@@ -57,7 +57,7 @@ export function canEditNode<K, V>(node: Node<K, V>, edit: number): boolean {
57
57
  }
58
58
 
59
59
  /** @internal */
60
- export class LeafNode<K, V> {
60
+ export class LeafNode<out K, out V> {
61
61
  readonly _tag = "LeafNode"
62
62
 
63
63
  constructor(
@@ -103,7 +103,7 @@ export class LeafNode<K, V> {
103
103
  }
104
104
 
105
105
  /** @internal */
106
- export class CollisionNode<K, V> {
106
+ export class CollisionNode<out K, out V> {
107
107
  readonly _tag = "CollisionNode"
108
108
 
109
109
  constructor(
@@ -180,7 +180,7 @@ export class CollisionNode<K, V> {
180
180
  }
181
181
 
182
182
  /** @internal */
183
- export class IndexedNode<K, V> {
183
+ export class IndexedNode<out K, out V> {
184
184
  readonly _tag = "IndexedNode"
185
185
 
186
186
  constructor(
@@ -244,7 +244,7 @@ export class IndexedNode<K, V> {
244
244
  }
245
245
 
246
246
  /** @internal */
247
- export class ArrayNode<K, V> {
247
+ export class ArrayNode<out K, out V> {
248
248
  readonly _tag = "ArrayNode"
249
249
 
250
250
  constructor(
@@ -34,7 +34,7 @@ interface VisitResult<K, V, A> {
34
34
  }
35
35
 
36
36
  /** @internal */
37
- export interface HashMapImpl<K, V> extends HM.HashMap<K, V> {
37
+ export interface HashMapImpl<out K, out V> extends HM.HashMap<K, V> {
38
38
  _editable: boolean // mutable by design
39
39
  _edit: number // mutable by design
40
40
  _root: Node.Node<K, V> // mutable by design
@@ -106,7 +106,7 @@ const makeImpl = <K, V>(
106
106
  return map
107
107
  }
108
108
 
109
- class HashMapIterator<K, V, T> implements IterableIterator<T> {
109
+ class HashMapIterator<in out K, in out V, out T> implements IterableIterator<T> {
110
110
  v: Option.Option<VisitResult<K, V, T>>
111
111
 
112
112
  constructor(readonly map: HashMapImpl<K, V>, readonly f: TraversalFn<K, V, T>) {
@@ -485,23 +485,22 @@ export const reduce = Dual.dual<
485
485
  })
486
486
 
487
487
  /** @internal */
488
- export const filter = Dual.dual<
489
- {
490
- <K, A, B extends A>(f: (a: A, k: K) => a is B): (self: HM.HashMap<K, A>) => HM.HashMap<K, B>
491
- <K, A>(f: (a: A, k: K) => boolean): (self: HM.HashMap<K, A>) => HM.HashMap<K, A>
492
- },
493
- {
494
- <K, A, B extends A>(self: HM.HashMap<K, A>, f: (a: A, k: K) => a is B): HM.HashMap<K, B>
495
- <K, A>(self: HM.HashMap<K, A>, f: (a: A, k: K) => boolean): HM.HashMap<K, A>
496
- }
497
- >(2, <K, A>(self: HM.HashMap<K, A>, f: (a: A, k: K) => boolean) =>
498
- mutate(empty(), (map) => {
499
- for (const [k, a] of self) {
500
- if (f(a, k)) {
501
- set(map, k, a)
488
+ export const filter: {
489
+ <K, A, B extends A>(f: (a: A, k: K) => a is B): (self: HM.HashMap<K, A>) => HM.HashMap<K, B>
490
+ <K, B extends A, A = B>(f: (a: A, k: K) => boolean): (self: HM.HashMap<K, B>) => HM.HashMap<K, B>
491
+ <K, A, B extends A>(self: HM.HashMap<K, A>, f: (a: A, k: K) => a is B): HM.HashMap<K, B>
492
+ <K, A>(self: HM.HashMap<K, A>, f: (a: A, k: K) => boolean): HM.HashMap<K, A>
493
+ } = Dual.dual(
494
+ 2,
495
+ <K, A>(self: HM.HashMap<K, A>, f: (a: A, k: K) => boolean): HM.HashMap<K, A> =>
496
+ mutate(empty(), (map) => {
497
+ for (const [k, a] of self) {
498
+ if (f(a, k)) {
499
+ set(map, k, a)
500
+ }
502
501
  }
503
- }
504
- }))
502
+ })
503
+ )
505
504
 
506
505
  /** @internal */
507
506
  export const compact = <K, A>(self: HM.HashMap<K, Option.Option<A>>) => filterMap(self, identity)
@@ -524,13 +523,15 @@ export const filterMap = Dual.dual<
524
523
 
525
524
  /** @internal */
526
525
  export const findFirst: {
527
- <K, A>(predicate: (k: K, a: A) => boolean): (self: HM.HashMap<K, A>) => Option.Option<[K, A]>
528
- <K, A>(self: HM.HashMap<K, A>, predicate: (k: K, a: A) => boolean): Option.Option<[K, A]>
526
+ <K, A, B extends A>(predicate: (a: A, k: K) => a is B): (self: HM.HashMap<K, A>) => Option.Option<[K, B]>
527
+ <K, B extends A, A = B>(predicate: (a: A, k: K) => boolean): (self: HM.HashMap<K, B>) => Option.Option<[K, B]>
528
+ <K, A, B extends A>(self: HM.HashMap<K, A>, predicate: (a: A, k: K) => a is B): Option.Option<[K, B]>
529
+ <K, A>(self: HM.HashMap<K, A>, predicate: (a: A, k: K) => boolean): Option.Option<[K, A]>
529
530
  } = Dual.dual(
530
531
  2,
531
- <K, A>(self: HM.HashMap<K, A>, predicate: (k: K, a: A) => boolean): Option.Option<[K, A]> => {
532
+ <K, A>(self: HM.HashMap<K, A>, predicate: (a: A, k: K) => boolean): Option.Option<[K, A]> => {
532
533
  for (const ka of self) {
533
- if (predicate(ka[0], ka[1])) {
534
+ if (predicate(ka[1], ka[0])) {
534
535
  return Option.some(ka)
535
536
  }
536
537
  }
@@ -15,7 +15,7 @@ const HashSetSymbolKey = "effect/HashSet"
15
15
  export const HashSetTypeId: HS.TypeId = Symbol.for(HashSetSymbolKey) as HS.TypeId
16
16
 
17
17
  /** @internal */
18
- export interface HashSetImpl<A> extends HS.HashSet<A> {
18
+ export interface HashSetImpl<out A> extends HS.HashSet<A> {
19
19
  readonly _keyMap: HashMap<A, unknown>
20
20
  }
21
21
 
@@ -271,16 +271,12 @@ export const reduce = dual<
271
271
  ))
272
272
 
273
273
  /** @internal */
274
- export const filter = dual<
275
- {
276
- <A, B extends A>(f: Refinement<A, B>): (self: HS.HashSet<A>) => HS.HashSet<B>
277
- <A>(f: Predicate<A>): (self: HS.HashSet<A>) => HS.HashSet<A>
278
- },
279
- {
280
- <A, B extends A>(self: HS.HashSet<A>, f: Refinement<A, B>): HS.HashSet<B>
281
- <A>(self: HS.HashSet<A>, f: Predicate<A>): HS.HashSet<A>
282
- }
283
- >(2, <A>(self: HS.HashSet<A>, f: Predicate<A>) => {
274
+ export const filter: {
275
+ <A, B extends A>(refinement: Refinement<A, B>): (self: HS.HashSet<A>) => HS.HashSet<B>
276
+ <B extends A, A = B>(predicate: Predicate<B>): (self: HS.HashSet<A>) => HS.HashSet<A>
277
+ <A, B extends A>(self: HS.HashSet<A>, refinement: Refinement<A, B>): HS.HashSet<B>
278
+ <A>(self: HS.HashSet<A>, predicate: Predicate<A>): HS.HashSet<A>
279
+ } = dual(2, <A>(self: HS.HashSet<A>, f: Predicate<A>) => {
284
280
  return mutate(empty(), (set) => {
285
281
  const iterator = values(self)
286
282
  let next: IteratorResult<A, any>
@@ -297,25 +293,27 @@ export const filter = dual<
297
293
  export const partition: {
298
294
  <C extends A, B extends A, A = C>(
299
295
  refinement: Refinement<A, B>
300
- ): (self: HS.HashSet<C>) => [HS.HashSet<Exclude<C, B>>, HS.HashSet<B>]
301
- <B extends A, A = B>(predicate: (a: A) => boolean): (self: HS.HashSet<B>) => [HS.HashSet<B>, HS.HashSet<B>]
302
- <C extends A, B extends A, A = C>(
303
- self: HS.HashSet<C>,
296
+ ): (self: HS.HashSet<C>) => [excluded: HS.HashSet<Exclude<C, B>>, satisfying: HS.HashSet<B>]
297
+ <A, B extends A>(
298
+ predicate: Predicate<A>
299
+ ): (self: HS.HashSet<B>) => [excluded: HS.HashSet<B>, satisfying: HS.HashSet<B>]
300
+ <A, B extends A>(
301
+ self: HS.HashSet<A>,
304
302
  refinement: Refinement<A, B>
305
- ): [HS.HashSet<Exclude<C, B>>, HS.HashSet<B>]
306
- <B extends A, A = B>(self: HS.HashSet<B>, predicate: (a: A) => boolean): [HS.HashSet<B>, HS.HashSet<B>]
307
- } = dual(2, <A>(self: HS.HashSet<A>, f: Predicate<A>) => {
303
+ ): [excluded: HS.HashSet<Exclude<A, B>>, satisfying: HS.HashSet<B>]
304
+ <A>(self: HS.HashSet<A>, predicate: Predicate<A>): [excluded: HS.HashSet<A>, satisfying: HS.HashSet<A>]
305
+ } = dual(2, <A>(self: HS.HashSet<A>, predicate: Predicate<A>): [excluded: HS.HashSet<A>, satisfying: HS.HashSet<A>] => {
308
306
  const iterator = values(self)
309
307
  let next: IteratorResult<A, any>
310
308
  const right = beginMutation(empty<A>())
311
309
  const left = beginMutation(empty<A>())
312
310
  while (!(next = iterator.next()).done) {
313
311
  const value = next.value
314
- if (f(value)) {
312
+ if (predicate(value)) {
315
313
  add(right, value)
316
314
  } else {
317
315
  add(left, value)
318
316
  }
319
317
  }
320
- return [endMutation(left), endMutation(right)] as const
318
+ return [endMutation(left), endMutation(right)]
321
319
  })
@@ -30,10 +30,10 @@ type KeyedPoolMapValueSymbol = typeof KeyedPoolMapValueSymbol
30
30
  const keyedPoolVariance = {
31
31
  _K: (_: unknown) => _,
32
32
  _E: (_: never) => _,
33
- _A: (_: never) => _
33
+ _A: (_: any) => _
34
34
  }
35
35
 
36
- class KeyedPoolImpl<K, E, A> implements KeyedPool.KeyedPool<K, E, A> {
36
+ class KeyedPoolImpl<in K, out E, in out A> implements KeyedPool.KeyedPool<K, E, A> {
37
37
  readonly [KeyedPoolTypeId] = keyedPoolVariance
38
38
  constructor(
39
39
  readonly getOrCreatePool: (key: K) => Effect.Effect<never, never, Pool.Pool<E, A>>,
@@ -52,7 +52,7 @@ class KeyedPoolImpl<K, E, A> implements KeyedPool.KeyedPool<K, E, A> {
52
52
 
53
53
  type MapValue<E, A> = Complete<E, A> | Pending<E, A>
54
54
 
55
- class Complete<E, A> implements Equal.Equal {
55
+ class Complete<out E, in out A> implements Equal.Equal {
56
56
  readonly _tag = "Complete"
57
57
  readonly [KeyedPoolMapValueSymbol]: KeyedPoolMapValueSymbol = KeyedPoolMapValueSymbol
58
58
  constructor(readonly pool: Pool.Pool<E, A>) {}
@@ -70,7 +70,7 @@ class Complete<E, A> implements Equal.Equal {
70
70
  const isComplete = (u: unknown): u is Complete<unknown, unknown> =>
71
71
  Predicate.isTagged(u, "Complete") && KeyedPoolMapValueSymbol in u
72
72
 
73
- class Pending<E, A> implements Equal.Equal {
73
+ class Pending<in out E, in out A> implements Equal.Equal {
74
74
  readonly _tag = "Pending"
75
75
  readonly [KeyedPoolMapValueSymbol]: KeyedPoolMapValueSymbol = KeyedPoolMapValueSymbol
76
76
  constructor(readonly deferred: Deferred.Deferred<never, Pool.Pool<E, A>>) {}
@@ -82,8 +82,8 @@ export interface ExtendScope extends
82
82
  export interface Fold extends
83
83
  Op<OpCodes.OP_FOLD, {
84
84
  readonly layer: Layer.Layer<never, never, unknown>
85
- readonly failureK: (cause: Cause.Cause<unknown>) => Layer.Layer<never, never, unknown>
86
- readonly successK: (context: Context.Context<unknown>) => Layer.Layer<never, never, unknown>
85
+ failureK(cause: Cause.Cause<unknown>): Layer.Layer<never, never, unknown>
86
+ successK(context: Context.Context<unknown>): Layer.Layer<never, never, unknown>
87
87
  }>
88
88
  {}
89
89
 
@@ -111,7 +111,7 @@ export interface Scoped extends
111
111
  /** @internal */
112
112
  export interface Suspend extends
113
113
  Op<OpCodes.OP_SUSPEND, {
114
- readonly evaluate: LazyArg<Layer.Layer<never, never, unknown>>
114
+ evaluate(): Layer.Layer<never, never, unknown>
115
115
  }>
116
116
  {}
117
117
 
@@ -119,7 +119,7 @@ export interface Suspend extends
119
119
  export interface Locally extends
120
120
  Op<"Locally", {
121
121
  readonly self: Layer.Layer<never, never, unknown>
122
- readonly f: (_: Effect.Effect<any, any, any>) => Effect.Effect<any, any, any>
122
+ f(_: Effect.Effect<any, any, any>): Effect.Effect<any, any, any>
123
123
  }>
124
124
  {}
125
125
 
@@ -136,10 +136,7 @@ export interface ZipWith extends
136
136
  Op<OpCodes.OP_ZIP_WITH, {
137
137
  readonly first: Layer.Layer<never, never, unknown>
138
138
  readonly second: Layer.Layer<never, never, unknown>
139
- readonly zipK: (
140
- left: Context.Context<unknown>,
141
- right: Context.Context<unknown>
142
- ) => Context.Context<unknown>
139
+ zipK(left: Context.Context<unknown>, right: Context.Context<unknown>): Context.Context<unknown>
143
140
  }>
144
141
  {}
145
142
 
@@ -148,10 +145,7 @@ export interface ZipWithPar extends
148
145
  Op<OpCodes.OP_ZIP_WITH_PAR, {
149
146
  readonly first: Layer.Layer<never, never, unknown>
150
147
  readonly second: Layer.Layer<never, never, unknown>
151
- readonly zipK: (
152
- left: Context.Context<unknown>,
153
- right: Context.Context<unknown>
154
- ) => Context.Context<unknown>
148
+ zipK(left: Context.Context<unknown>, right: Context.Context<unknown>): Context.Context<unknown>
155
149
  }>
156
150
  {}
157
151
 
@@ -28,7 +28,7 @@ const metricKeyVariance = {
28
28
  }
29
29
 
30
30
  /** @internal */
31
- class MetricKeyImpl<Type extends MetricKeyType.MetricKeyType<any, any>> implements MetricKey.MetricKey<Type> {
31
+ class MetricKeyImpl<out Type extends MetricKeyType.MetricKeyType<any, any>> implements MetricKey.MetricKey<Type> {
32
32
  readonly [MetricKeyTypeId] = metricKeyVariance
33
33
  constructor(
34
34
  readonly name: string,
@@ -2,7 +2,7 @@ import type * as Effect from "../../Effect.js"
2
2
  import type * as Fiber from "../../Fiber.js"
3
3
  import { dual, pipe } from "../../Function.js"
4
4
  import type * as Metric from "../../Metric.js"
5
- import type * as PollingMetric from "../../MetricPolling.js"
5
+ import type * as MetricPolling from "../../MetricPolling.js"
6
6
  import { pipeArguments } from "../../Pipeable.js"
7
7
  import type * as Schedule from "../../Schedule.js"
8
8
  import type * as Scope from "../../Scope.js"
@@ -12,20 +12,20 @@ import * as metric from "../metric.js"
12
12
  import * as schedule from "../schedule.js"
13
13
 
14
14
  /** @internal */
15
- const PollingMetricSymbolKey = "effect/MetricPolling"
15
+ const MetricPollingSymbolKey = "effect/MetricPolling"
16
16
 
17
17
  /** @internal */
18
- export const PollingMetricTypeId: PollingMetric.PollingMetricTypeId = Symbol.for(
19
- PollingMetricSymbolKey
20
- ) as PollingMetric.PollingMetricTypeId
18
+ export const MetricPollingTypeId: MetricPolling.MetricPollingTypeId = Symbol.for(
19
+ MetricPollingSymbolKey
20
+ ) as MetricPolling.MetricPollingTypeId
21
21
 
22
22
  /** @internal */
23
23
  export const make = <Type, In, Out, R, E>(
24
24
  metric: Metric.Metric<Type, In, Out>,
25
25
  poll: Effect.Effect<R, E, In>
26
- ): PollingMetric.PollingMetric<Type, In, R, E, Out> => {
26
+ ): MetricPolling.MetricPolling<Type, In, R, E, Out> => {
27
27
  return {
28
- [PollingMetricTypeId]: PollingMetricTypeId,
28
+ [MetricPollingTypeId]: MetricPollingTypeId,
29
29
  pipe() {
30
30
  return pipeArguments(this, arguments)
31
31
  },
@@ -36,11 +36,11 @@ export const make = <Type, In, Out, R, E>(
36
36
 
37
37
  /** @internal */
38
38
  export const collectAll = <R, E, Out>(
39
- iterable: Iterable<PollingMetric.PollingMetric<any, any, R, E, Out>>
40
- ): PollingMetric.PollingMetric<Array<any>, Array<any>, R, E, Array<Out>> => {
39
+ iterable: Iterable<MetricPolling.MetricPolling<any, any, R, E, Out>>
40
+ ): MetricPolling.MetricPolling<Array<any>, Array<any>, R, E, Array<Out>> => {
41
41
  const metrics = Array.from(iterable)
42
42
  return {
43
- [PollingMetricTypeId]: PollingMetricTypeId,
43
+ [MetricPollingTypeId]: MetricPollingTypeId,
44
44
  pipe() {
45
45
  return pipeArguments(this, arguments)
46
46
  },
@@ -67,10 +67,10 @@ export const launch = dual<
67
67
  <R2, A2>(
68
68
  schedule: Schedule.Schedule<R2, unknown, A2>
69
69
  ) => <Type, In, R, E, Out>(
70
- self: PollingMetric.PollingMetric<Type, In, R, E, Out>
70
+ self: MetricPolling.MetricPolling<Type, In, R, E, Out>
71
71
  ) => Effect.Effect<R | R2 | Scope.Scope, never, Fiber.Fiber<E, A2>>,
72
72
  <Type, In, R, E, Out, R2, A2>(
73
- self: PollingMetric.PollingMetric<Type, In, R, E, Out>,
73
+ self: MetricPolling.MetricPolling<Type, In, R, E, Out>,
74
74
  schedule: Schedule.Schedule<R2, unknown, A2>
75
75
  ) => Effect.Effect<R | R2 | Scope.Scope, never, Fiber.Fiber<E, A2>>
76
76
  >(2, (self, schedule) =>
@@ -82,12 +82,12 @@ export const launch = dual<
82
82
 
83
83
  /** @internal */
84
84
  export const poll = <Type, In, R, E, Out>(
85
- self: PollingMetric.PollingMetric<Type, In, R, E, Out>
85
+ self: MetricPolling.MetricPolling<Type, In, R, E, Out>
86
86
  ): Effect.Effect<R, E, In> => self.poll
87
87
 
88
88
  /** @internal */
89
89
  export const pollAndUpdate = <Type, In, R, E, Out>(
90
- self: PollingMetric.PollingMetric<Type, In, R, E, Out>
90
+ self: MetricPolling.MetricPolling<Type, In, R, E, Out>
91
91
  ): Effect.Effect<R, E, void> => core.flatMap(self.poll, (value) => metric.update(self.metric, value))
92
92
 
93
93
  /** @internal */
@@ -95,14 +95,14 @@ export const retry = dual<
95
95
  <R2, E, _>(
96
96
  policy: Schedule.Schedule<R2, E, _>
97
97
  ) => <Type, In, R, Out>(
98
- self: PollingMetric.PollingMetric<Type, In, R, E, Out>
99
- ) => PollingMetric.PollingMetric<Type, In, R | R2, E, Out>,
98
+ self: MetricPolling.MetricPolling<Type, In, R, E, Out>
99
+ ) => MetricPolling.MetricPolling<Type, In, R | R2, E, Out>,
100
100
  <Type, In, R, Out, R2, E, _>(
101
- self: PollingMetric.PollingMetric<Type, In, R, E, Out>,
101
+ self: MetricPolling.MetricPolling<Type, In, R, E, Out>,
102
102
  policy: Schedule.Schedule<R2, E, _>
103
- ) => PollingMetric.PollingMetric<Type, In, R | R2, E, Out>
103
+ ) => MetricPolling.MetricPolling<Type, In, R | R2, E, Out>
104
104
  >(2, (self, policy) => ({
105
- [PollingMetricTypeId]: PollingMetricTypeId,
105
+ [MetricPollingTypeId]: MetricPollingTypeId,
106
106
  pipe() {
107
107
  return pipeArguments(this, arguments)
108
108
  },
@@ -113,10 +113,10 @@ export const retry = dual<
113
113
  /** @internal */
114
114
  export const zip = dual<
115
115
  <Type2, In2, R2, E2, Out2>(
116
- that: PollingMetric.PollingMetric<Type2, In2, R2, E2, Out2>
116
+ that: MetricPolling.MetricPolling<Type2, In2, R2, E2, Out2>
117
117
  ) => <Type, In, R, E, Out>(
118
- self: PollingMetric.PollingMetric<Type, In, R, E, Out>
119
- ) => PollingMetric.PollingMetric<
118
+ self: MetricPolling.MetricPolling<Type, In, R, E, Out>
119
+ ) => MetricPolling.MetricPolling<
120
120
  readonly [Type, Type2],
121
121
  readonly [In, In2],
122
122
  R | R2,
@@ -124,9 +124,9 @@ export const zip = dual<
124
124
  [Out, Out2]
125
125
  >,
126
126
  <Type, In, R, E, Out, Type2, In2, R2, E2, Out2>(
127
- self: PollingMetric.PollingMetric<Type, In, R, E, Out>,
128
- that: PollingMetric.PollingMetric<Type2, In2, R2, E2, Out2>
129
- ) => PollingMetric.PollingMetric<
127
+ self: MetricPolling.MetricPolling<Type, In, R, E, Out>,
128
+ that: MetricPolling.MetricPolling<Type2, In2, R2, E2, Out2>
129
+ ) => MetricPolling.MetricPolling<
130
130
  readonly [Type, Type2],
131
131
  readonly [In, In2],
132
132
  R | R2,
@@ -134,7 +134,7 @@ export const zip = dual<
134
134
  [Out, Out2]
135
135
  >
136
136
  >(2, (self, that) => ({
137
- [PollingMetricTypeId]: PollingMetricTypeId,
137
+ [MetricPollingTypeId]: MetricPollingTypeId,
138
138
  pipe() {
139
139
  return pipeArguments(this, arguments)
140
140
  },
@@ -63,6 +63,10 @@ export const make: Metric.MetricApply = function<Type, In, Out>(
63
63
  keyType,
64
64
  unsafeUpdate,
65
65
  unsafeValue,
66
+ register() {
67
+ this.unsafeValue(HashSet.empty())
68
+ return this as any
69
+ },
66
70
  pipe() {
67
71
  return pipeArguments(this, arguments)
68
72
  }
@@ -29,7 +29,7 @@ export const PoolTypeId: Pool.PoolTypeId = Symbol.for(
29
29
 
30
30
  const poolVariance = {
31
31
  _E: (_: never) => _,
32
- _A: (_: never) => _
32
+ _A: (_: any) => _
33
33
  }
34
34
 
35
35
  interface PoolState {
@@ -131,7 +131,7 @@ class TimeToLiveStrategy implements Strategy<readonly [Clock.Clock, Ref.Ref<numb
131
131
  }
132
132
  }
133
133
 
134
- class PoolImpl<E, A> implements Pool.Pool<E, A> {
134
+ class PoolImpl<in out E, in out A> implements Pool.Pool<E, A> {
135
135
  readonly [PoolTypeId] = poolVariance
136
136
  constructor(
137
137
  readonly creator: Effect.Effect<Scope.Scope, E, A>,