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
package/src/Duration.ts CHANGED
@@ -63,6 +63,7 @@ export type DurationInput =
63
63
  | Duration
64
64
  | number // millis
65
65
  | bigint // nanos
66
+ | [number, number] // [seconds, nanos]
66
67
  | `${number} ${Unit}`
67
68
 
68
69
  const DURATION_REGEX = /^(-?\d+(?:\.\d+)?)\s+(nanos|micros|millis|seconds|minutes|hours|days|weeks)$/
@@ -77,6 +78,10 @@ export const decode = (input: DurationInput): Duration => {
77
78
  return millis(input)
78
79
  } else if (isBigInt(input)) {
79
80
  return nanos(input)
81
+ } else if (Array.isArray(input)) {
82
+ if (input.length === 2 && isNumber(input[0]) && isNumber(input[1])) {
83
+ return nanos(BigInt(input[0]) * bigint1e9 + BigInt(input[1]))
84
+ }
80
85
  } else {
81
86
  DURATION_REGEX.lastIndex = 0 // Reset the lastIndex before each use
82
87
  const match = DURATION_REGEX.exec(input)
package/src/Effect.ts CHANGED
@@ -54,7 +54,7 @@ import * as Scheduler from "./Scheduler.js"
54
54
  import type * as Scope from "./Scope.js"
55
55
  import type * as Supervisor from "./Supervisor.js"
56
56
  import type * as Tracer from "./Tracer.js"
57
- import type { Concurrency } from "./Types.js"
57
+ import type { Concurrency, NoInfer } from "./Types.js"
58
58
  import type * as Unify from "./Unify.js"
59
59
 
60
60
  // -------------------------------------------------------------------------------------
@@ -99,7 +99,7 @@ export type EffectTypeId = typeof EffectTypeId
99
99
  * @since 2.0.0
100
100
  * @category models
101
101
  */
102
- export interface Effect<R, E, A> extends Effect.Variance<R, E, A>, Equal.Equal, Pipeable {
102
+ export interface Effect<out R, out E, out A> extends Effect.Variance<R, E, A>, Equal.Equal, Pipeable {
103
103
  readonly [Unify.typeSymbol]?: unknown
104
104
  readonly [Unify.unifySymbol]?: EffectUnify<this>
105
105
  readonly [Unify.ignoreSymbol]?: EffectUnifyIgnore
@@ -137,7 +137,7 @@ export interface EffectTypeLambda extends TypeLambda {
137
137
  * @since 2.0.0
138
138
  * @category models
139
139
  */
140
- export interface Blocked<R, E, A> extends Effect<R, E, A> {
140
+ export interface Blocked<out R, out E, out A> extends Effect<R, E, A> {
141
141
  readonly _op: "Blocked"
142
142
  readonly i0: RequestBlock<R>
143
143
  readonly i1: Effect<R, E, A>
@@ -200,14 +200,14 @@ export declare namespace Effect {
200
200
  * @since 2.0.0
201
201
  * @category models
202
202
  */
203
- export interface Variance<R, E, A> {
203
+ export interface Variance<out R, out E, out A> {
204
204
  readonly [EffectTypeId]: VarianceStruct<R, E, A>
205
205
  }
206
206
  /**
207
207
  * @since 2.0.0
208
208
  * @category models
209
209
  */
210
- export interface VarianceStruct<R, E, A> {
210
+ export interface VarianceStruct<out R, out E, out A> {
211
211
  readonly _V: string
212
212
  readonly _R: (_: never) => R
213
213
  readonly _E: (_: never) => E
@@ -508,7 +508,9 @@ export const allSuccesses: <R, E, A>(
508
508
  * @category collecting & elements
509
509
  */
510
510
  export const dropUntil: {
511
- <A, R, E>(predicate: (a: A, i: number) => Effect<R, E, boolean>): (elements: Iterable<A>) => Effect<R, E, Array<A>>
511
+ <B extends A, R, E, A = B>(
512
+ predicate: (a: A, i: number) => Effect<R, E, boolean>
513
+ ): (elements: Iterable<B>) => Effect<R, E, Array<B>>
512
514
  <A, R, E>(elements: Iterable<A>, predicate: (a: A, i: number) => Effect<R, E, boolean>): Effect<R, E, Array<A>>
513
515
  } = effect.dropUntil
514
516
 
@@ -519,8 +521,10 @@ export const dropUntil: {
519
521
  * @category collecting & elements
520
522
  */
521
523
  export const dropWhile: {
522
- <R, E, A>(f: (a: A, i: number) => Effect<R, E, boolean>): (elements: Iterable<A>) => Effect<R, E, Array<A>>
523
- <R, E, A>(elements: Iterable<A>, f: (a: A, i: number) => Effect<R, E, boolean>): Effect<R, E, Array<A>>
524
+ <B extends A, R, E, A = B>(
525
+ predicate: (a: A, i: number) => Effect<R, E, boolean>
526
+ ): (elements: Iterable<B>) => Effect<R, E, Array<B>>
527
+ <A, R, E>(elements: Iterable<A>, predicate: (a: A, i: number) => Effect<R, E, boolean>): Effect<R, E, Array<A>>
524
528
  } = effect.dropWhile
525
529
 
526
530
  /**
@@ -709,11 +713,11 @@ export const partition: {
709
713
  readonly concurrency?: Concurrency | undefined
710
714
  readonly batching?: boolean | "inherit" | undefined
711
715
  }
712
- ): (elements: Iterable<A>) => Effect<R, never, [Array<E>, Array<B>]>
716
+ ): (elements: Iterable<A>) => Effect<R, never, [excluded: Array<E>, satisfying: Array<B>]>
713
717
  <R, E, A, B>(elements: Iterable<A>, f: (a: A) => Effect<R, E, B>, options?: {
714
718
  readonly concurrency?: Concurrency | undefined
715
719
  readonly batching?: boolean | "inherit" | undefined
716
- }): Effect<R, never, [Array<E>, Array<B>]>
720
+ }): Effect<R, never, [excluded: Array<E>, satisfying: Array<B>]>
717
721
  } = fiberRuntime.partition
718
722
 
719
723
  /**
@@ -852,7 +856,9 @@ export const replicateEffect: {
852
856
  * @category collecting & elements
853
857
  */
854
858
  export const takeUntil: {
855
- <R, E, A>(predicate: (a: A, i: number) => Effect<R, E, boolean>): (elements: Iterable<A>) => Effect<R, E, Array<A>>
859
+ <B extends A, R, E, A = B>(
860
+ predicate: (a: A, i: number) => Effect<R, E, boolean>
861
+ ): (elements: Iterable<B>) => Effect<R, E, Array<B>>
856
862
  <R, E, A>(elements: Iterable<A>, predicate: (a: A, i: number) => Effect<R, E, boolean>): Effect<R, E, Array<A>>
857
863
  } = effect.takeUntil
858
864
 
@@ -863,7 +869,9 @@ export const takeUntil: {
863
869
  * @category collecting & elements
864
870
  */
865
871
  export const takeWhile: {
866
- <R, E, A>(predicate: (a: A, i: number) => Effect<R, E, boolean>): (elements: Iterable<A>) => Effect<R, E, Array<A>>
872
+ <R, E, B extends A, A = B>(
873
+ predicate: (a: A, i: number) => Effect<R, E, boolean>
874
+ ): (elements: Iterable<B>) => Effect<R, E, Array<B>>
867
875
  <R, E, A>(elements: Iterable<A>, predicate: (a: A, i: number) => Effect<R, E, boolean>): Effect<R, E, Array<A>>
868
876
  } = effect.takeWhile
869
877
 
@@ -1105,7 +1113,7 @@ export const gen: {
1105
1113
  * @category models
1106
1114
  * @since 2.0.0
1107
1115
  */
1108
- export interface EffectGen<R, E, A> {
1116
+ export interface EffectGen<out R, out E, out A> {
1109
1117
  readonly _R: () => R
1110
1118
  readonly _E: () => E
1111
1119
  readonly _A: () => A
@@ -1844,7 +1852,7 @@ export const retryWhileEffect: {
1844
1852
 
1845
1853
  const try_: {
1846
1854
  <A, E>(options: { readonly try: LazyArg<A>; readonly catch: (error: unknown) => E }): Effect<never, E, A>
1847
- <A>(evaluate: LazyArg<A>): Effect<never, unknown, A>
1855
+ <A>(evaluate: LazyArg<A>): Effect<never, Cause.UnknownException, A>
1848
1856
  } = effect.try_
1849
1857
  export {
1850
1858
  /**
@@ -1914,12 +1922,9 @@ export const tryMapPromise: {
1914
1922
  */
1915
1923
  export const tryPromise: {
1916
1924
  <A, E>(
1917
- options: {
1918
- readonly try: (signal: AbortSignal) => Promise<A>
1919
- readonly catch: (error: unknown) => E
1920
- }
1925
+ options: { readonly try: (signal: AbortSignal) => Promise<A>; readonly catch: (error: unknown) => E }
1921
1926
  ): Effect<never, E, A>
1922
- <A>(try_: (signal: AbortSignal) => Promise<A>): Effect<never, unknown, A>
1927
+ <A>(try_: (signal: AbortSignal) => Promise<A>): Effect<never, Cause.UnknownException, A>
1923
1928
  } = effect.tryPromise
1924
1929
 
1925
1930
  /**
@@ -3537,6 +3542,41 @@ export const flatMap: {
3537
3542
  <R, E, A, R1, E1, B>(self: Effect<R, E, A>, f: (a: A) => Effect<R1, E1, B>): Effect<R | R1, E | E1, B>
3538
3543
  } = core.flatMap
3539
3544
 
3545
+ /**
3546
+ * Executes a sequence of two `Effect`s. The second `Effect` can be dependent on the result of the first `Effect`.
3547
+ *
3548
+ * @since 2.0.0
3549
+ * @category sequencing
3550
+ */
3551
+ export const andThen: {
3552
+ <A, X>(
3553
+ f: (a: NoInfer<A>) => X
3554
+ ): <R, E>(
3555
+ self: Effect<R, E, A>
3556
+ ) => [X] extends [Effect<infer R1, infer E1, infer A1>] ? Effect<R | R1, E | E1, A1>
3557
+ : [X] extends [Promise<infer A1>] ? Effect<R, E | Cause.UnknownException, A1>
3558
+ : Effect<R, E, X>
3559
+ <X>(
3560
+ f: X
3561
+ ): <R, E, A>(
3562
+ self: Effect<R, E, A>
3563
+ ) => [X] extends [Effect<infer R1, infer E1, infer A1>] ? Effect<R | R1, E | E1, A1>
3564
+ : [X] extends [Promise<infer A1>] ? Effect<R, Cause.UnknownException | E, A1>
3565
+ : Effect<R, E, X>
3566
+ <A, R, E, X>(
3567
+ self: Effect<R, E, A>,
3568
+ f: (a: NoInfer<A>) => X
3569
+ ): [X] extends [Effect<infer R1, infer E1, infer A1>] ? Effect<R | R1, E | E1, A1>
3570
+ : [X] extends [Promise<infer A1>] ? Effect<R, Cause.UnknownException | E, A1>
3571
+ : Effect<R, E, X>
3572
+ <A, R, E, X>(
3573
+ self: Effect<R, E, A>,
3574
+ f: X
3575
+ ): [X] extends [Effect<infer R1, infer E1, infer A1>] ? Effect<R | R1, E | E1, A1>
3576
+ : [X] extends [Promise<infer A1>] ? Effect<R, Cause.UnknownException | E, A1>
3577
+ : Effect<R, E, X>
3578
+ } = core.andThen
3579
+
3540
3580
  /**
3541
3581
  * @since 2.0.0
3542
3582
  * @category sequencing
@@ -3638,10 +3678,32 @@ export const summarized: {
3638
3678
  * @category sequencing
3639
3679
  */
3640
3680
  export const tap: {
3641
- <A, X extends A, R2, E2, _>(
3642
- f: (a: X) => Effect<R2, E2, _>
3643
- ): <R, E>(self: Effect<R, E, A>) => Effect<R2 | R, E2 | E, A>
3644
- <R, E, A, X extends A, R2, E2, _>(self: Effect<R, E, A>, f: (a: X) => Effect<R2, E2, _>): Effect<R | R2, E | E2, A>
3681
+ <A, X>(
3682
+ f: (a: NoInfer<A>) => X
3683
+ ): <R, E>(
3684
+ self: Effect<R, E, A>
3685
+ ) => [X] extends [Effect<infer R1, infer E1, infer _A1>] ? Effect<R | R1, E | E1, A>
3686
+ : [X] extends [Promise<infer _A1>] ? Effect<R, E | Cause.UnknownException, A>
3687
+ : Effect<R, E, A>
3688
+ <X>(
3689
+ f: X
3690
+ ): <R, E, A>(
3691
+ self: Effect<R, E, A>
3692
+ ) => [X] extends [Effect<infer R1, infer E1, infer _A1>] ? Effect<R | R1, E | E1, A>
3693
+ : [X] extends [Promise<infer _A1>] ? Effect<R, Cause.UnknownException | E, A>
3694
+ : Effect<R, E, A>
3695
+ <A, R, E, X>(
3696
+ self: Effect<R, E, A>,
3697
+ f: (a: NoInfer<A>) => X
3698
+ ): [X] extends [Effect<infer R1, infer E1, infer _A1>] ? Effect<R | R1, E | E1, A>
3699
+ : [X] extends [Promise<infer _A1>] ? Effect<R, Cause.UnknownException | E, A>
3700
+ : Effect<R, E, A>
3701
+ <A, R, E, X>(
3702
+ self: Effect<R, E, A>,
3703
+ f: X
3704
+ ): [X] extends [Effect<infer R1, infer E1, infer _A1>] ? Effect<R | R1, E | E1, A>
3705
+ : [X] extends [Promise<infer _A1>] ? Effect<R, Cause.UnknownException | E, A>
3706
+ : Effect<R, E, A>
3645
3707
  } = core.tap
3646
3708
 
3647
3709
  /**
@@ -4580,9 +4642,9 @@ export interface Permit {
4580
4642
  * @since 2.0.0
4581
4643
  */
4582
4644
  export interface Semaphore {
4583
- readonly withPermits: (permits: number) => <R, E, A>(self: Effect<R, E, A>) => Effect<R, E, A>
4584
- readonly take: (permits: number) => Effect<never, never, number>
4585
- readonly release: (permits: number) => Effect<never, never, void>
4645
+ withPermits(permits: number): <R, E, A>(self: Effect<R, E, A>) => Effect<R, E, A>
4646
+ take(permits: number): Effect<never, never, number>
4647
+ release(permits: number): Effect<never, never, void>
4586
4648
  }
4587
4649
 
4588
4650
  /**
package/src/Either.ts CHANGED
@@ -37,7 +37,7 @@ export type TypeId = typeof TypeId
37
37
  * @category models
38
38
  * @since 2.0.0
39
39
  */
40
- export interface Left<E, A> extends Data.Case, Pipeable, Inspectable {
40
+ export interface Left<out E, out A> extends Data.Case, Pipeable, Inspectable {
41
41
  readonly _tag: "Left"
42
42
  readonly _op: "Left"
43
43
  readonly left: E
@@ -54,7 +54,7 @@ export interface Left<E, A> extends Data.Case, Pipeable, Inspectable {
54
54
  * @category models
55
55
  * @since 2.0.0
56
56
  */
57
- export interface Right<E, A> extends Data.Case, Pipeable, Inspectable {
57
+ export interface Right<out E, out A> extends Data.Case, Pipeable, Inspectable {
58
58
  readonly _tag: "Right"
59
59
  readonly _op: "Right"
60
60
  readonly right: A
@@ -147,11 +147,17 @@ export const fromOption: {
147
147
 
148
148
  const try_: {
149
149
  <A, E>(
150
- options: { readonly try: LazyArg<A>; readonly catch: (error: unknown) => E }
150
+ options: {
151
+ readonly try: LazyArg<A>
152
+ readonly catch: (error: unknown) => E
153
+ }
151
154
  ): Either<E, A>
152
155
  <A>(evaluate: LazyArg<A>): Either<unknown, A>
153
156
  } = (<A, E>(
154
- evaluate: LazyArg<A> | { readonly try: LazyArg<A>; readonly catch: (error: unknown) => E }
157
+ evaluate: LazyArg<A> | {
158
+ readonly try: LazyArg<A>
159
+ readonly catch: (error: unknown) => E
160
+ }
155
161
  ) => {
156
162
  if (isFunction(evaluate)) {
157
163
  try {
@@ -491,7 +497,7 @@ export const orElse: {
491
497
  )
492
498
 
493
499
  /**
494
- * @category combining
500
+ * @category sequencing
495
501
  * @since 2.0.0
496
502
  */
497
503
  export const flatMap: {
@@ -503,6 +509,23 @@ export const flatMap: {
503
509
  isLeft(self) ? left(self.left) : f(self.right)
504
510
  )
505
511
 
512
+ /**
513
+ * Executes a sequence of two `Either`s. The second `Either` can be dependent on the result of the first `Either`.
514
+ *
515
+ * @category sequencing
516
+ * @since 2.0.0
517
+ */
518
+ export const andThen: {
519
+ <A, E2, B>(f: (a: A) => Either<E2, B>): <E1>(self: Either<E1, A>) => Either<E1 | E2, B>
520
+ <E2, B>(f: Either<E2, B>): <E1, A>(self: Either<E1, A>) => Either<E1 | E2, B>
521
+ <E1, A, E2, B>(self: Either<E1, A>, f: (a: A) => Either<E2, B>): Either<E1 | E2, B>
522
+ <E1, A, E2, B>(self: Either<E1, A>, f: Either<E2, B>): Either<E1 | E2, B>
523
+ } = dual(
524
+ 2,
525
+ <E1, A, E2, B>(self: Either<E1, A>, f: (a: A) => Either<E2, B> | Either<E2, B>): Either<E1 | E2, B> =>
526
+ isFunction(f) ? flatMap(self, f) : flatMap(self, () => f)
527
+ )
528
+
506
529
  /**
507
530
  * @since 2.0.0
508
531
  * @category combining
package/src/Equal.ts CHANGED
@@ -16,7 +16,7 @@ export const symbol: unique symbol = Symbol.for("effect/Equal")
16
16
  * @category models
17
17
  */
18
18
  export interface Equal extends Hash.Hash {
19
- readonly [symbol]: (that: Equal) => boolean
19
+ [symbol](that: Equal): boolean
20
20
  }
21
21
 
22
22
  /**
@@ -12,7 +12,7 @@ import type { TypeLambda } from "./HKT.js"
12
12
  * @category type class
13
13
  * @since 2.0.0
14
14
  */
15
- export interface Equivalence<A> {
15
+ export interface Equivalence<in A> {
16
16
  (self: A, that: A): boolean
17
17
  }
18
18
 
package/src/Exit.ts CHANGED
@@ -9,7 +9,7 @@ import type { Inspectable } from "./Inspectable.js"
9
9
  import * as core from "./internal/core.js"
10
10
  import type * as Option from "./Option.js"
11
11
  import type { Pipeable } from "./Pipeable.js"
12
- import type { Predicate } from "./Predicate.js"
12
+ import type { Predicate, Refinement } from "./Predicate.js"
13
13
  import type * as Unify from "./Unify.js"
14
14
 
15
15
  /**
@@ -31,7 +31,7 @@ export type Exit<E, A> = Failure<E, A> | Success<E, A>
31
31
  * @since 2.0.0
32
32
  * @category models
33
33
  */
34
- export interface Failure<E, A> extends Effect.Effect<never, E, A>, Pipeable, Inspectable {
34
+ export interface Failure<out E, out A> extends Effect.Effect<never, E, A>, Pipeable, Inspectable {
35
35
  readonly _tag: "Failure"
36
36
  readonly _op: "Failure"
37
37
  readonly cause: Cause.Cause<E>
@@ -65,7 +65,7 @@ export interface ExitUnifyIgnore extends Effect.EffectUnifyIgnore {
65
65
  * @since 2.0.0
66
66
  * @category models
67
67
  */
68
- export interface Success<E, A> extends Effect.Effect<never, E, A>, Pipeable, Inspectable {
68
+ export interface Success<out E, out A> extends Effect.Effect<never, E, A>, Pipeable, Inspectable {
69
69
  readonly _tag: "Success"
70
70
  readonly _op: "Success"
71
71
  readonly value: A
@@ -168,7 +168,9 @@ export const die: (defect: unknown) => Exit<never, never> = core.exitDie
168
168
  * @category elements
169
169
  */
170
170
  export const exists: {
171
+ <A, B extends A>(refinement: Refinement<A, B>): <E>(self: Exit<E, A>) => self is Exit<never, B>
171
172
  <A>(predicate: Predicate<A>): <E>(self: Exit<E, A>) => boolean
173
+ <E, A, B extends A>(self: Exit<E, A>, refinement: Refinement<A, B>): self is Exit<never, B>
172
174
  <E, A>(self: Exit<E, A>, predicate: Predicate<A>): boolean
173
175
  } = core.exitExists
174
176
 
@@ -286,11 +288,17 @@ export const map: {
286
288
  */
287
289
  export const mapBoth: {
288
290
  <E, A, E2, A2>(
289
- options: { readonly onFailure: (e: E) => E2; readonly onSuccess: (a: A) => A2 }
291
+ options: {
292
+ readonly onFailure: (e: E) => E2
293
+ readonly onSuccess: (a: A) => A2
294
+ }
290
295
  ): (self: Exit<E, A>) => Exit<E2, A2>
291
296
  <E, A, E2, A2>(
292
297
  self: Exit<E, A>,
293
- options: { readonly onFailure: (e: E) => E2; readonly onSuccess: (a: A) => A2 }
298
+ options: {
299
+ readonly onFailure: (e: E) => E2
300
+ readonly onSuccess: (a: A) => A2
301
+ }
294
302
  ): Exit<E2, A2>
295
303
  } = core.exitMapBoth
296
304
 
@@ -324,11 +332,17 @@ export const mapErrorCause: {
324
332
  */
325
333
  export const match: {
326
334
  <E, A, Z1, Z2>(
327
- options: { readonly onFailure: (cause: Cause.Cause<E>) => Z1; readonly onSuccess: (a: A) => Z2 }
335
+ options: {
336
+ readonly onFailure: (cause: Cause.Cause<E>) => Z1
337
+ readonly onSuccess: (a: A) => Z2
338
+ }
328
339
  ): (self: Exit<E, A>) => Z1 | Z2
329
340
  <E, A, Z1, Z2>(
330
341
  self: Exit<E, A>,
331
- options: { readonly onFailure: (cause: Cause.Cause<E>) => Z1; readonly onSuccess: (a: A) => Z2 }
342
+ options: {
343
+ readonly onFailure: (cause: Cause.Cause<E>) => Z1
344
+ readonly onSuccess: (a: A) => Z2
345
+ }
332
346
  ): Z1 | Z2
333
347
  } = core.exitMatch
334
348
 
package/src/Fiber.ts CHANGED
@@ -56,11 +56,11 @@ export type RuntimeFiberTypeId = typeof RuntimeFiberTypeId
56
56
  * @since 2.0.0
57
57
  * @category models
58
58
  */
59
- export interface Fiber<E, A> extends Fiber.Variance<E, A>, Pipeable {
59
+ export interface Fiber<out E, out A> extends Fiber.Variance<E, A>, Pipeable {
60
60
  /**
61
61
  * The identity of the fiber.
62
62
  */
63
- readonly id: () => FiberId.FiberId
63
+ id(): FiberId.FiberId
64
64
 
65
65
  /**
66
66
  * Awaits the fiber, which suspends the awaiting fiber until the result of the
@@ -90,7 +90,7 @@ export interface Fiber<E, A> extends Fiber.Variance<E, A>, Pipeable {
90
90
  * specified fiber. If the fiber has already exited, the returned effect will
91
91
  * resume immediately. Otherwise, the effect will resume when the fiber exits.
92
92
  */
93
- readonly interruptAsFork: (fiberId: FiberId.FiberId) => Effect.Effect<never, never, void>
93
+ interruptAsFork(fiberId: FiberId.FiberId): Effect.Effect<never, never, void>
94
94
  }
95
95
 
96
96
  /**
@@ -100,7 +100,7 @@ export interface Fiber<E, A> extends Fiber.Variance<E, A>, Pipeable {
100
100
  * @since 2.0.0
101
101
  * @category models
102
102
  */
103
- export interface RuntimeFiber<E, A> extends Fiber<E, A>, Fiber.RuntimeVariance<E, A> {
103
+ export interface RuntimeFiber<out E, out A> extends Fiber<E, A>, Fiber.RuntimeVariance<E, A> {
104
104
  /**
105
105
  * Reads the current number of ops that have occurred since the last yield
106
106
  */
@@ -109,12 +109,12 @@ export interface RuntimeFiber<E, A> extends Fiber<E, A>, Fiber.RuntimeVariance<E
109
109
  /**
110
110
  * Reads the current value of a fiber ref
111
111
  */
112
- readonly getFiberRef: <X>(fiberRef: FiberRef<X>) => X
112
+ getFiberRef<X>(fiberRef: FiberRef<X>): X
113
113
 
114
114
  /**
115
115
  * The identity of the fiber.
116
116
  */
117
- readonly id: () => FiberId.Runtime
117
+ id(): FiberId.Runtime
118
118
 
119
119
  /**
120
120
  * The status of the fiber.
@@ -129,24 +129,24 @@ export interface RuntimeFiber<E, A> extends Fiber<E, A>, Fiber.RuntimeVariance<E
129
129
  /**
130
130
  * Adds an observer to the list of observers.
131
131
  */
132
- readonly addObserver: (observer: (exit: Exit.Exit<E, A>) => void) => void
132
+ addObserver(observer: (exit: Exit.Exit<E, A>) => void): void
133
133
 
134
134
  /**
135
135
  * Removes the specified observer from the list of observers that will be
136
136
  * notified when the fiber exits.
137
137
  */
138
- readonly removeObserver: (observer: (exit: Exit.Exit<E, A>) => void) => void
138
+ removeObserver(observer: (exit: Exit.Exit<E, A>) => void): void
139
139
 
140
140
  /**
141
141
  * Retrieves all fiber refs of the fiber.
142
142
  */
143
- readonly getFiberRefs: () => FiberRefs.FiberRefs
143
+ getFiberRefs(): FiberRefs.FiberRefs
144
144
 
145
145
  /**
146
146
  * Unsafely observes the fiber, but returns immediately if it is not
147
147
  * already done.
148
148
  */
149
- readonly unsafePoll: () => Exit.Exit<E, A> | null
149
+ unsafePoll(): Exit.Exit<E, A> | null
150
150
  }
151
151
 
152
152
  /**
@@ -163,7 +163,7 @@ export declare namespace Fiber {
163
163
  * @since 2.0.0
164
164
  * @category models
165
165
  */
166
- export interface Variance<E, A> {
166
+ export interface Variance<out E, out A> {
167
167
  readonly [FiberTypeId]: {
168
168
  readonly _E: (_: never) => E
169
169
  readonly _A: (_: never) => A
@@ -173,7 +173,7 @@ export declare namespace Fiber {
173
173
  /**
174
174
  * @since 2.0.0
175
175
  */
176
- export interface RuntimeVariance<E, A> {
176
+ export interface RuntimeVariance<out E, out A> {
177
177
  readonly [RuntimeFiberTypeId]: {
178
178
  readonly _E: (_: never) => E
179
179
  readonly _A: (_: never) => A
@@ -491,11 +491,17 @@ export const mapFiber: {
491
491
  */
492
492
  export const match: {
493
493
  <E, A, Z>(
494
- options: { readonly onFiber: (fiber: Fiber<E, A>) => Z; readonly onRuntimeFiber: (fiber: RuntimeFiber<E, A>) => Z }
494
+ options: {
495
+ readonly onFiber: (fiber: Fiber<E, A>) => Z
496
+ readonly onRuntimeFiber: (fiber: RuntimeFiber<E, A>) => Z
497
+ }
495
498
  ): (self: Fiber<E, A>) => Z
496
499
  <E, A, Z>(
497
500
  self: Fiber<E, A>,
498
- options: { readonly onFiber: (fiber: Fiber<E, A>) => Z; readonly onRuntimeFiber: (fiber: RuntimeFiber<E, A>) => Z }
501
+ options: {
502
+ readonly onFiber: (fiber: Fiber<E, A>) => Z
503
+ readonly onRuntimeFiber: (fiber: RuntimeFiber<E, A>) => Z
504
+ }
499
505
  ): Z
500
506
  } = internal.match
501
507
 
package/src/FiberRef.ts CHANGED
@@ -42,28 +42,28 @@ export type FiberRefTypeId = typeof FiberRefTypeId
42
42
  * @since 2.0.0
43
43
  * @category model
44
44
  */
45
- export interface FiberRef<A> extends Variance<A>, Pipeable {
45
+ export interface FiberRef<in out A> extends Variance<A>, Pipeable {
46
46
  /** @internal */
47
47
  readonly initial: A
48
48
  /** @internal */
49
- readonly diff: (oldValue: A, newValue: A) => unknown
49
+ diff(oldValue: A, newValue: A): unknown
50
50
  /** @internal */
51
- readonly combine: (first: unknown, second: unknown) => unknown
51
+ combine(first: unknown, second: unknown): unknown
52
52
  /** @internal */
53
- readonly patch: (patch: unknown) => (oldValue: A) => A
53
+ patch(patch: unknown): (oldValue: A) => A
54
54
  /** @internal */
55
55
  readonly fork: unknown
56
56
  /** @internal */
57
- readonly join: (oldValue: A, newValue: A) => A
57
+ join(oldValue: A, newValue: A): A
58
58
  }
59
59
 
60
60
  /**
61
61
  * @since 2.0.0
62
62
  * @category models
63
63
  */
64
- export interface Variance<A> {
64
+ export interface Variance<in out A> {
65
65
  readonly [FiberRefTypeId]: {
66
- readonly _A: (_: never) => A
66
+ readonly _A: (_: A) => A
67
67
  }
68
68
  }
69
69
 
package/src/GroupBy.ts CHANGED
@@ -28,7 +28,7 @@ export type GroupByTypeId = typeof GroupByTypeId
28
28
  * @since 2.0.0
29
29
  * @category models
30
30
  */
31
- export interface GroupBy<R, E, K, V> extends GroupBy.Variance<R, E, K, V>, Pipeable {
31
+ export interface GroupBy<out R, out E, out K, out V> extends GroupBy.Variance<R, E, K, V>, Pipeable {
32
32
  readonly grouped: Stream.Stream<R, E, readonly [K, Queue.Dequeue<Take.Take<E, V>>]>
33
33
  }
34
34
 
@@ -40,7 +40,7 @@ export declare namespace GroupBy {
40
40
  * @since 2.0.0
41
41
  * @category models
42
42
  */
43
- export interface Variance<R, E, K, V> {
43
+ export interface Variance<out R, out E, out K, out V> {
44
44
  readonly [GroupByTypeId]: {
45
45
  readonly _R: (_: never) => R
46
46
  readonly _E: (_: never) => E
package/src/Hash.ts CHANGED
@@ -28,7 +28,7 @@ export const symbol: unique symbol = Symbol.for("effect/Hash")
28
28
  * @category models
29
29
  */
30
30
  export interface Hash {
31
- readonly [symbol]: () => number
31
+ [symbol](): number
32
32
  }
33
33
 
34
34
  /**
package/src/HashMap.ts CHANGED
@@ -22,7 +22,7 @@ export type TypeId = typeof TypeId
22
22
  * @since 2.0.0
23
23
  * @category models
24
24
  */
25
- export interface HashMap<Key, Value> extends Iterable<[Key, Value]>, Equal, Pipeable, Inspectable {
25
+ export interface HashMap<out Key, out Value> extends Iterable<[Key, Value]>, Equal, Pipeable, Inspectable {
26
26
  readonly [TypeId]: TypeId
27
27
  }
28
28
 
@@ -381,7 +381,7 @@ export const reduce: {
381
381
  */
382
382
  export const filter: {
383
383
  <K, A, B extends A>(f: (a: A, k: K) => a is B): (self: HashMap<K, A>) => HashMap<K, B>
384
- <K, A>(f: (a: A, k: K) => boolean): (self: HashMap<K, A>) => HashMap<K, A>
384
+ <K, B extends A, A = B>(f: (a: A, k: K) => boolean): (self: HashMap<K, B>) => HashMap<K, B>
385
385
  <K, A, B extends A>(self: HashMap<K, A>, f: (a: A, k: K) => a is B): HashMap<K, B>
386
386
  <K, A>(self: HashMap<K, A>, f: (a: A, k: K) => boolean): HashMap<K, A>
387
387
  } = HM.filter
@@ -414,6 +414,8 @@ export const filterMap: {
414
414
  * @since 2.0.0
415
415
  */
416
416
  export const findFirst: {
417
- <K, A>(predicate: (k: K, a: A) => boolean): (self: HashMap<K, A>) => Option<[K, A]>
418
- <K, A>(self: HashMap<K, A>, predicate: (k: K, a: A) => boolean): Option<[K, A]>
417
+ <K, A, B extends A>(predicate: (a: A, k: K) => a is B): (self: HashMap<K, A>) => Option<[K, B]>
418
+ <K, B extends A, A = B>(predicate: (a: A, k: K) => boolean): (self: HashMap<K, B>) => Option<[K, B]>
419
+ <K, A, B extends A>(self: HashMap<K, A>, predicate: (a: A, k: K) => a is B): Option<[K, B]>
420
+ <K, A>(self: HashMap<K, A>, predicate: (a: A, k: K) => boolean): Option<[K, A]>
419
421
  } = HM.findFirst
package/src/HashSet.ts CHANGED
@@ -20,7 +20,7 @@ export type TypeId = typeof TypeId
20
20
  * @since 2.0.0
21
21
  * @category models
22
22
  */
23
- export interface HashSet<A> extends Iterable<A>, Equal, Pipeable, Inspectable {
23
+ export interface HashSet<out A> extends Iterable<A>, Equal, Pipeable, Inspectable {
24
24
  readonly [TypeId]: TypeId
25
25
  }
26
26
 
@@ -271,10 +271,10 @@ export const reduce: {
271
271
  * @category filtering
272
272
  */
273
273
  export const filter: {
274
- <A, B extends A>(f: Refinement<A, B>): (self: HashSet<A>) => HashSet<B>
275
- <A>(f: Predicate<A>): (self: HashSet<A>) => HashSet<A>
276
- <A, B extends A>(self: HashSet<A>, f: Refinement<A, B>): HashSet<B>
277
- <A>(self: HashSet<A>, f: Predicate<A>): HashSet<A>
274
+ <A, B extends A>(refinement: Refinement<A, B>): (self: HashSet<A>) => HashSet<B>
275
+ <B extends A, A = B>(predicate: Predicate<A>): (self: HashSet<B>) => HashSet<B>
276
+ <A, B extends A>(self: HashSet<A>, refinement: Refinement<A, B>): HashSet<B>
277
+ <A>(self: HashSet<A>, predicate: Predicate<A>): HashSet<A>
278
278
  } = HS.filter
279
279
 
280
280
  /**
@@ -290,11 +290,11 @@ export const filter: {
290
290
  export const partition: {
291
291
  <C extends A, B extends A, A = C>(
292
292
  refinement: Refinement<A, B>
293
- ): (self: HashSet<C>) => [HashSet<Exclude<C, B>>, HashSet<B>]
294
- <B extends A, A = B>(predicate: (a: A) => boolean): (self: HashSet<B>) => [HashSet<B>, HashSet<B>]
295
- <C extends A, B extends A, A = C>(
296
- self: HashSet<C>,
293
+ ): (self: HashSet<C>) => [excluded: HashSet<Exclude<C, B>>, satisfying: HashSet<B>]
294
+ <B extends A, A = B>(predicate: Predicate<A>): (self: HashSet<B>) => [excluded: HashSet<B>, satisfying: HashSet<B>]
295
+ <A, B extends A>(
296
+ self: HashSet<A>,
297
297
  refinement: Refinement<A, B>
298
- ): [HashSet<Exclude<C, B>>, HashSet<B>]
299
- <B extends A, A = B>(self: HashSet<B>, predicate: (a: A) => boolean): [HashSet<B>, HashSet<B>]
298
+ ): [excluded: HashSet<Exclude<A, B>>, satisfying: HashSet<B>]
299
+ <A>(self: HashSet<A>, predicate: Predicate<A>): [excluded: HashSet<A>, satisfying: HashSet<A>]
300
300
  } = HS.partition