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
@@ -17,7 +17,6 @@ import type * as Schedule from "../Schedule.js"
17
17
  import * as ScheduleDecision from "../ScheduleDecision.js"
18
18
  import * as Interval from "../ScheduleInterval.js"
19
19
  import * as Intervals from "../ScheduleIntervals.js"
20
- import * as internalCause from "./cause.js"
21
20
  import * as effect from "./core-effect.js"
22
21
  import * as core from "./core.js"
23
22
  import * as ref from "./ref.js"
@@ -85,7 +84,7 @@ class ScheduleDriverImpl<Env, In, Out> implements Schedule.ScheduleDriver<Env, I
85
84
  return core.flatMap(ref.get(this.ref), ([element, _]) => {
86
85
  switch (element._tag) {
87
86
  case "None": {
88
- return core.failSync(() => internalCause.NoSuchElementException())
87
+ return core.failSync(() => new core.NoSuchElementException())
89
88
  }
90
89
  case "Some": {
91
90
  return core.succeed(element.value)
@@ -422,7 +421,7 @@ export const dayOfMonth = (day: number): Schedule.Schedule<never, unknown, numbe
422
421
  (now, _, state) => {
423
422
  if (!Number.isInteger(day) || day < 1 || 31 < day) {
424
423
  return core.dieSync(() =>
425
- internalCause.IllegalArgumentException(
424
+ new core.IllegalArgumentException(
426
425
  `Invalid argument in: dayOfMonth(${day}). Must be in range 1...31`
427
426
  )
428
427
  )
@@ -451,7 +450,7 @@ export const dayOfWeek = (day: number): Schedule.Schedule<never, unknown, number
451
450
  (now, _, state) => {
452
451
  if (!Number.isInteger(day) || day < 1 || 7 < day) {
453
452
  return core.dieSync(() =>
454
- internalCause.IllegalArgumentException(
453
+ new core.IllegalArgumentException(
455
454
  `Invalid argument in: dayOfWeek(${day}). Must be in range 1 (Monday)...7 (Sunday)`
456
455
  )
457
456
  )
@@ -745,7 +744,7 @@ export const hourOfDay = (hour: number): Schedule.Schedule<never, unknown, numbe
745
744
  (now, _, state) => {
746
745
  if (!Number.isInteger(hour) || hour < 0 || 23 < hour) {
747
746
  return core.dieSync(() =>
748
- internalCause.IllegalArgumentException(
747
+ new core.IllegalArgumentException(
749
748
  `Invalid argument in: hourOfDay(${hour}). Must be in range 0...23`
750
749
  )
751
750
  )
@@ -1001,7 +1000,7 @@ export const minuteOfHour = (minute: number): Schedule.Schedule<never, unknown,
1001
1000
  (now, _, state) => {
1002
1001
  if (!Number.isInteger(minute) || minute < 0 || 59 < minute) {
1003
1002
  return core.dieSync(() =>
1004
- internalCause.IllegalArgumentException(
1003
+ new core.IllegalArgumentException(
1005
1004
  `Invalid argument in: minuteOfHour(${minute}). Must be in range 0...59`
1006
1005
  )
1007
1006
  )
@@ -1314,7 +1313,7 @@ export const secondOfMinute = (second: number): Schedule.Schedule<never, unknown
1314
1313
  (now, _, state) => {
1315
1314
  if (!Number.isInteger(second) || second < 0 || 59 < second) {
1316
1315
  return core.dieSync(() =>
1317
- internalCause.IllegalArgumentException(
1316
+ new core.IllegalArgumentException(
1318
1317
  `Invalid argument in: secondOfMinute(${second}). Must be in range 0...59`
1319
1318
  )
1320
1319
  )
@@ -25,7 +25,7 @@ import * as fiberRuntime from "./fiberRuntime.js"
25
25
  *
26
26
  * @internal
27
27
  */
28
- export interface CacheState<Key, Error, Value> {
28
+ export interface CacheState<in out Key, out Error, out Value> {
29
29
  map: MutableHashMap.MutableHashMap<Key, MapValue<Key, Error, Value>> // mutable by design
30
30
  keys: _cache.KeySet<Key> // mutable by design
31
31
  accesses: MutableQueue.MutableQueue<_cache.MapKey<Key>> // mutable by design
@@ -80,7 +80,7 @@ export type MapValue<Key, Error, Value> =
80
80
  | Refreshing<Key, Error, Value>
81
81
 
82
82
  /** @internal */
83
- export interface Complete<Key, Error, Value> {
83
+ export interface Complete<out Key, out Error, out Value> {
84
84
  readonly _tag: "Complete"
85
85
  readonly key: _cache.MapKey<Key>
86
86
  readonly exit: Exit.Exit<Error, readonly [Value, Scope.Scope.Finalizer]>
@@ -90,14 +90,14 @@ export interface Complete<Key, Error, Value> {
90
90
  }
91
91
 
92
92
  /** @internal */
93
- export interface Pending<Key, Error, Value> {
93
+ export interface Pending<out Key, out Error, out Value> {
94
94
  readonly _tag: "Pending"
95
95
  readonly key: _cache.MapKey<Key>
96
96
  readonly scoped: Effect.Effect<never, never, Effect.Effect<Scope.Scope, Error, Value>>
97
97
  }
98
98
 
99
99
  /** @internal */
100
- export interface Refreshing<Key, Error, Value> {
100
+ export interface Refreshing<out Key, out Error, out Value> {
101
101
  readonly _tag: "Refreshing"
102
102
  readonly scoped: Effect.Effect<never, never, Effect.Effect<Scope.Scope, Error, Value>>
103
103
  readonly complete: Complete<Key, Error, Value>
@@ -182,7 +182,9 @@ const scopedCacheVariance = {
182
182
  _Value: (_: never) => _
183
183
  }
184
184
 
185
- class ScopedCacheImpl<Key, Environment, Error, Value> implements ScopedCache.ScopedCache<Key, Error, Value> {
185
+ class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value>
186
+ implements ScopedCache.ScopedCache<Key, Error, Value>
187
+ {
186
188
  readonly [ScopedCacheTypeId] = scopedCacheVariance
187
189
  readonly cacheState: CacheState<Key, Error, Value>
188
190
  constructor(
@@ -22,7 +22,7 @@ export const ScopedRefTypeId: ScopedRef.ScopedRefTypeId = Symbol.for(
22
22
 
23
23
  /** @internal */
24
24
  const scopedRefVariance = {
25
- _A: (_: never) => _
25
+ _A: (_: any) => _
26
26
  }
27
27
 
28
28
  /** @internal */
@@ -38,7 +38,7 @@ const sinkVariance = {
38
38
  }
39
39
 
40
40
  /** @internal */
41
- export class SinkImpl<R, E, In, L, Z> implements Sink.Sink<R, E, In, L, Z> {
41
+ export class SinkImpl<out R, out E, in In, out L, out Z> implements Sink.Sink<R, E, In, L, Z> {
42
42
  readonly [SinkTypeId] = sinkVariance
43
43
  constructor(
44
44
  readonly channel: Channel.Channel<R, never, Chunk.Chunk<In>, unknown, E, Chunk.Chunk<L>, Z>
@@ -195,7 +195,10 @@ export const collectAllUntilEffect = <In, R, E>(p: (input: In) => Effect.Effect<
195
195
  }
196
196
 
197
197
  /** @internal */
198
- export const collectAllWhile = <In>(predicate: Predicate<In>): Sink.Sink<never, never, In, In, Chunk.Chunk<In>> =>
198
+ export const collectAllWhile: {
199
+ <In, Out extends In>(refinement: Refinement<In, Out>): Sink.Sink<never, never, In, In, Chunk.Chunk<Out>>
200
+ <In>(predicate: Predicate<In>): Sink.Sink<never, never, In, In, Chunk.Chunk<In>>
201
+ } = <In>(predicate: Predicate<In>): Sink.Sink<never, never, In, In, Chunk.Chunk<In>> =>
199
202
  fromChannel(collectAllWhileReader(predicate, Chunk.empty()))
200
203
 
201
204
  /** @internal */
@@ -432,7 +435,7 @@ export const die = (defect: unknown): Sink.Sink<never, never, unknown, never, ne
432
435
 
433
436
  /** @internal */
434
437
  export const dieMessage = (message: string): Sink.Sink<never, never, unknown, never, never> =>
435
- failCause(Cause.die(Cause.RuntimeException(message)))
438
+ failCause(Cause.die(new Cause.RuntimeException(message)))
436
439
 
437
440
  /** @internal */
438
441
  export const dieSync = (evaluate: LazyArg<unknown>): Sink.Sink<never, never, unknown, never, never> =>
@@ -1,4 +1,4 @@
1
1
  /** @internal */
2
- export class Stack<A> {
2
+ export class Stack<out A> {
3
3
  constructor(readonly value: A, readonly previous?: Stack<A>) {}
4
4
  }
@@ -417,7 +417,7 @@ export const contextWithSTM = <R0, R, E, A>(
417
417
  ): STM.STM<R0 | R, E, A> => flatMap(context<R0>(), f)
418
418
 
419
419
  /** @internal */
420
- export class STMDriver<R, E, A> {
420
+ export class STMDriver<in out R, out E, out A> {
421
421
  private contStack: Array<Continuation> = []
422
422
  private env: Context.Context<unknown>
423
423
 
@@ -483,7 +483,7 @@ export class STMDriver<R, E, A> {
483
483
  break
484
484
  }
485
485
  case "None": {
486
- curr = fail(Cause.NoSuchElementException()) as Primitive
486
+ curr = fail(new Cause.NoSuchElementException()) as Primitive
487
487
  break
488
488
  }
489
489
  case "Right": {
@@ -616,7 +616,7 @@ export const die = (defect: unknown): STM.STM<never, never, never> => dieSync(()
616
616
 
617
617
  /** @internal */
618
618
  export const dieMessage = (message: string): STM.STM<never, never, never> =>
619
- dieSync(() => Cause.RuntimeException(message))
619
+ dieSync(() => new Cause.RuntimeException(message))
620
620
 
621
621
  /** @internal */
622
622
  export const dieSync = (evaluate: LazyArg<unknown>): STM.STM<never, never, never> => {
@@ -20,7 +20,7 @@ export type STMStateTypeId = typeof STMStateTypeId
20
20
  export type STMState<E, A> = Done<E, A> | Interrupted | Running
21
21
 
22
22
  /** @internal */
23
- export interface Done<E, A> extends Equal.Equal {
23
+ export interface Done<out E, out A> extends Equal.Equal {
24
24
  readonly [STMStateTypeId]: STMStateTypeId
25
25
  readonly _tag: OpCodes.OP_DONE
26
26
  readonly exit: Exit.Exit<E, A>
@@ -20,7 +20,7 @@ export type TExit<E, A> = Fail<E> | Die | Interrupt | Succeed<A> | Retry
20
20
  /** @internal */
21
21
  export declare namespace TExit {
22
22
  /** @internal */
23
- export interface Variance<E, A> {
23
+ export interface Variance<out E, out A> {
24
24
  readonly [TExitTypeId]: {
25
25
  readonly _E: (_: never) => E
26
26
  readonly _A: (_: never) => A
@@ -35,7 +35,7 @@ const variance = {
35
35
  }
36
36
 
37
37
  /** @internal */
38
- export interface Fail<E> extends TExit.Variance<E, never>, Equal.Equal {
38
+ export interface Fail<out E> extends TExit.Variance<E, never>, Equal.Equal {
39
39
  readonly _tag: OpCodes.OP_FAIL
40
40
  readonly error: E
41
41
  }
@@ -53,7 +53,7 @@ export interface Interrupt extends TExit.Variance<never, never>, Equal.Equal {
53
53
  }
54
54
 
55
55
  /** @internal */
56
- export interface Succeed<A> extends TExit.Variance<never, A>, Equal.Equal {
56
+ export interface Succeed<out A> extends TExit.Variance<never, A>, Equal.Equal {
57
57
  readonly _tag: OpCodes.OP_SUCCEED
58
58
  readonly value: A
59
59
  }
@@ -6,7 +6,7 @@ import type * as Journal from "./journal.js"
6
6
  export type TryCommit<E, A> = Done<E, A> | Suspend
7
7
 
8
8
  /** @internal */
9
- export interface Done<E, A> {
9
+ export interface Done<out E, out A> {
10
10
  readonly _tag: OpCodes.OP_DONE
11
11
  readonly exit: Exit.Exit<E, A>
12
12
  }
@@ -1,4 +1,4 @@
1
1
  /** @internal */
2
- export class Versioned<A> {
2
+ export class Versioned<out A> {
3
3
  constructor(readonly value: A) {}
4
4
  }
@@ -1250,11 +1250,11 @@ export const partition = dual<
1250
1250
  f: (a: A) => STM.STM<R, E, A2>
1251
1251
  ) => (
1252
1252
  elements: Iterable<A>
1253
- ) => STM.STM<R, never, [Array<E>, Array<A2>]>,
1253
+ ) => STM.STM<R, never, [excluded: Array<E>, satisfying: Array<A2>]>,
1254
1254
  <R, E, A, A2>(
1255
1255
  elements: Iterable<A>,
1256
1256
  f: (a: A) => STM.STM<R, E, A2>
1257
- ) => STM.STM<R, never, [Array<E>, Array<A2>]>
1257
+ ) => STM.STM<R, never, [excluded: Array<E>, satisfying: Array<A2>]>
1258
1258
  >(2, (elements, f) =>
1259
1259
  pipe(
1260
1260
  forEach(elements, (a) => either(f(a))),
@@ -18,11 +18,11 @@ export const TArrayTypeId: TArray.TArrayTypeId = Symbol.for(TArraySymbolKey) as
18
18
 
19
19
  /** @internal */
20
20
  const tArrayVariance = {
21
- _A: (_: never) => _
21
+ _A: (_: any) => _
22
22
  }
23
23
 
24
24
  /** @internal */
25
- export class TArrayImpl<A> implements TArray.TArray<A> {
25
+ export class TArrayImpl<in out A> implements TArray.TArray<A> {
26
26
  readonly [TArrayTypeId] = tArrayVariance
27
27
  constructor(readonly chunk: Array<TRef.TRef<A>>) {}
28
28
  }
@@ -18,12 +18,12 @@ export const TDeferredTypeId: TDeferred.TDeferredTypeId = Symbol.for(
18
18
 
19
19
  /** @internal */
20
20
  const tDeferredVariance = {
21
- _E: (_: never) => _,
22
- _A: (_: never) => _
21
+ _E: (_: any) => _,
22
+ _A: (_: any) => _
23
23
  }
24
24
 
25
25
  /** @internal */
26
- class TDeferredImpl<E, A> implements TDeferred.TDeferred<E, A> {
26
+ class TDeferredImpl<in out E, in out A> implements TDeferred.TDeferred<E, A> {
27
27
  readonly [TDeferredTypeId] = tDeferredVariance
28
28
  constructor(readonly ref: TRef.TRef<Option.Option<Either.Either<E, A>>>) {}
29
29
  }
@@ -27,12 +27,12 @@ export const TMapTypeId: TMap.TMapTypeId = Symbol.for(
27
27
 
28
28
  /** @internal */
29
29
  const tMapVariance = {
30
- _K: (_: never) => _,
31
- _V: (_: never) => _
30
+ _K: (_: any) => _,
31
+ _V: (_: any) => _
32
32
  }
33
33
 
34
34
  /** @internal */
35
- class TMapImpl<K, V> implements TMap.TMap<K, V> {
35
+ class TMapImpl<in out K, in out V> implements TMap.TMap<K, V> {
36
36
  readonly [TMapTypeId] = tMapVariance
37
37
  constructor(
38
38
  readonly tBuckets: TRef.TRef<TArray.TArray<Chunk.Chunk<readonly [K, V]>>>,
@@ -21,11 +21,11 @@ export const TPriorityQueueTypeId: TPriorityQueue.TPriorityQueueTypeId = Symbol.
21
21
 
22
22
  /** @internal */
23
23
  const tPriorityQueueVariance = {
24
- _A: (_: never) => _
24
+ _A: (_: any) => _
25
25
  }
26
26
 
27
27
  /** @internal */
28
- export class TPriorityQueueImpl<A> implements TPriorityQueue.TPriorityQueue<A> {
28
+ export class TPriorityQueueImpl<in out A> implements TPriorityQueue.TPriorityQueue<A> {
29
29
  readonly [TPriorityQueueTypeId] = tPriorityQueueVariance
30
30
  constructor(readonly ref: TRef.TRef<SortedMap.SortedMap<A, [A, ...Array<A>]>>) {}
31
31
  }
@@ -20,16 +20,19 @@ const TPubSubSymbolKey = "effect/TPubSub"
20
20
  /** @internal */
21
21
  export const TPubSubTypeId: TPubSub.TPubSubTypeId = Symbol.for(TPubSubSymbolKey) as TPubSub.TPubSubTypeId
22
22
 
23
+ const AbsentValue = Symbol.for("effect/TPubSub/AbsentValue")
24
+ type AbsentValue = typeof AbsentValue
25
+
23
26
  /** @internal */
24
- export interface Node<A> {
25
- readonly head: A
27
+ export interface Node<in out A> {
28
+ readonly head: A | AbsentValue
26
29
  readonly subscribers: number
27
30
  readonly tail: TRef.TRef<Node<A> | undefined>
28
31
  }
29
32
 
30
33
  /** @internal */
31
34
  export const makeNode = <A>(
32
- head: A,
35
+ head: A | AbsentValue,
33
36
  subscribers: number,
34
37
  tail: TRef.TRef<Node<A> | undefined>
35
38
  ): Node<A> => ({
@@ -39,8 +42,10 @@ export const makeNode = <A>(
39
42
  })
40
43
 
41
44
  /** @internal */
42
- class TPubSubImpl<A> implements TPubSub.TPubSub<A> {
43
- readonly [TPubSubTypeId]: TPubSub.TPubSubTypeId = TPubSubTypeId
45
+ class TPubSubImpl<in out A> implements TPubSub.TPubSub<A> {
46
+ readonly [TPubSubTypeId] = {
47
+ _A: (_: any) => _
48
+ }
44
49
  readonly [tQueue.TEnqueueTypeId] = tQueue.tEnqueueVariance
45
50
  constructor(
46
51
  readonly pubsubSize: TRef.TRef<number>,
@@ -122,9 +127,9 @@ class TPubSubImpl<A> implements TPubSub.TPubSub<A> {
122
127
  }
123
128
  const head = node.head
124
129
  const tail = node.tail
125
- if (head !== undefined) {
126
- const updatedNode = makeNode(void 0, node.subscribers, node.tail as any)
127
- tRef.unsafeSet<Node<A | undefined> | undefined>(
130
+ if (head !== AbsentValue) {
131
+ const updatedNode = makeNode<A>(AbsentValue, node.subscribers, node.tail as any)
132
+ tRef.unsafeSet<Node<A> | undefined>(
128
133
  currentPublisherHead as any,
129
134
  updatedNode as any,
130
135
  runtime.journal
@@ -171,14 +176,14 @@ class TPubSubImpl<A> implements TPubSub.TPubSub<A> {
171
176
  }
172
177
 
173
178
  /** @internal */
174
- class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
179
+ class TPubSubSubscriptionImpl<in out A> implements TQueue.TDequeue<A> {
175
180
  readonly [TPubSubTypeId]: TPubSub.TPubSubTypeId = TPubSubTypeId
176
181
  readonly [tQueue.TDequeueTypeId] = tQueue.tDequeueVariance
177
182
  constructor(
178
183
  readonly pubsubSize: TRef.TRef<number>,
179
184
  readonly publisherHead: TRef.TRef<TRef.TRef<Node<A> | undefined>>,
180
185
  readonly requestedCapacity: number,
181
- readonly subscriberHead: TRef.TRef<TRef.TRef<Node<A | undefined> | undefined> | undefined>,
186
+ readonly subscriberHead: TRef.TRef<TRef.TRef<Node<A> | undefined> | undefined>,
182
187
  readonly subscriberCount: TRef.TRef<number>,
183
188
  readonly subscribers: TRef.TRef<HashSet.HashSet<TRef.TRef<TRef.TRef<Node<A>> | undefined>>>
184
189
  ) {}
@@ -209,8 +214,8 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
209
214
  loop = false
210
215
  } else {
211
216
  const head = node.head
212
- const tail: TRef.TRef<Node<A | undefined> | undefined> = node.tail
213
- if (head !== undefined) {
217
+ const tail: TRef.TRef<Node<A> | undefined> = node.tail
218
+ if (head !== AbsentValue) {
214
219
  size = size + 1
215
220
  if (size >= Number.MAX_SAFE_INTEGER) {
216
221
  loop = false
@@ -231,7 +236,7 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
231
236
  if (currentSubscriberHead === undefined) {
232
237
  return core.interruptAs(runtime.fiberId)
233
238
  }
234
- let value: A | undefined = undefined
239
+ let value: A | AbsentValue = AbsentValue
235
240
  let loop = true
236
241
  while (loop) {
237
242
  const node = tRef.unsafeGet(currentSubscriberHead, runtime.journal)
@@ -239,15 +244,15 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
239
244
  return core.retry
240
245
  }
241
246
  const head = node.head
242
- const tail: TRef.TRef<Node<A | undefined> | undefined> = node.tail
243
- if (head !== undefined) {
247
+ const tail: TRef.TRef<Node<A> | undefined> = node.tail
248
+ if (head !== AbsentValue) {
244
249
  value = head
245
250
  loop = false
246
251
  } else {
247
252
  currentSubscriberHead = tail
248
253
  }
249
254
  }
250
- return core.succeed(value!)
255
+ return core.succeed(value as A)
251
256
  })
252
257
 
253
258
  peekOption: STM.STM<never, never, Option.Option<A>> = core.withSTMRuntime((runtime) => {
@@ -264,8 +269,8 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
264
269
  loop = false
265
270
  } else {
266
271
  const head = node.head
267
- const tail: TRef.TRef<Node<A | undefined> | undefined> = node.tail
268
- if (head !== undefined) {
272
+ const tail: TRef.TRef<Node<A> | undefined> = node.tail
273
+ if (head !== AbsentValue) {
269
274
  value = Option.some(head)
270
275
  loop = false
271
276
  } else {
@@ -279,7 +284,7 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
279
284
  shutdown: STM.STM<never, never, void> = core.effect<never, void>((journal) => {
280
285
  let currentSubscriberHead = tRef.unsafeGet(this.subscriberHead, journal)
281
286
  if (currentSubscriberHead !== undefined) {
282
- tRef.unsafeSet<TRef.TRef<Node<A | undefined> | undefined> | undefined>(this.subscriberHead, void 0, journal)
287
+ tRef.unsafeSet<TRef.TRef<Node<A> | undefined> | undefined>(this.subscriberHead, void 0, journal)
283
288
  let loop = true
284
289
  while (loop) {
285
290
  const node = tRef.unsafeGet(currentSubscriberHead, journal)
@@ -287,18 +292,18 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
287
292
  loop = false
288
293
  } else {
289
294
  const head = node.head
290
- const tail: TRef.TRef<Node<A | undefined> | undefined> = node.tail
291
- if (head !== undefined) {
295
+ const tail: TRef.TRef<Node<A> | undefined> = node.tail
296
+ if (head !== AbsentValue) {
292
297
  const subscribers = node.subscribers
293
298
  if (subscribers === 1) {
294
299
  const size = tRef.unsafeGet(this.pubsubSize, journal)
295
- const updatedNode = makeNode(undefined, 0, tail)
296
- tRef.unsafeSet<Node<A | undefined> | undefined>(currentSubscriberHead, updatedNode, journal)
300
+ const updatedNode = makeNode<A>(AbsentValue, 0, tail)
301
+ tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, journal)
297
302
  tRef.unsafeSet(this.publisherHead, tail as any, journal)
298
303
  tRef.unsafeSet(this.pubsubSize, size - 1, journal)
299
304
  } else {
300
305
  const updatedNode = makeNode(head, subscribers - 1, tail)
301
- tRef.unsafeSet<Node<A | undefined> | undefined>(currentSubscriberHead, updatedNode, journal)
306
+ tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, journal)
302
307
  }
303
308
  }
304
309
  currentSubscriberHead = tail
@@ -322,7 +327,7 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
322
327
  if (currentSubscriberHead === undefined) {
323
328
  return core.interruptAs(runtime.fiberId)
324
329
  }
325
- let value: A | undefined = undefined
330
+ let value: A | AbsentValue = AbsentValue
326
331
  let loop = true
327
332
  while (loop) {
328
333
  const node = tRef.unsafeGet(currentSubscriberHead, runtime.journal)
@@ -330,20 +335,20 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
330
335
  return core.retry
331
336
  }
332
337
  const head = node.head
333
- const tail: TRef.TRef<Node<A | undefined> | undefined> = node.tail
334
- if (head !== undefined) {
338
+ const tail: TRef.TRef<Node<A> | undefined> = node.tail
339
+ if (head !== AbsentValue) {
335
340
  const subscribers = node.subscribers
336
341
  if (subscribers === 1) {
337
342
  const size = tRef.unsafeGet(this.pubsubSize, runtime.journal)
338
- const updatedNode = makeNode(void 0, 0, tail)
339
- tRef.unsafeSet<Node<A | undefined> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
343
+ const updatedNode = makeNode<A>(AbsentValue, 0, tail)
344
+ tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
340
345
  tRef.unsafeSet(this.publisherHead, tail as any, runtime.journal)
341
346
  tRef.unsafeSet(this.pubsubSize, size - 1, runtime.journal)
342
347
  } else {
343
348
  const updatedNode = makeNode(head, subscribers - 1, tail)
344
- tRef.unsafeSet<Node<A | undefined> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
349
+ tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
345
350
  }
346
- tRef.unsafeSet<TRef.TRef<Node<A | undefined> | undefined> | undefined>(
351
+ tRef.unsafeSet<TRef.TRef<Node<A> | undefined> | undefined>(
347
352
  this.subscriberHead,
348
353
  tail,
349
354
  runtime.journal
@@ -354,7 +359,7 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
354
359
  currentSubscriberHead = tail
355
360
  }
356
361
  }
357
- return core.succeed(value!)
362
+ return core.succeed(value as A)
358
363
  })
359
364
 
360
365
  takeAll: STM.STM<never, never, Array<A>> = this.takeUpTo(Number.POSITIVE_INFINITY)
@@ -373,18 +378,18 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
373
378
  n = max
374
379
  } else {
375
380
  const head = node.head
376
- const tail: TRef.TRef<Node<A | undefined> | undefined> = node.tail
377
- if (head !== undefined) {
381
+ const tail: TRef.TRef<Node<A> | undefined> = node.tail
382
+ if (head !== AbsentValue) {
378
383
  const subscribers = node.subscribers
379
384
  if (subscribers === 1) {
380
385
  const size = tRef.unsafeGet(this.pubsubSize, runtime.journal)
381
- const updatedNode = makeNode(void 0, 0, tail)
382
- tRef.unsafeSet<Node<A | undefined> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
386
+ const updatedNode = makeNode<A>(AbsentValue, 0, tail)
387
+ tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
383
388
  tRef.unsafeSet(this.publisherHead, tail as any, runtime.journal)
384
389
  tRef.unsafeSet(this.pubsubSize, size - 1, runtime.journal)
385
390
  } else {
386
391
  const updatedNode = makeNode(head, subscribers - 1, tail)
387
- tRef.unsafeSet<Node<A | undefined> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
392
+ tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
388
393
  }
389
394
  builder.push(head)
390
395
  n = n + 1
@@ -392,7 +397,7 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
392
397
  currentSubscriberHead = tail
393
398
  }
394
399
  }
395
- tRef.unsafeSet<TRef.TRef<Node<A | undefined> | undefined> | undefined>(
400
+ tRef.unsafeSet<TRef.TRef<Node<A> | undefined> | undefined>(
396
401
  this.subscriberHead,
397
402
  currentSubscriberHead,
398
403
  runtime.journal
@@ -81,7 +81,7 @@ export const tEnqueueVariance = {
81
81
  _In: (_: unknown) => _
82
82
  }
83
83
 
84
- class TQueueImpl<A> implements TQueue.TQueue<A> {
84
+ class TQueueImpl<in out A> implements TQueue.TQueue<A> {
85
85
  readonly [TDequeueTypeId] = tDequeueVariance
86
86
  readonly [TEnqueueTypeId] = tEnqueueVariance
87
87
  constructor(
@@ -140,10 +140,10 @@ class TQueueImpl<A> implements TQueue.TQueue<A> {
140
140
  return core.succeed(false)
141
141
  }
142
142
  case OpCodes.OP_SLIDING_STRATEGY: {
143
- const dequeued = queue.shift()
144
- if (dequeued === undefined) {
143
+ if (queue.length === 0) {
145
144
  return core.succeed(true)
146
145
  }
146
+ queue.shift()
147
147
  queue.push(value)
148
148
  tRef.unsafeSet(this.ref, queue, runtime.journal)
149
149
  return core.succeed(true)
@@ -188,11 +188,10 @@ class TQueueImpl<A> implements TQueue.TQueue<A> {
188
188
  if (queue === undefined) {
189
189
  return core.interruptAs(runtime.fiberId)
190
190
  }
191
- const head = queue[0]
192
- if (head === undefined) {
191
+ if (queue.length === 0) {
193
192
  return core.retry
194
193
  }
195
- return core.succeed(head)
194
+ return core.succeed(queue[0])
196
195
  })
197
196
 
198
197
  peekOption: STM.STM<never, never, Option.Option<A>> = core.withSTMRuntime((runtime) => {
@@ -208,10 +207,10 @@ class TQueueImpl<A> implements TQueue.TQueue<A> {
208
207
  if (queue === undefined) {
209
208
  return core.interruptAs(runtime.fiberId)
210
209
  }
211
- const dequeued = queue.shift()
212
- if (dequeued === undefined) {
210
+ if (queue.length === 0) {
213
211
  return core.retry
214
212
  }
213
+ const dequeued = queue.shift()!
215
214
  tRef.unsafeSet(this.ref, queue, runtime.journal)
216
215
  return core.succeed(dequeued)
217
216
  })
@@ -44,11 +44,11 @@ export interface LockState {
44
44
  /**
45
45
  * Computes the number of read locks held by the specified fiber id.
46
46
  */
47
- readonly readLocksHeld: (fiberId: FiberId.FiberId) => number
47
+ readLocksHeld(fiberId: FiberId.FiberId): number
48
48
  /**
49
49
  * Computes the number of write locks held by the specified fiber id.
50
50
  */
51
- readonly writeLocksHeld: (fiberId: FiberId.FiberId) => number
51
+ writeLocksHeld(fiberId: FiberId.FiberId): number
52
52
  }
53
53
 
54
54
  /**
@@ -22,7 +22,7 @@ const tRefVariance = {
22
22
  }
23
23
 
24
24
  /** @internal */
25
- export class TRefImpl<A> implements TRef.TRef<A> {
25
+ export class TRefImpl<in out A> implements TRef.TRef<A> {
26
26
  readonly [TRefTypeId] = tRefVariance
27
27
  /** @internal */
28
28
  todos: Map<TxnId.TxnId, Journal.Todo>
@@ -36,7 +36,7 @@ export const acquireN = dual<
36
36
  >(2, (self, n) =>
37
37
  core.withSTMRuntime((driver) => {
38
38
  if (n < 0) {
39
- throw Cause.IllegalArgumentException(`Unexpected negative value ${n} passed to Semaphore.acquireN`)
39
+ throw new Cause.IllegalArgumentException(`Unexpected negative value ${n} passed to Semaphore.acquireN`)
40
40
  }
41
41
  const value = tRef.unsafeGet(self.permits, driver.journal)
42
42
  if (value < n) {
@@ -59,7 +59,7 @@ export const releaseN = dual<
59
59
  >(2, (self, n) =>
60
60
  core.withSTMRuntime((driver) => {
61
61
  if (n < 0) {
62
- throw Cause.IllegalArgumentException(`Unexpected negative value ${n} passed to Semaphore.releaseN`)
62
+ throw new Cause.IllegalArgumentException(`Unexpected negative value ${n} passed to Semaphore.releaseN`)
63
63
  }
64
64
  const current = tRef.unsafeGet(self.permits, driver.journal)
65
65
  return STM.succeed(tRef.unsafeSet(self.permits, current + n, driver.journal))
@@ -20,11 +20,11 @@ export const TSetTypeId: TSet.TSetTypeId = Symbol.for(
20
20
 
21
21
  /** @internal */
22
22
  const tSetVariance = {
23
- _A: (_: never) => _
23
+ _A: (_: any) => _
24
24
  }
25
25
 
26
26
  /** @internal */
27
- class TSetImpl<A> implements TSet.TSet<A> {
27
+ class TSetImpl<in out A> implements TSet.TSet<A> {
28
28
  readonly [TSetTypeId] = tSetVariance
29
29
  constructor(readonly tMap: TMap.TMap<A, void>) {}
30
30
  }