effect 3.8.4 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (757) hide show
  1. package/dist/cjs/Array.js +24 -3
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +5 -3
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js.map +1 -1
  6. package/dist/cjs/Boolean.js.map +1 -1
  7. package/dist/cjs/Cause.js.map +1 -1
  8. package/dist/cjs/Channel.js.map +1 -1
  9. package/dist/cjs/ChildExecutorDecision.js.map +1 -1
  10. package/dist/cjs/Chunk.js +3 -0
  11. package/dist/cjs/Chunk.js.map +1 -1
  12. package/dist/cjs/Config.js.map +1 -1
  13. package/dist/cjs/ConfigError.js.map +1 -1
  14. package/dist/cjs/ConfigProvider.js.map +1 -1
  15. package/dist/cjs/ConfigProviderPathPatch.js.map +1 -1
  16. package/dist/cjs/Console.js.map +1 -1
  17. package/dist/cjs/Context.js.map +1 -1
  18. package/dist/cjs/Cron.js +3 -0
  19. package/dist/cjs/Cron.js.map +1 -1
  20. package/dist/cjs/Data.js.map +1 -1
  21. package/dist/cjs/DateTime.js +6 -0
  22. package/dist/cjs/DateTime.js.map +1 -1
  23. package/dist/cjs/Deferred.js.map +1 -1
  24. package/dist/cjs/Differ.js.map +1 -1
  25. package/dist/cjs/Duration.js +3 -0
  26. package/dist/cjs/Duration.js.map +1 -1
  27. package/dist/cjs/Effect.js +122 -35
  28. package/dist/cjs/Effect.js.map +1 -1
  29. package/dist/cjs/Either.js.map +1 -1
  30. package/dist/cjs/Equivalence.js.map +1 -1
  31. package/dist/cjs/ExecutionStrategy.js.map +1 -1
  32. package/dist/cjs/Exit.js.map +1 -1
  33. package/dist/cjs/Fiber.js.map +1 -1
  34. package/dist/cjs/FiberHandle.js +3 -0
  35. package/dist/cjs/FiberHandle.js.map +1 -1
  36. package/dist/cjs/FiberId.js.map +1 -1
  37. package/dist/cjs/FiberMap.js +3 -0
  38. package/dist/cjs/FiberMap.js.map +1 -1
  39. package/dist/cjs/FiberRef.js.map +1 -1
  40. package/dist/cjs/FiberRefs.js.map +1 -1
  41. package/dist/cjs/FiberRefsPatch.js.map +1 -1
  42. package/dist/cjs/FiberSet.js +3 -0
  43. package/dist/cjs/FiberSet.js.map +1 -1
  44. package/dist/cjs/Function.js.map +1 -1
  45. package/dist/cjs/GroupBy.js.map +1 -1
  46. package/dist/cjs/Hash.js.map +1 -1
  47. package/dist/cjs/HashMap.js.map +1 -1
  48. package/dist/cjs/HashSet.js.map +1 -1
  49. package/dist/cjs/Inspectable.js +15 -1
  50. package/dist/cjs/Inspectable.js.map +1 -1
  51. package/dist/cjs/Iterable.js.map +1 -1
  52. package/dist/cjs/KeyedPool.js.map +1 -1
  53. package/dist/cjs/Layer.js.map +1 -1
  54. package/dist/cjs/List.js +6 -0
  55. package/dist/cjs/List.js.map +1 -1
  56. package/dist/cjs/LogLevel.js.map +1 -1
  57. package/dist/cjs/Logger.js.map +1 -1
  58. package/dist/cjs/Mailbox.js.map +1 -1
  59. package/dist/cjs/ManagedRuntime.js +16 -1
  60. package/dist/cjs/ManagedRuntime.js.map +1 -1
  61. package/dist/cjs/MergeDecision.js.map +1 -1
  62. package/dist/cjs/MergeState.js.map +1 -1
  63. package/dist/cjs/MergeStrategy.js.map +1 -1
  64. package/dist/cjs/Metric.js.map +1 -1
  65. package/dist/cjs/MetricHook.js.map +1 -1
  66. package/dist/cjs/MetricKey.js.map +1 -1
  67. package/dist/cjs/MetricPolling.js.map +1 -1
  68. package/dist/cjs/MetricState.js.map +1 -1
  69. package/dist/cjs/Micro.js +6 -0
  70. package/dist/cjs/Micro.js.map +1 -1
  71. package/dist/cjs/MutableHashMap.js +3 -0
  72. package/dist/cjs/MutableHashMap.js.map +1 -1
  73. package/dist/cjs/MutableHashSet.js +3 -0
  74. package/dist/cjs/MutableHashSet.js.map +1 -1
  75. package/dist/cjs/MutableList.js +3 -0
  76. package/dist/cjs/MutableList.js.map +1 -1
  77. package/dist/cjs/MutableQueue.js +3 -0
  78. package/dist/cjs/MutableQueue.js.map +1 -1
  79. package/dist/cjs/MutableRef.js +3 -0
  80. package/dist/cjs/MutableRef.js.map +1 -1
  81. package/dist/cjs/Number.js.map +1 -1
  82. package/dist/cjs/Option.js.map +1 -1
  83. package/dist/cjs/Order.js.map +1 -1
  84. package/dist/cjs/Ordering.js.map +1 -1
  85. package/dist/cjs/Pipeable.js.map +1 -1
  86. package/dist/cjs/Pool.js.map +1 -1
  87. package/dist/cjs/Predicate.js +18 -2
  88. package/dist/cjs/Predicate.js.map +1 -1
  89. package/dist/cjs/PubSub.js.map +1 -1
  90. package/dist/cjs/Queue.js.map +1 -1
  91. package/dist/cjs/RcMap.js.map +1 -1
  92. package/dist/cjs/Readable.js.map +1 -1
  93. package/dist/cjs/Record.js.map +1 -1
  94. package/dist/cjs/RedBlackTree.js.map +1 -1
  95. package/dist/cjs/Ref.js.map +1 -1
  96. package/dist/cjs/RegExp.js +20 -1
  97. package/dist/cjs/RegExp.js.map +1 -1
  98. package/dist/cjs/Request.js.map +1 -1
  99. package/dist/cjs/RequestResolver.js.map +1 -1
  100. package/dist/cjs/Resource.js.map +1 -1
  101. package/dist/cjs/Runtime.js.map +1 -1
  102. package/dist/cjs/RuntimeFlags.js.map +1 -1
  103. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -1
  104. package/dist/cjs/STM.js.map +1 -1
  105. package/dist/cjs/Schedule.js.map +1 -1
  106. package/dist/cjs/ScheduleInterval.js.map +1 -1
  107. package/dist/cjs/ScheduleIntervals.js.map +1 -1
  108. package/dist/cjs/Scheduler.js.map +1 -1
  109. package/dist/cjs/Scope.js.map +1 -1
  110. package/dist/cjs/ScopedRef.js.map +1 -1
  111. package/dist/cjs/Sink.js.map +1 -1
  112. package/dist/cjs/SortedMap.js +3 -0
  113. package/dist/cjs/SortedMap.js.map +1 -1
  114. package/dist/cjs/SortedSet.js +3 -0
  115. package/dist/cjs/SortedSet.js.map +1 -1
  116. package/dist/cjs/Stream.js +17 -3
  117. package/dist/cjs/Stream.js.map +1 -1
  118. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  119. package/dist/cjs/String.js.map +1 -1
  120. package/dist/cjs/Struct.js.map +1 -1
  121. package/dist/cjs/Subscribable.js.map +1 -1
  122. package/dist/cjs/SubscriptionRef.js.map +1 -1
  123. package/dist/cjs/SynchronizedRef.js.map +1 -1
  124. package/dist/cjs/TArray.js.map +1 -1
  125. package/dist/cjs/TDeferred.js.map +1 -1
  126. package/dist/cjs/TMap.js.map +1 -1
  127. package/dist/cjs/TPriorityQueue.js.map +1 -1
  128. package/dist/cjs/TPubSub.js.map +1 -1
  129. package/dist/cjs/TQueue.js.map +1 -1
  130. package/dist/cjs/TReentrantLock.js.map +1 -1
  131. package/dist/cjs/TRef.js.map +1 -1
  132. package/dist/cjs/TSemaphore.js.map +1 -1
  133. package/dist/cjs/TSet.js.map +1 -1
  134. package/dist/cjs/Take.js.map +1 -1
  135. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  136. package/dist/cjs/TestClock.js.map +1 -1
  137. package/dist/cjs/TestServices.js.map +1 -1
  138. package/dist/cjs/Trie.js.map +1 -1
  139. package/dist/cjs/Tuple.js +21 -2
  140. package/dist/cjs/Tuple.js.map +1 -1
  141. package/dist/cjs/Unify.js.map +1 -1
  142. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  143. package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
  144. package/dist/cjs/Utils.js +1 -14
  145. package/dist/cjs/Utils.js.map +1 -1
  146. package/dist/cjs/internal/cause.js +3 -0
  147. package/dist/cjs/internal/cause.js.map +1 -1
  148. package/dist/cjs/internal/context.js +6 -1
  149. package/dist/cjs/internal/context.js.map +1 -1
  150. package/dist/cjs/internal/core-effect.js.map +1 -1
  151. package/dist/cjs/internal/core.js +16 -3
  152. package/dist/cjs/internal/core.js.map +1 -1
  153. package/dist/cjs/internal/effect/circular.js +5 -1
  154. package/dist/cjs/internal/effect/circular.js.map +1 -1
  155. package/dist/cjs/internal/fiberId.js +9 -0
  156. package/dist/cjs/internal/fiberId.js.map +1 -1
  157. package/dist/cjs/internal/hashMap.js +3 -0
  158. package/dist/cjs/internal/hashMap.js.map +1 -1
  159. package/dist/cjs/internal/hashSet.js +3 -0
  160. package/dist/cjs/internal/hashSet.js.map +1 -1
  161. package/dist/cjs/internal/layer.js +33 -19
  162. package/dist/cjs/internal/layer.js.map +1 -1
  163. package/dist/cjs/internal/mailbox.js +3 -0
  164. package/dist/cjs/internal/mailbox.js.map +1 -1
  165. package/dist/cjs/internal/managedRuntime/circular.js +10 -0
  166. package/dist/cjs/internal/managedRuntime/circular.js.map +1 -0
  167. package/dist/cjs/internal/managedRuntime.js +23 -9
  168. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  169. package/dist/cjs/internal/option.js +3 -0
  170. package/dist/cjs/internal/option.js.map +1 -1
  171. package/dist/cjs/internal/pool.js +6 -1
  172. package/dist/cjs/internal/pool.js.map +1 -1
  173. package/dist/cjs/internal/redBlackTree.js +3 -0
  174. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  175. package/dist/cjs/internal/resource.js +15 -5
  176. package/dist/cjs/internal/resource.js.map +1 -1
  177. package/dist/cjs/internal/runtime.js +4 -1
  178. package/dist/cjs/internal/runtime.js.map +1 -1
  179. package/dist/cjs/internal/scopedRef.js +11 -8
  180. package/dist/cjs/internal/scopedRef.js.map +1 -1
  181. package/dist/cjs/internal/stm/core.js +1 -2
  182. package/dist/cjs/internal/stm/core.js.map +1 -1
  183. package/dist/cjs/internal/stream.js +12 -3
  184. package/dist/cjs/internal/stream.js.map +1 -1
  185. package/dist/cjs/internal/trie.js +3 -0
  186. package/dist/cjs/internal/trie.js.map +1 -1
  187. package/dist/cjs/internal/version.js +1 -1
  188. package/dist/dts/Array.d.ts +2735 -2
  189. package/dist/dts/Array.d.ts.map +1 -1
  190. package/dist/dts/BigDecimal.d.ts +558 -1
  191. package/dist/dts/BigDecimal.d.ts.map +1 -1
  192. package/dist/dts/BigInt.d.ts +490 -0
  193. package/dist/dts/BigInt.d.ts.map +1 -1
  194. package/dist/dts/Boolean.d.ts +228 -0
  195. package/dist/dts/Boolean.d.ts.map +1 -1
  196. package/dist/dts/Cause.d.ts +172 -0
  197. package/dist/dts/Cause.d.ts.map +1 -1
  198. package/dist/dts/Channel.d.ts +750 -0
  199. package/dist/dts/Channel.d.ts.map +1 -1
  200. package/dist/dts/ChildExecutorDecision.d.ts +12 -0
  201. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
  202. package/dist/dts/Chunk.d.ts +791 -0
  203. package/dist/dts/Chunk.d.ts.map +1 -1
  204. package/dist/dts/Config.d.ts +174 -0
  205. package/dist/dts/Config.d.ts.map +1 -1
  206. package/dist/dts/ConfigError.d.ts +16 -0
  207. package/dist/dts/ConfigError.d.ts.map +1 -1
  208. package/dist/dts/ConfigProvider.d.ts +84 -0
  209. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  210. package/dist/dts/ConfigProviderPathPatch.d.ts +32 -0
  211. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
  212. package/dist/dts/Console.d.ts +24 -0
  213. package/dist/dts/Console.d.ts.map +1 -1
  214. package/dist/dts/Context.d.ts +234 -3
  215. package/dist/dts/Context.d.ts.map +1 -1
  216. package/dist/dts/Cron.d.ts +12 -0
  217. package/dist/dts/Cron.d.ts.map +1 -1
  218. package/dist/dts/Data.d.ts +165 -0
  219. package/dist/dts/Data.d.ts.map +1 -1
  220. package/dist/dts/DateTime.d.ts +878 -0
  221. package/dist/dts/DateTime.d.ts.map +1 -1
  222. package/dist/dts/Deferred.d.ts +171 -1
  223. package/dist/dts/Deferred.d.ts.map +1 -1
  224. package/dist/dts/Differ.d.ts +78 -0
  225. package/dist/dts/Differ.d.ts.map +1 -1
  226. package/dist/dts/Duration.d.ts +130 -0
  227. package/dist/dts/Duration.d.ts.map +1 -1
  228. package/dist/dts/Effect.d.ts +4350 -13
  229. package/dist/dts/Effect.d.ts.map +1 -1
  230. package/dist/dts/Either.d.ts +620 -0
  231. package/dist/dts/Either.d.ts.map +1 -1
  232. package/dist/dts/Equivalence.d.ts +24 -0
  233. package/dist/dts/Equivalence.d.ts.map +1 -1
  234. package/dist/dts/ExecutionStrategy.d.ts +14 -0
  235. package/dist/dts/ExecutionStrategy.d.ts.map +1 -1
  236. package/dist/dts/Exit.d.ts +252 -0
  237. package/dist/dts/Exit.d.ts.map +1 -1
  238. package/dist/dts/Fiber.d.ts +182 -0
  239. package/dist/dts/Fiber.d.ts.map +1 -1
  240. package/dist/dts/FiberHandle.d.ts +42 -0
  241. package/dist/dts/FiberHandle.d.ts.map +1 -1
  242. package/dist/dts/FiberId.d.ts +24 -0
  243. package/dist/dts/FiberId.d.ts.map +1 -1
  244. package/dist/dts/FiberMap.d.ts +102 -0
  245. package/dist/dts/FiberMap.d.ts.map +1 -1
  246. package/dist/dts/FiberRef.d.ts +80 -0
  247. package/dist/dts/FiberRef.d.ts.map +1 -1
  248. package/dist/dts/FiberRefs.d.ts +84 -0
  249. package/dist/dts/FiberRefs.d.ts.map +1 -1
  250. package/dist/dts/FiberRefsPatch.d.ts +30 -0
  251. package/dist/dts/FiberRefsPatch.d.ts.map +1 -1
  252. package/dist/dts/FiberSet.d.ts +38 -0
  253. package/dist/dts/FiberSet.d.ts.map +1 -1
  254. package/dist/dts/Function.d.ts +144 -28
  255. package/dist/dts/Function.d.ts.map +1 -1
  256. package/dist/dts/GroupBy.d.ts +38 -0
  257. package/dist/dts/GroupBy.d.ts.map +1 -1
  258. package/dist/dts/Hash.d.ts +8 -0
  259. package/dist/dts/Hash.d.ts.map +1 -1
  260. package/dist/dts/HashMap.d.ts +315 -0
  261. package/dist/dts/HashMap.d.ts.map +1 -1
  262. package/dist/dts/HashSet.d.ts +284 -0
  263. package/dist/dts/HashSet.d.ts.map +1 -1
  264. package/dist/dts/Inspectable.d.ts +15 -0
  265. package/dist/dts/Inspectable.d.ts.map +1 -1
  266. package/dist/dts/Iterable.d.ts +454 -0
  267. package/dist/dts/Iterable.d.ts.map +1 -1
  268. package/dist/dts/KeyedPool.d.ts +34 -0
  269. package/dist/dts/KeyedPool.d.ts.map +1 -1
  270. package/dist/dts/Layer.d.ts +460 -5
  271. package/dist/dts/Layer.d.ts.map +1 -1
  272. package/dist/dts/List.d.ts +430 -0
  273. package/dist/dts/List.d.ts.map +1 -1
  274. package/dist/dts/LogLevel.d.ts +46 -0
  275. package/dist/dts/LogLevel.d.ts.map +1 -1
  276. package/dist/dts/Logger.d.ts +194 -0
  277. package/dist/dts/Logger.d.ts.map +1 -1
  278. package/dist/dts/Mailbox.d.ts +16 -0
  279. package/dist/dts/Mailbox.d.ts.map +1 -1
  280. package/dist/dts/ManagedRuntime.d.ts +41 -2
  281. package/dist/dts/ManagedRuntime.d.ts.map +1 -1
  282. package/dist/dts/MergeDecision.d.ts +8 -0
  283. package/dist/dts/MergeDecision.d.ts.map +1 -1
  284. package/dist/dts/MergeState.d.ts +8 -0
  285. package/dist/dts/MergeState.d.ts.map +1 -1
  286. package/dist/dts/MergeStrategy.d.ts +12 -0
  287. package/dist/dts/MergeStrategy.d.ts.map +1 -1
  288. package/dist/dts/Metric.d.ts +410 -0
  289. package/dist/dts/Metric.d.ts.map +1 -1
  290. package/dist/dts/MetricHook.d.ts +24 -0
  291. package/dist/dts/MetricHook.d.ts.map +1 -1
  292. package/dist/dts/MetricKey.d.ts +48 -0
  293. package/dist/dts/MetricKey.d.ts.map +1 -1
  294. package/dist/dts/MetricPolling.d.ts +40 -0
  295. package/dist/dts/MetricPolling.d.ts.map +1 -1
  296. package/dist/dts/MetricState.d.ts +16 -0
  297. package/dist/dts/MetricState.d.ts.map +1 -1
  298. package/dist/dts/Micro.d.ts +1110 -0
  299. package/dist/dts/Micro.d.ts.map +1 -1
  300. package/dist/dts/MutableHashMap.d.ts +50 -0
  301. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  302. package/dist/dts/MutableHashSet.d.ts +24 -0
  303. package/dist/dts/MutableHashSet.d.ts.map +1 -1
  304. package/dist/dts/MutableList.d.ts +36 -0
  305. package/dist/dts/MutableList.d.ts.map +1 -1
  306. package/dist/dts/MutableQueue.d.ts +62 -0
  307. package/dist/dts/MutableQueue.d.ts.map +1 -1
  308. package/dist/dts/MutableRef.d.ts +56 -0
  309. package/dist/dts/MutableRef.d.ts.map +1 -1
  310. package/dist/dts/Number.d.ts +474 -0
  311. package/dist/dts/Number.d.ts.map +1 -1
  312. package/dist/dts/Option.d.ts +1019 -0
  313. package/dist/dts/Option.d.ts.map +1 -1
  314. package/dist/dts/Order.d.ts +24 -0
  315. package/dist/dts/Order.d.ts.map +1 -1
  316. package/dist/dts/Ordering.d.ts +66 -0
  317. package/dist/dts/Ordering.d.ts.map +1 -1
  318. package/dist/dts/Pipeable.d.ts +21 -21
  319. package/dist/dts/Pipeable.d.ts.map +1 -1
  320. package/dist/dts/Pool.d.ts +37 -1
  321. package/dist/dts/Pool.d.ts.map +1 -1
  322. package/dist/dts/Predicate.d.ts +513 -0
  323. package/dist/dts/Predicate.d.ts.map +1 -1
  324. package/dist/dts/PubSub.d.ts +28 -0
  325. package/dist/dts/PubSub.d.ts.map +1 -1
  326. package/dist/dts/Queue.d.ts +106 -2
  327. package/dist/dts/Queue.d.ts.map +1 -1
  328. package/dist/dts/RcMap.d.ts +70 -0
  329. package/dist/dts/RcMap.d.ts.map +1 -1
  330. package/dist/dts/Readable.d.ts +16 -0
  331. package/dist/dts/Readable.d.ts.map +1 -1
  332. package/dist/dts/Record.d.ts +800 -0
  333. package/dist/dts/Record.d.ts.map +1 -1
  334. package/dist/dts/RedBlackTree.d.ts +300 -0
  335. package/dist/dts/RedBlackTree.d.ts.map +1 -1
  336. package/dist/dts/Ref.d.ts +88 -0
  337. package/dist/dts/Ref.d.ts.map +1 -1
  338. package/dist/dts/RegExp.d.ts +12 -2
  339. package/dist/dts/RegExp.d.ts.map +1 -1
  340. package/dist/dts/Request.d.ts +76 -0
  341. package/dist/dts/Request.d.ts.map +1 -1
  342. package/dist/dts/RequestResolver.d.ts +144 -0
  343. package/dist/dts/RequestResolver.d.ts.map +1 -1
  344. package/dist/dts/Resource.d.ts +21 -1
  345. package/dist/dts/Resource.d.ts.map +1 -1
  346. package/dist/dts/Runtime.d.ts +126 -0
  347. package/dist/dts/Runtime.d.ts.map +1 -1
  348. package/dist/dts/RuntimeFlags.d.ts +100 -0
  349. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  350. package/dist/dts/RuntimeFlagsPatch.d.ts +112 -0
  351. package/dist/dts/RuntimeFlagsPatch.d.ts.map +1 -1
  352. package/dist/dts/STM.d.ts +1090 -0
  353. package/dist/dts/STM.d.ts.map +1 -1
  354. package/dist/dts/Schedule.d.ts +704 -0
  355. package/dist/dts/Schedule.d.ts.map +1 -1
  356. package/dist/dts/ScheduleInterval.d.ts +68 -0
  357. package/dist/dts/ScheduleInterval.d.ts.map +1 -1
  358. package/dist/dts/ScheduleIntervals.d.ts +50 -0
  359. package/dist/dts/ScheduleIntervals.d.ts.map +1 -1
  360. package/dist/dts/Scope.d.ts +36 -0
  361. package/dist/dts/Scope.d.ts.map +1 -1
  362. package/dist/dts/ScopedRef.d.ts +43 -1
  363. package/dist/dts/ScopedRef.d.ts.map +1 -1
  364. package/dist/dts/Sink.d.ts +464 -0
  365. package/dist/dts/Sink.d.ts.map +1 -1
  366. package/dist/dts/SortedMap.d.ts +76 -0
  367. package/dist/dts/SortedMap.d.ts.map +1 -1
  368. package/dist/dts/SortedSet.d.ts +142 -0
  369. package/dist/dts/SortedSet.d.ts.map +1 -1
  370. package/dist/dts/Stream.d.ts +4998 -1
  371. package/dist/dts/Stream.d.ts.map +1 -1
  372. package/dist/dts/StreamHaltStrategy.d.ts +12 -0
  373. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -1
  374. package/dist/dts/String.d.ts +200 -0
  375. package/dist/dts/String.d.ts.map +1 -1
  376. package/dist/dts/Struct.d.ts +84 -0
  377. package/dist/dts/Struct.d.ts.map +1 -1
  378. package/dist/dts/Subscribable.d.ts +16 -0
  379. package/dist/dts/Subscribable.d.ts.map +1 -1
  380. package/dist/dts/SubscriptionRef.d.ts +152 -0
  381. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  382. package/dist/dts/SynchronizedRef.d.ts +152 -0
  383. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  384. package/dist/dts/TArray.d.ts +426 -0
  385. package/dist/dts/TArray.d.ts.map +1 -1
  386. package/dist/dts/TDeferred.d.ts +24 -0
  387. package/dist/dts/TDeferred.d.ts.map +1 -1
  388. package/dist/dts/TMap.d.ts +366 -0
  389. package/dist/dts/TMap.d.ts.map +1 -1
  390. package/dist/dts/TPriorityQueue.d.ts +60 -0
  391. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  392. package/dist/dts/TPubSub.d.ts +28 -0
  393. package/dist/dts/TPubSub.d.ts.map +1 -1
  394. package/dist/dts/TQueue.d.ts +108 -0
  395. package/dist/dts/TQueue.d.ts.map +1 -1
  396. package/dist/dts/TReentrantLock.d.ts +36 -0
  397. package/dist/dts/TReentrantLock.d.ts.map +1 -1
  398. package/dist/dts/TRef.d.ts +88 -0
  399. package/dist/dts/TRef.d.ts.map +1 -1
  400. package/dist/dts/TSemaphore.d.ts +40 -0
  401. package/dist/dts/TSemaphore.d.ts.map +1 -1
  402. package/dist/dts/TSet.d.ts +254 -0
  403. package/dist/dts/TSet.d.ts.map +1 -1
  404. package/dist/dts/Take.d.ts +56 -0
  405. package/dist/dts/Take.d.ts.map +1 -1
  406. package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
  407. package/dist/dts/TestClock.d.ts.map +1 -1
  408. package/dist/dts/TestServices.d.ts.map +1 -1
  409. package/dist/dts/Trie.d.ts +906 -0
  410. package/dist/dts/Trie.d.ts.map +1 -1
  411. package/dist/dts/Tuple.d.ts +203 -0
  412. package/dist/dts/Tuple.d.ts.map +1 -1
  413. package/dist/dts/Types.d.ts +39 -0
  414. package/dist/dts/Types.d.ts.map +1 -1
  415. package/dist/dts/Unify.d.ts +26 -13
  416. package/dist/dts/Unify.d.ts.map +1 -1
  417. package/dist/dts/UpstreamPullRequest.d.ts +12 -0
  418. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
  419. package/dist/dts/UpstreamPullStrategy.d.ts +12 -0
  420. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
  421. package/dist/dts/Utils.d.ts.map +1 -1
  422. package/dist/dts/internal/core.d.ts.map +1 -1
  423. package/dist/dts/internal/hashMap.d.ts.map +1 -1
  424. package/dist/dts/internal/layer.d.ts.map +1 -1
  425. package/dist/dts/internal/managedRuntime/circular.d.ts +2 -0
  426. package/dist/dts/internal/managedRuntime/circular.d.ts.map +1 -0
  427. package/dist/dts/internal/stream.d.ts.map +1 -1
  428. package/dist/esm/Array.js +21 -0
  429. package/dist/esm/Array.js.map +1 -1
  430. package/dist/esm/BigDecimal.js +6 -3
  431. package/dist/esm/BigDecimal.js.map +1 -1
  432. package/dist/esm/BigInt.js.map +1 -1
  433. package/dist/esm/Boolean.js.map +1 -1
  434. package/dist/esm/Cause.js.map +1 -1
  435. package/dist/esm/Channel.js.map +1 -1
  436. package/dist/esm/ChildExecutorDecision.js.map +1 -1
  437. package/dist/esm/Chunk.js +4 -1
  438. package/dist/esm/Chunk.js.map +1 -1
  439. package/dist/esm/Config.js.map +1 -1
  440. package/dist/esm/ConfigError.js.map +1 -1
  441. package/dist/esm/ConfigProvider.js.map +1 -1
  442. package/dist/esm/ConfigProviderPathPatch.js.map +1 -1
  443. package/dist/esm/Console.js.map +1 -1
  444. package/dist/esm/Context.js.map +1 -1
  445. package/dist/esm/Cron.js +4 -1
  446. package/dist/esm/Cron.js.map +1 -1
  447. package/dist/esm/Data.js.map +1 -1
  448. package/dist/esm/DateTime.js +6 -0
  449. package/dist/esm/DateTime.js.map +1 -1
  450. package/dist/esm/Deferred.js.map +1 -1
  451. package/dist/esm/Differ.js.map +1 -1
  452. package/dist/esm/Duration.js +4 -1
  453. package/dist/esm/Duration.js.map +1 -1
  454. package/dist/esm/Effect.js +116 -30
  455. package/dist/esm/Effect.js.map +1 -1
  456. package/dist/esm/Either.js.map +1 -1
  457. package/dist/esm/Equivalence.js.map +1 -1
  458. package/dist/esm/ExecutionStrategy.js.map +1 -1
  459. package/dist/esm/Exit.js.map +1 -1
  460. package/dist/esm/Fiber.js.map +1 -1
  461. package/dist/esm/FiberHandle.js +3 -0
  462. package/dist/esm/FiberHandle.js.map +1 -1
  463. package/dist/esm/FiberId.js.map +1 -1
  464. package/dist/esm/FiberMap.js +3 -0
  465. package/dist/esm/FiberMap.js.map +1 -1
  466. package/dist/esm/FiberRef.js.map +1 -1
  467. package/dist/esm/FiberRefs.js.map +1 -1
  468. package/dist/esm/FiberRefsPatch.js.map +1 -1
  469. package/dist/esm/FiberSet.js +3 -0
  470. package/dist/esm/FiberSet.js.map +1 -1
  471. package/dist/esm/Function.js.map +1 -1
  472. package/dist/esm/GroupBy.js.map +1 -1
  473. package/dist/esm/Hash.js.map +1 -1
  474. package/dist/esm/HashMap.js.map +1 -1
  475. package/dist/esm/HashSet.js.map +1 -1
  476. package/dist/esm/Inspectable.js +14 -0
  477. package/dist/esm/Inspectable.js.map +1 -1
  478. package/dist/esm/Iterable.js.map +1 -1
  479. package/dist/esm/KeyedPool.js.map +1 -1
  480. package/dist/esm/Layer.js.map +1 -1
  481. package/dist/esm/List.js +7 -1
  482. package/dist/esm/List.js.map +1 -1
  483. package/dist/esm/LogLevel.js.map +1 -1
  484. package/dist/esm/Logger.js.map +1 -1
  485. package/dist/esm/Mailbox.js.map +1 -1
  486. package/dist/esm/ManagedRuntime.js +15 -0
  487. package/dist/esm/ManagedRuntime.js.map +1 -1
  488. package/dist/esm/MergeDecision.js.map +1 -1
  489. package/dist/esm/MergeState.js.map +1 -1
  490. package/dist/esm/MergeStrategy.js.map +1 -1
  491. package/dist/esm/Metric.js.map +1 -1
  492. package/dist/esm/MetricHook.js.map +1 -1
  493. package/dist/esm/MetricKey.js.map +1 -1
  494. package/dist/esm/MetricPolling.js.map +1 -1
  495. package/dist/esm/MetricState.js.map +1 -1
  496. package/dist/esm/Micro.js +7 -1
  497. package/dist/esm/Micro.js.map +1 -1
  498. package/dist/esm/MutableHashMap.js +4 -1
  499. package/dist/esm/MutableHashMap.js.map +1 -1
  500. package/dist/esm/MutableHashSet.js +4 -1
  501. package/dist/esm/MutableHashSet.js.map +1 -1
  502. package/dist/esm/MutableList.js +4 -1
  503. package/dist/esm/MutableList.js.map +1 -1
  504. package/dist/esm/MutableQueue.js +4 -1
  505. package/dist/esm/MutableQueue.js.map +1 -1
  506. package/dist/esm/MutableRef.js +4 -1
  507. package/dist/esm/MutableRef.js.map +1 -1
  508. package/dist/esm/Number.js.map +1 -1
  509. package/dist/esm/Option.js.map +1 -1
  510. package/dist/esm/Order.js.map +1 -1
  511. package/dist/esm/Ordering.js.map +1 -1
  512. package/dist/esm/Pipeable.js.map +1 -1
  513. package/dist/esm/Pool.js.map +1 -1
  514. package/dist/esm/Predicate.js +15 -0
  515. package/dist/esm/Predicate.js.map +1 -1
  516. package/dist/esm/PubSub.js.map +1 -1
  517. package/dist/esm/Queue.js.map +1 -1
  518. package/dist/esm/RcMap.js.map +1 -1
  519. package/dist/esm/Readable.js.map +1 -1
  520. package/dist/esm/Record.js.map +1 -1
  521. package/dist/esm/RedBlackTree.js.map +1 -1
  522. package/dist/esm/Ref.js.map +1 -1
  523. package/dist/esm/RegExp.js +16 -0
  524. package/dist/esm/RegExp.js.map +1 -1
  525. package/dist/esm/Request.js.map +1 -1
  526. package/dist/esm/RequestResolver.js.map +1 -1
  527. package/dist/esm/Resource.js.map +1 -1
  528. package/dist/esm/Runtime.js.map +1 -1
  529. package/dist/esm/RuntimeFlags.js.map +1 -1
  530. package/dist/esm/RuntimeFlagsPatch.js.map +1 -1
  531. package/dist/esm/STM.js.map +1 -1
  532. package/dist/esm/Schedule.js.map +1 -1
  533. package/dist/esm/ScheduleInterval.js.map +1 -1
  534. package/dist/esm/ScheduleIntervals.js.map +1 -1
  535. package/dist/esm/Scheduler.js.map +1 -1
  536. package/dist/esm/Scope.js.map +1 -1
  537. package/dist/esm/ScopedRef.js.map +1 -1
  538. package/dist/esm/Sink.js.map +1 -1
  539. package/dist/esm/SortedMap.js +4 -1
  540. package/dist/esm/SortedMap.js.map +1 -1
  541. package/dist/esm/SortedSet.js +4 -1
  542. package/dist/esm/SortedSet.js.map +1 -1
  543. package/dist/esm/Stream.js +14 -0
  544. package/dist/esm/Stream.js.map +1 -1
  545. package/dist/esm/StreamHaltStrategy.js.map +1 -1
  546. package/dist/esm/String.js.map +1 -1
  547. package/dist/esm/Struct.js.map +1 -1
  548. package/dist/esm/Subscribable.js.map +1 -1
  549. package/dist/esm/SubscriptionRef.js.map +1 -1
  550. package/dist/esm/SynchronizedRef.js.map +1 -1
  551. package/dist/esm/TArray.js.map +1 -1
  552. package/dist/esm/TDeferred.js.map +1 -1
  553. package/dist/esm/TMap.js.map +1 -1
  554. package/dist/esm/TPriorityQueue.js.map +1 -1
  555. package/dist/esm/TPubSub.js.map +1 -1
  556. package/dist/esm/TQueue.js.map +1 -1
  557. package/dist/esm/TReentrantLock.js.map +1 -1
  558. package/dist/esm/TRef.js.map +1 -1
  559. package/dist/esm/TSemaphore.js.map +1 -1
  560. package/dist/esm/TSet.js.map +1 -1
  561. package/dist/esm/Take.js.map +1 -1
  562. package/dist/esm/TestAnnotationMap.js.map +1 -1
  563. package/dist/esm/TestClock.js.map +1 -1
  564. package/dist/esm/TestServices.js.map +1 -1
  565. package/dist/esm/Trie.js.map +1 -1
  566. package/dist/esm/Tuple.js +19 -0
  567. package/dist/esm/Tuple.js.map +1 -1
  568. package/dist/esm/Unify.js.map +1 -1
  569. package/dist/esm/UpstreamPullRequest.js.map +1 -1
  570. package/dist/esm/UpstreamPullStrategy.js.map +1 -1
  571. package/dist/esm/Utils.js +1 -14
  572. package/dist/esm/Utils.js.map +1 -1
  573. package/dist/esm/internal/cause.js +4 -1
  574. package/dist/esm/internal/cause.js.map +1 -1
  575. package/dist/esm/internal/context.js +7 -2
  576. package/dist/esm/internal/context.js.map +1 -1
  577. package/dist/esm/internal/core-effect.js.map +1 -1
  578. package/dist/esm/internal/core.js +14 -2
  579. package/dist/esm/internal/core.js.map +1 -1
  580. package/dist/esm/internal/effect/circular.js +5 -1
  581. package/dist/esm/internal/effect/circular.js.map +1 -1
  582. package/dist/esm/internal/fiberId.js +10 -1
  583. package/dist/esm/internal/fiberId.js.map +1 -1
  584. package/dist/esm/internal/hashMap.js +4 -1
  585. package/dist/esm/internal/hashMap.js.map +1 -1
  586. package/dist/esm/internal/hashSet.js +4 -1
  587. package/dist/esm/internal/hashSet.js.map +1 -1
  588. package/dist/esm/internal/layer.js +32 -18
  589. package/dist/esm/internal/layer.js.map +1 -1
  590. package/dist/esm/internal/mailbox.js +3 -0
  591. package/dist/esm/internal/mailbox.js.map +1 -1
  592. package/dist/esm/internal/managedRuntime/circular.js +4 -0
  593. package/dist/esm/internal/managedRuntime/circular.js.map +1 -0
  594. package/dist/esm/internal/managedRuntime.js +21 -8
  595. package/dist/esm/internal/managedRuntime.js.map +1 -1
  596. package/dist/esm/internal/option.js +4 -1
  597. package/dist/esm/internal/option.js.map +1 -1
  598. package/dist/esm/internal/pool.js +6 -1
  599. package/dist/esm/internal/pool.js.map +1 -1
  600. package/dist/esm/internal/redBlackTree.js +4 -1
  601. package/dist/esm/internal/redBlackTree.js.map +1 -1
  602. package/dist/esm/internal/resource.js +15 -5
  603. package/dist/esm/internal/resource.js.map +1 -1
  604. package/dist/esm/internal/runtime.js +4 -1
  605. package/dist/esm/internal/runtime.js.map +1 -1
  606. package/dist/esm/internal/scopedRef.js +11 -8
  607. package/dist/esm/internal/scopedRef.js.map +1 -1
  608. package/dist/esm/internal/stm/core.js +1 -2
  609. package/dist/esm/internal/stm/core.js.map +1 -1
  610. package/dist/esm/internal/stream.js +9 -0
  611. package/dist/esm/internal/stream.js.map +1 -1
  612. package/dist/esm/internal/trie.js +4 -1
  613. package/dist/esm/internal/trie.js.map +1 -1
  614. package/dist/esm/internal/version.js +1 -1
  615. package/package.json +1 -1
  616. package/src/Array.ts +2791 -40
  617. package/src/BigDecimal.ts +589 -19
  618. package/src/BigInt.ts +516 -16
  619. package/src/Boolean.ts +241 -8
  620. package/src/Cause.ts +177 -1
  621. package/src/Channel.ts +766 -49
  622. package/src/ChildExecutorDecision.ts +12 -0
  623. package/src/Chunk.ts +822 -5
  624. package/src/Config.ts +187 -8
  625. package/src/ConfigError.ts +16 -0
  626. package/src/ConfigProvider.ts +89 -1
  627. package/src/ConfigProviderPathPatch.ts +32 -0
  628. package/src/Console.ts +37 -8
  629. package/src/Context.ts +234 -3
  630. package/src/Cron.ts +16 -1
  631. package/src/Data.ts +165 -0
  632. package/src/DateTime.ts +1012 -50
  633. package/src/Deferred.ts +171 -1
  634. package/src/Differ.ts +89 -27
  635. package/src/Duration.ts +160 -17
  636. package/src/Effect.ts +4717 -164
  637. package/src/Either.ts +650 -34
  638. package/src/Equivalence.ts +24 -0
  639. package/src/ExecutionStrategy.ts +29 -10
  640. package/src/Exit.ts +252 -0
  641. package/src/Fiber.ts +182 -0
  642. package/src/FiberHandle.ts +45 -0
  643. package/src/FiberId.ts +24 -0
  644. package/src/FiberMap.ts +147 -21
  645. package/src/FiberRef.ts +80 -0
  646. package/src/FiberRefs.ts +84 -0
  647. package/src/FiberRefsPatch.ts +35 -1
  648. package/src/FiberSet.ts +41 -0
  649. package/src/Function.ts +416 -31
  650. package/src/GroupBy.ts +38 -0
  651. package/src/Hash.ts +8 -0
  652. package/src/HashMap.ts +316 -0
  653. package/src/HashSet.ts +284 -0
  654. package/src/Inspectable.ts +22 -0
  655. package/src/Iterable.ts +456 -6
  656. package/src/KeyedPool.ts +34 -0
  657. package/src/Layer.ts +475 -38
  658. package/src/List.ts +483 -4
  659. package/src/LogLevel.ts +46 -0
  660. package/src/Logger.ts +195 -4
  661. package/src/Mailbox.ts +16 -0
  662. package/src/ManagedRuntime.ts +46 -2
  663. package/src/MergeDecision.ts +8 -0
  664. package/src/MergeState.ts +8 -0
  665. package/src/MergeStrategy.ts +25 -8
  666. package/src/Metric.ts +426 -15
  667. package/src/MetricHook.ts +24 -0
  668. package/src/MetricKey.ts +62 -8
  669. package/src/MetricPolling.ts +42 -6
  670. package/src/MetricState.ts +16 -0
  671. package/src/Micro.ts +1223 -61
  672. package/src/MutableHashMap.ts +109 -2
  673. package/src/MutableHashSet.ts +28 -1
  674. package/src/MutableList.ts +40 -1
  675. package/src/MutableQueue.ts +66 -1
  676. package/src/MutableRef.ts +60 -1
  677. package/src/Number.ts +500 -16
  678. package/src/Option.ts +1042 -16
  679. package/src/Order.ts +24 -0
  680. package/src/Ordering.ts +66 -0
  681. package/src/Pipeable.ts +224 -21
  682. package/src/Pool.ts +42 -1
  683. package/src/Predicate.ts +514 -0
  684. package/src/PubSub.ts +28 -0
  685. package/src/Queue.ts +106 -2
  686. package/src/RcMap.ts +70 -0
  687. package/src/Readable.ts +18 -7
  688. package/src/Record.ts +814 -40
  689. package/src/RedBlackTree.ts +305 -1
  690. package/src/Ref.ts +88 -0
  691. package/src/RegExp.ts +17 -0
  692. package/src/Request.ts +76 -0
  693. package/src/RequestResolver.ts +145 -4
  694. package/src/Resource.ts +22 -1
  695. package/src/Runtime.ts +134 -2
  696. package/src/RuntimeFlags.ts +100 -0
  697. package/src/RuntimeFlagsPatch.ts +112 -0
  698. package/src/STM.ts +1107 -11
  699. package/src/Schedule.ts +704 -0
  700. package/src/ScheduleInterval.ts +68 -0
  701. package/src/ScheduleIntervals.ts +50 -0
  702. package/src/Scheduler.ts +2 -0
  703. package/src/Scope.ts +36 -0
  704. package/src/ScopedRef.ts +44 -1
  705. package/src/Sink.ts +464 -0
  706. package/src/SortedMap.ts +80 -1
  707. package/src/SortedSet.ts +147 -4
  708. package/src/Stream.ts +5041 -54
  709. package/src/StreamHaltStrategy.ts +29 -12
  710. package/src/String.ts +200 -0
  711. package/src/Struct.ts +86 -7
  712. package/src/Subscribable.ts +16 -0
  713. package/src/SubscriptionRef.ts +159 -11
  714. package/src/SynchronizedRef.ts +169 -8
  715. package/src/TArray.ts +431 -1
  716. package/src/TDeferred.ts +24 -0
  717. package/src/TMap.ts +381 -12
  718. package/src/TPriorityQueue.ts +60 -0
  719. package/src/TPubSub.ts +28 -0
  720. package/src/TQueue.ts +108 -0
  721. package/src/TReentrantLock.ts +36 -0
  722. package/src/TRef.ts +88 -0
  723. package/src/TSemaphore.ts +40 -0
  724. package/src/TSet.ts +280 -12
  725. package/src/Take.ts +56 -0
  726. package/src/TestAnnotationMap.ts +45 -1
  727. package/src/TestClock.ts +6 -0
  728. package/src/TestServices.ts +66 -0
  729. package/src/Trie.ts +906 -0
  730. package/src/Tuple.ts +223 -8
  731. package/src/Types.ts +41 -0
  732. package/src/Unify.ts +28 -17
  733. package/src/UpstreamPullRequest.ts +12 -0
  734. package/src/UpstreamPullStrategy.ts +12 -0
  735. package/src/Utils.ts +1 -15
  736. package/src/internal/cause.ts +4 -1
  737. package/src/internal/context.ts +7 -2
  738. package/src/internal/core-effect.ts +7 -7
  739. package/src/internal/core.ts +14 -2
  740. package/src/internal/effect/circular.ts +8 -2
  741. package/src/internal/fiberId.ts +10 -1
  742. package/src/internal/hashMap.ts +4 -1
  743. package/src/internal/hashSet.ts +4 -1
  744. package/src/internal/layer.ts +105 -38
  745. package/src/internal/mailbox.ts +3 -0
  746. package/src/internal/managedRuntime/circular.ts +6 -0
  747. package/src/internal/managedRuntime.ts +36 -22
  748. package/src/internal/option.ts +4 -1
  749. package/src/internal/pool.ts +7 -1
  750. package/src/internal/redBlackTree.ts +4 -1
  751. package/src/internal/resource.ts +16 -5
  752. package/src/internal/runtime.ts +4 -1
  753. package/src/internal/scopedRef.ts +12 -8
  754. package/src/internal/stm/core.ts +2 -3
  755. package/src/internal/stream.ts +27 -0
  756. package/src/internal/trie.ts +4 -1
  757. package/src/internal/version.ts +1 -1
package/src/Micro.ts CHANGED
@@ -13,7 +13,7 @@ import { constTrue, constVoid, dual, identity, type LazyArg } from "./Function.j
13
13
  import { globalValue } from "./GlobalValue.js"
14
14
  import type { TypeLambda } from "./HKT.js"
15
15
  import type { Inspectable } from "./Inspectable.js"
16
- import { NodeInspectSymbol, toStringUnknown } from "./Inspectable.js"
16
+ import { DenoInspectSymbol, NodeInspectSymbol, toStringUnknown } from "./Inspectable.js"
17
17
  import * as doNotation from "./internal/doNotation.js"
18
18
  import { StructuralPrototype } from "./internal/effectable.js"
19
19
  import { SingleShotGen } from "./internal/singleShotGen.js"
@@ -323,6 +323,9 @@ abstract class MicroCauseImpl<Tag extends string, E> extends globalThis.Error im
323
323
  toString() {
324
324
  return this.stack
325
325
  }
326
+ [DenoInspectSymbol]() {
327
+ return this.stack
328
+ }
326
329
  [NodeInspectSymbol]() {
327
330
  return this.stack
328
331
  }
@@ -403,7 +406,17 @@ export const causeSquash = <E>(self: MicroCause<E>): unknown =>
403
406
  * @category MicroCause
404
407
  */
405
408
  export const causeWithTrace: {
409
+ /**
410
+ * @since 3.4.6
411
+ * @experimental
412
+ * @category MicroCause
413
+ */
406
414
  (trace: string): <E>(self: MicroCause<E>) => MicroCause<E>
415
+ /**
416
+ * @since 3.4.6
417
+ * @experimental
418
+ * @category MicroCause
419
+ */
407
420
  <E>(self: MicroCause<E>, trace: string): MicroCause<E>
408
421
  } = dual(2, <E>(self: MicroCause<E>, trace: string): MicroCause<E> => {
409
422
  const traces = [...self.traces, trace]
@@ -606,7 +619,17 @@ export const envUnsafeMakeEmpty = (): Env<never> => {
606
619
  * @category environment
607
620
  */
608
621
  export const envGet: {
622
+ /**
623
+ * @since 3.4.0
624
+ * @experimental
625
+ * @category environment
626
+ */
609
627
  <A>(ref: EnvRef<A>): <R>(self: Env<R>) => A
628
+ /**
629
+ * @since 3.4.0
630
+ * @experimental
631
+ * @category environment
632
+ */
610
633
  <A, R>(self: Env<R>, ref: EnvRef<A>): A
611
634
  } = dual(2, <R, A>(self: Env<R>, ref: EnvRef<A>): A => ref.key in self.refs ? (self.refs[ref.key] as A) : ref.initial)
612
635
 
@@ -616,7 +639,17 @@ export const envGet: {
616
639
  * @category environment
617
640
  */
618
641
  export const envSet: {
642
+ /**
643
+ * @since 3.4.0
644
+ * @experimental
645
+ * @category environment
646
+ */
619
647
  <A>(ref: EnvRef<A>, value: A): <R>(self: Env<R>) => Env<R>
648
+ /**
649
+ * @since 3.4.0
650
+ * @experimental
651
+ * @category environment
652
+ */
620
653
  <A, R>(self: Env<R>, ref: EnvRef<A>, value: A): Env<R>
621
654
  } = dual(3, <R, A>(self: Env<R>, ref: EnvRef<A>, value: A): Env<R> => {
622
655
  const refs = Object.assign(Object.create(null), self.refs)
@@ -630,7 +663,17 @@ export const envSet: {
630
663
  * @category environment
631
664
  */
632
665
  export const envMutate: {
666
+ /**
667
+ * @since 3.4.0
668
+ * @experimental
669
+ * @category environment
670
+ */
633
671
  (f: (map: Record<string, unknown>) => void): <R>(self: Env<R>) => Env<R>
672
+ /**
673
+ * @since 3.4.0
674
+ * @experimental
675
+ * @category environment
676
+ */
634
677
  <R>(self: Env<R>, f: (map: Record<string, unknown>) => void): Env<R>
635
678
  } = dual(
636
679
  2,
@@ -684,7 +727,21 @@ export const getEnvRef = <A>(envRef: EnvRef<A>): Micro<A> =>
684
727
  * @category environment
685
728
  */
686
729
  export const locally: {
730
+ /**
731
+ * Set the value of the given `EnvRef` for the duration of the effect.
732
+ *
733
+ * @since 3.4.0
734
+ * @experimental
735
+ * @category environment
736
+ */
687
737
  <A>(fiberRef: EnvRef<A>, value: A): <XA, E, R>(self: Micro<XA, E, R>) => Micro<XA, E, R>
738
+ /**
739
+ * Set the value of the given `EnvRef` for the duration of the effect.
740
+ *
741
+ * @since 3.4.0
742
+ * @experimental
743
+ * @category environment
744
+ */
688
745
  <XA, E, R, A>(self: Micro<XA, E, R>, fiberRef: EnvRef<A>, value: A): Micro<XA, E, R>
689
746
  } = dual(
690
747
  3,
@@ -709,7 +766,21 @@ export const context = <R>(): Micro<Context.Context<R>> => getEnvRef(currentCont
709
766
  * @category environment
710
767
  */
711
768
  export const provideContext: {
769
+ /**
770
+ * Merge the given `Context` with the current context.
771
+ *
772
+ * @since 3.4.0
773
+ * @experimental
774
+ * @category environment
775
+ */
712
776
  <XR>(context: Context.Context<XR>): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E, Exclude<R, XR>>
777
+ /**
778
+ * Merge the given `Context` with the current context.
779
+ *
780
+ * @since 3.4.0
781
+ * @experimental
782
+ * @category environment
783
+ */
713
784
  <A, E, R, XR>(self: Micro<A, E, R>, context: Context.Context<XR>): Micro<A, E, Exclude<R, XR>>
714
785
  } = dual(
715
786
  2,
@@ -729,7 +800,21 @@ export const provideContext: {
729
800
  * @category environment
730
801
  */
731
802
  export const provideService: {
803
+ /**
804
+ * Add the provided service to the current context.
805
+ *
806
+ * @since 3.4.0
807
+ * @experimental
808
+ * @category environment
809
+ */
732
810
  <I, S>(tag: Context.Tag<I, S>, service: S): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E, Exclude<R, I>>
811
+ /**
812
+ * Add the provided service to the current context.
813
+ *
814
+ * @since 3.4.0
815
+ * @experimental
816
+ * @category environment
817
+ */
733
818
  <A, E, R, I, S>(self: Micro<A, E, R>, tag: Context.Tag<I, S>, service: S): Micro<A, E, Exclude<R, I>>
734
819
  } = dual(
735
820
  3,
@@ -750,10 +835,26 @@ export const provideService: {
750
835
  * @category environment
751
836
  */
752
837
  export const provideServiceEffect: {
838
+ /**
839
+ * Create a service using the provided `Micro` effect, and add it to the
840
+ * current context.
841
+ *
842
+ * @since 3.4.6
843
+ * @experimental
844
+ * @category environment
845
+ */
753
846
  <I, S, E2, R2>(
754
847
  tag: Context.Tag<I, S>,
755
848
  acquire: Micro<S, E2, R2>
756
849
  ): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E | E2, Exclude<R, I> | R2>
850
+ /**
851
+ * Create a service using the provided `Micro` effect, and add it to the
852
+ * current context.
853
+ *
854
+ * @since 3.4.6
855
+ * @experimental
856
+ * @category environment
857
+ */
757
858
  <A, E, R, I, S, E2, R2>(
758
859
  self: Micro<A, E, R>,
759
860
  tag: Context.Tag<I, S>,
@@ -995,7 +1096,39 @@ export const currentScheduler: EnvRef<MicroScheduler> = envRefMake(
995
1096
  * )
996
1097
  */
997
1098
  export const withConcurrency: {
1099
+ /**
1100
+ * If you have a `Micro` that uses `concurrency: "inherit"`, you can use this
1101
+ * api to control the concurrency of that `Micro` when it is run.
1102
+ *
1103
+ * @since 3.4.0
1104
+ * @experimental
1105
+ * @category environment refs
1106
+ * @example
1107
+ * import * as Micro from "effect/Micro"
1108
+ *
1109
+ * Micro.forEach([1, 2, 3], (n) => Micro.succeed(n), {
1110
+ * concurrency: "inherit"
1111
+ * }).pipe(
1112
+ * Micro.withConcurrency(2) // use a concurrency of 2
1113
+ * )
1114
+ */
998
1115
  (concurrency: "unbounded" | number): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E, R>
1116
+ /**
1117
+ * If you have a `Micro` that uses `concurrency: "inherit"`, you can use this
1118
+ * api to control the concurrency of that `Micro` when it is run.
1119
+ *
1120
+ * @since 3.4.0
1121
+ * @experimental
1122
+ * @category environment refs
1123
+ * @example
1124
+ * import * as Micro from "effect/Micro"
1125
+ *
1126
+ * Micro.forEach([1, 2, 3], (n) => Micro.succeed(n), {
1127
+ * concurrency: "inherit"
1128
+ * }).pipe(
1129
+ * Micro.withConcurrency(2) // use a concurrency of 2
1130
+ * )
1131
+ */
999
1132
  <A, E, R>(self: Micro<A, E, R>, concurrency: "unbounded" | number): Micro<A, E, R>
1000
1133
  } = dual(
1001
1134
  2,
@@ -1482,7 +1615,23 @@ export const flatten = <A, E, R, E2, R2>(self: Micro<Micro<A, E, R>, E2, R2>): M
1482
1615
  * @category mapping & sequencing
1483
1616
  */
1484
1617
  export const map: {
1618
+ /**
1619
+ * Transforms the success value of the `Micro` effect with the specified
1620
+ * function.
1621
+ *
1622
+ * @since 3.4.0
1623
+ * @experimental
1624
+ * @category mapping & sequencing
1625
+ */
1485
1626
  <A, B>(f: (a: A) => B): <E, R>(self: Micro<A, E, R>) => Micro<B, E, R>
1627
+ /**
1628
+ * Transforms the success value of the `Micro` effect with the specified
1629
+ * function.
1630
+ *
1631
+ * @since 3.4.0
1632
+ * @experimental
1633
+ * @category mapping & sequencing
1634
+ */
1486
1635
  <A, E, R, B>(self: Micro<A, E, R>, f: (a: A) => B): Micro<B, E, R>
1487
1636
  } = dual(2, <A, E, R, B>(self: Micro<A, E, R>, f: (a: A) => B): Micro<B, E, R> =>
1488
1637
  make(function(env, onExit) {
@@ -1500,7 +1649,23 @@ export const map: {
1500
1649
  * @category mapping & sequencing
1501
1650
  */
1502
1651
  export const as: {
1652
+ /**
1653
+ * Create a `Micro` effect that will replace the success value of the given
1654
+ * effect.
1655
+ *
1656
+ * @since 3.4.0
1657
+ * @experimental
1658
+ * @category mapping & sequencing
1659
+ */
1503
1660
  <A, B>(value: B): <E, R>(self: Micro<A, E, R>) => Micro<B, E, R>
1661
+ /**
1662
+ * Create a `Micro` effect that will replace the success value of the given
1663
+ * effect.
1664
+ *
1665
+ * @since 3.4.0
1666
+ * @experimental
1667
+ * @category mapping & sequencing
1668
+ */
1504
1669
  <A, E, R, B>(self: Micro<A, E, R>, value: B): Micro<B, E, R>
1505
1670
  } = dual(2, <A, E, R, B>(self: Micro<A, E, R>, value: B): Micro<B, E, R> => map(self, (_) => value))
1506
1671
 
@@ -1522,7 +1687,23 @@ export const asSome = <A, E, R>(self: Micro<A, E, R>): Micro<Option.Option<A>, E
1522
1687
  * @category mapping & sequencing
1523
1688
  */
1524
1689
  export const flatMap: {
1690
+ /**
1691
+ * Map the success value of this `Micro` effect to another `Micro` effect, then
1692
+ * flatten the result.
1693
+ *
1694
+ * @since 3.4.0
1695
+ * @experimental
1696
+ * @category mapping & sequencing
1697
+ */
1525
1698
  <A, B, E2, R2>(f: (a: A) => Micro<B, E2, R2>): <E, R>(self: Micro<A, E, R>) => Micro<B, E | E2, R | R2>
1699
+ /**
1700
+ * Map the success value of this `Micro` effect to another `Micro` effect, then
1701
+ * flatten the result.
1702
+ *
1703
+ * @since 3.4.0
1704
+ * @experimental
1705
+ * @category mapping & sequencing
1706
+ */
1526
1707
  <A, E, R, B, E2, R2>(self: Micro<A, E, R>, f: (a: A) => Micro<B, E2, R2>): Micro<B, E | E2, R | R2>
1527
1708
  } = dual(
1528
1709
  2,
@@ -1562,23 +1743,63 @@ export const flip = <A, E, R>(self: Micro<A, E, R>): Micro<E, A, R> =>
1562
1743
  * @category mapping & sequencing
1563
1744
  */
1564
1745
  export const andThen: {
1565
- <A, X>(
1566
- f: (a: A) => X
1567
- ): <E, R>(
1746
+ /**
1747
+ * A more flexible version of `flatMap`, that combines `map` and `flatMap` into
1748
+ * a single api.
1749
+ *
1750
+ * It also allows you to pass in a `Micro` effect directly, which will be
1751
+ * executed after the current effect.
1752
+ *
1753
+ * @since 3.4.0
1754
+ * @experimental
1755
+ * @category mapping & sequencing
1756
+ */
1757
+ <A, X>(f: (a: A) => X): <E, R>(
1568
1758
  self: Micro<A, E, R>
1569
1759
  ) => [X] extends [Micro<infer A1, infer E1, infer R1>] ? Micro<A1, E | E1, R | R1>
1570
1760
  : Micro<X, E, R>
1571
- <X>(
1572
- f: NotFunction<X>
1573
- ): <A, E, R>(
1761
+ /**
1762
+ * A more flexible version of `flatMap`, that combines `map` and `flatMap` into
1763
+ * a single api.
1764
+ *
1765
+ * It also allows you to pass in a `Micro` effect directly, which will be
1766
+ * executed after the current effect.
1767
+ *
1768
+ * @since 3.4.0
1769
+ * @experimental
1770
+ * @category mapping & sequencing
1771
+ */
1772
+ <X>(f: NotFunction<X>): <A, E, R>(
1574
1773
  self: Micro<A, E, R>
1575
1774
  ) => [X] extends [Micro<infer A1, infer E1, infer R1>] ? Micro<A1, E | E1, R | R1>
1576
1775
  : Micro<X, E, R>
1776
+ /**
1777
+ * A more flexible version of `flatMap`, that combines `map` and `flatMap` into
1778
+ * a single api.
1779
+ *
1780
+ * It also allows you to pass in a `Micro` effect directly, which will be
1781
+ * executed after the current effect.
1782
+ *
1783
+ * @since 3.4.0
1784
+ * @experimental
1785
+ * @category mapping & sequencing
1786
+ */
1577
1787
  <A, E, R, X>(
1578
1788
  self: Micro<A, E, R>,
1579
1789
  f: (a: A) => X
1580
1790
  ): [X] extends [Micro<infer A1, infer E1, infer R1>] ? Micro<A1, E | E1, R | R1>
1581
1791
  : Micro<X, E, R>
1792
+ /**
1793
+ * A more flexible version of `flatMap`, that combines `map` and `flatMap` into
1794
+ * a single api.
1795
+ *
1796
+ * It also allows you to pass in a `Micro` effect directly, which will be
1797
+ * executed after the current effect.
1798
+ *
1799
+ * @since 3.4.0
1800
+ * @experimental
1801
+ * @category mapping & sequencing
1802
+ */
1582
1803
  <A, E, R, X>(
1583
1804
  self: Micro<A, E, R>,
1584
1805
  f: NotFunction<X>
@@ -1614,23 +1835,55 @@ export const andThen: {
1614
1835
  * @category mapping & sequencing
1615
1836
  */
1616
1837
  export const tap: {
1617
- <A, X>(
1618
- f: (a: NoInfer<A>) => X
1619
- ): <E, R>(
1838
+ /**
1839
+ * Execute a side effect from the success value of the `Micro` effect.
1840
+ *
1841
+ * It is similar to the `andThen` api, but the success value is ignored.
1842
+ *
1843
+ * @since 3.4.0
1844
+ * @experimental
1845
+ * @category mapping & sequencing
1846
+ */
1847
+ <A, X>(f: (a: NoInfer<A>) => X): <E, R>(
1620
1848
  self: Micro<A, E, R>
1621
1849
  ) => [X] extends [Micro<infer _A1, infer E1, infer R1>] ? Micro<A, E | E1, R | R1>
1622
1850
  : Micro<A, E, R>
1623
- <X>(
1624
- f: NotFunction<X>
1625
- ): <A, E, R>(
1851
+ /**
1852
+ * Execute a side effect from the success value of the `Micro` effect.
1853
+ *
1854
+ * It is similar to the `andThen` api, but the success value is ignored.
1855
+ *
1856
+ * @since 3.4.0
1857
+ * @experimental
1858
+ * @category mapping & sequencing
1859
+ */
1860
+ <X>(f: NotFunction<X>): <A, E, R>(
1626
1861
  self: Micro<A, E, R>
1627
1862
  ) => [X] extends [Micro<infer _A1, infer E1, infer R1>] ? Micro<A, E | E1, R | R1>
1628
1863
  : Micro<A, E, R>
1864
+ /**
1865
+ * Execute a side effect from the success value of the `Micro` effect.
1866
+ *
1867
+ * It is similar to the `andThen` api, but the success value is ignored.
1868
+ *
1869
+ * @since 3.4.0
1870
+ * @experimental
1871
+ * @category mapping & sequencing
1872
+ */
1629
1873
  <A, E, R, X>(
1630
1874
  self: Micro<A, E, R>,
1631
1875
  f: (a: NoInfer<A>) => X
1632
1876
  ): [X] extends [Micro<infer _A1, infer E1, infer R1>] ? Micro<A, E | E1, R | R1>
1633
1877
  : Micro<A, E, R>
1878
+ /**
1879
+ * Execute a side effect from the success value of the `Micro` effect.
1880
+ *
1881
+ * It is similar to the `andThen` api, but the success value is ignored.
1882
+ *
1883
+ * @since 3.4.0
1884
+ * @experimental
1885
+ * @category mapping & sequencing
1886
+ */
1634
1887
  <A, E, R, X>(
1635
1888
  self: Micro<A, E, R>,
1636
1889
  f: NotFunction<X>
@@ -1797,7 +2050,23 @@ export const raceAllFirst = <Eff extends Micro<any, any, any>>(
1797
2050
  * @category sequencing
1798
2051
  */
1799
2052
  export const race: {
2053
+ /**
2054
+ * Returns an effect that races two effects, yielding the value of the first
2055
+ * effect to succeed. Losers of the race will be interrupted immediately
2056
+ *
2057
+ * @since 3.4.0
2058
+ * @experimental
2059
+ * @category sequencing
2060
+ */
1800
2061
  <A2, E2, R2>(that: Micro<A2, E2, R2>): <A, E, R>(self: Micro<A, E, R>) => Micro<A | A2, E | E2, R | R2>
2062
+ /**
2063
+ * Returns an effect that races two effects, yielding the value of the first
2064
+ * effect to succeed. Losers of the race will be interrupted immediately
2065
+ *
2066
+ * @since 3.4.0
2067
+ * @experimental
2068
+ * @category sequencing
2069
+ */
1801
2070
  <A, E, R, A2, E2, R2>(self: Micro<A, E, R>, that: Micro<A2, E2, R2>): Micro<A | A2, E | E2, R | R2>
1802
2071
  } = dual(
1803
2072
  2,
@@ -1814,7 +2083,23 @@ export const race: {
1814
2083
  * @category sequencing
1815
2084
  */
1816
2085
  export const raceFirst: {
2086
+ /**
2087
+ * Returns an effect that races two effects, yielding the value of the first
2088
+ * effect to succeed *or* fail. Losers of the race will be interrupted immediately
2089
+ *
2090
+ * @since 3.4.0
2091
+ * @experimental
2092
+ * @category sequencing
2093
+ */
1817
2094
  <A2, E2, R2>(that: Micro<A2, E2, R2>): <A, E, R>(self: Micro<A, E, R>) => Micro<A | A2, E | E2, R | R2>
2095
+ /**
2096
+ * Returns an effect that races two effects, yielding the value of the first
2097
+ * effect to succeed *or* fail. Losers of the race will be interrupted immediately
2098
+ *
2099
+ * @since 3.4.0
2100
+ * @experimental
2101
+ * @category sequencing
2102
+ */
1818
2103
  <A, E, R, A2, E2, R2>(self: Micro<A, E, R>, that: Micro<A2, E2, R2>): Micro<A | A2, E | E2, R | R2>
1819
2104
  } = dual(
1820
2105
  2,
@@ -1835,12 +2120,36 @@ export const raceFirst: {
1835
2120
  * @category zipping
1836
2121
  */
1837
2122
  export const zip: {
2123
+ // ----------------------------------------------------------------------------
2124
+ // zipping
2125
+ // ----------------------------------------------------------------------------
2126
+
2127
+ /**
2128
+ * Combine two `Micro` effects into a single effect that produces a tuple of
2129
+ * their results.
2130
+ *
2131
+ * @since 3.4.0
2132
+ * @experimental
2133
+ * @category zipping
2134
+ */
1838
2135
  <A2, E2, R2>(
1839
2136
  that: Micro<A2, E2, R2>,
1840
2137
  options?:
1841
2138
  | { readonly concurrent?: boolean | undefined }
1842
2139
  | undefined
1843
2140
  ): <A, E, R>(self: Micro<A, E, R>) => Micro<[A, A2], E2 | E, R2 | R>
2141
+ // ----------------------------------------------------------------------------
2142
+ // zipping
2143
+ // ----------------------------------------------------------------------------
2144
+
2145
+ /**
2146
+ * Combine two `Micro` effects into a single effect that produces a tuple of
2147
+ * their results.
2148
+ *
2149
+ * @since 3.4.0
2150
+ * @experimental
2151
+ * @category zipping
2152
+ */
1844
2153
  <A, E, R, A2, E2, R2>(
1845
2154
  self: Micro<A, E, R>,
1846
2155
  that: Micro<A2, E2, R2>,
@@ -1862,11 +2171,29 @@ export const zip: {
1862
2171
  * @category zipping
1863
2172
  */
1864
2173
  export const zipWith: {
2174
+ /**
2175
+ * The `Micro.zipWith` function combines two `Micro` effects and allows you to
2176
+ * apply a function to the results of the combined effects, transforming them
2177
+ * into a single value.
2178
+ *
2179
+ * @since 3.4.3
2180
+ * @experimental
2181
+ * @category zipping
2182
+ */
1865
2183
  <A2, E2, R2, A, B>(
1866
2184
  that: Micro<A2, E2, R2>,
1867
2185
  f: (a: A, b: A2) => B,
1868
2186
  options?: { readonly concurrent?: boolean | undefined }
1869
2187
  ): <E, R>(self: Micro<A, E, R>) => Micro<B, E2 | E, R2 | R>
2188
+ /**
2189
+ * The `Micro.zipWith` function combines two `Micro` effects and allows you to
2190
+ * apply a function to the results of the combined effects, transforming them
2191
+ * into a single value.
2192
+ *
2193
+ * @since 3.4.3
2194
+ * @experimental
2195
+ * @category zipping
2196
+ */
1870
2197
  <A, E, R, A2, E2, R2, B>(
1871
2198
  self: Micro<A, E, R>,
1872
2199
  that: Micro<A2, E2, R2>,
@@ -1902,19 +2229,79 @@ export const zipWith: {
1902
2229
  * @category filtering & conditionals
1903
2230
  */
1904
2231
  export const filterOrFailCause: {
2232
+ // ----------------------------------------------------------------------------
2233
+ // filtering & conditionals
2234
+ // ----------------------------------------------------------------------------
2235
+
2236
+ /**
2237
+ * Filter the specified effect with the provided function, failing with specified
2238
+ * `MicroCause` if the predicate fails.
2239
+ *
2240
+ * In addition to the filtering capabilities discussed earlier, you have the option to further
2241
+ * refine and narrow down the type of the success channel by providing a
2242
+ *
2243
+ * @since 3.4.0
2244
+ * @experimental
2245
+ * @category filtering & conditionals
2246
+ */
1905
2247
  <A, B extends A, E2>(
1906
2248
  refinement: Refinement<A, B>,
1907
2249
  orFailWith: (a: NoInfer<A>) => MicroCause<E2>
1908
2250
  ): <E, R>(self: Micro<A, E, R>) => Micro<B, E2 | E, R>
2251
+ // ----------------------------------------------------------------------------
2252
+ // filtering & conditionals
2253
+ // ----------------------------------------------------------------------------
2254
+
2255
+ /**
2256
+ * Filter the specified effect with the provided function, failing with specified
2257
+ * `MicroCause` if the predicate fails.
2258
+ *
2259
+ * In addition to the filtering capabilities discussed earlier, you have the option to further
2260
+ * refine and narrow down the type of the success channel by providing a
2261
+ *
2262
+ * @since 3.4.0
2263
+ * @experimental
2264
+ * @category filtering & conditionals
2265
+ */
1909
2266
  <A, E2>(
1910
2267
  predicate: Predicate<NoInfer<A>>,
1911
2268
  orFailWith: (a: NoInfer<A>) => MicroCause<E2>
1912
2269
  ): <E, R>(self: Micro<A, E, R>) => Micro<A, E2 | E, R>
2270
+ // ----------------------------------------------------------------------------
2271
+ // filtering & conditionals
2272
+ // ----------------------------------------------------------------------------
2273
+
2274
+ /**
2275
+ * Filter the specified effect with the provided function, failing with specified
2276
+ * `MicroCause` if the predicate fails.
2277
+ *
2278
+ * In addition to the filtering capabilities discussed earlier, you have the option to further
2279
+ * refine and narrow down the type of the success channel by providing a
2280
+ *
2281
+ * @since 3.4.0
2282
+ * @experimental
2283
+ * @category filtering & conditionals
2284
+ */
1913
2285
  <A, E, R, B extends A, E2>(
1914
2286
  self: Micro<A, E, R>,
1915
2287
  refinement: Refinement<A, B>,
1916
2288
  orFailWith: (a: A) => MicroCause<E2>
1917
2289
  ): Micro<B, E | E2, R>
2290
+ // ----------------------------------------------------------------------------
2291
+ // filtering & conditionals
2292
+ // ----------------------------------------------------------------------------
2293
+
2294
+ /**
2295
+ * Filter the specified effect with the provided function, failing with specified
2296
+ * `MicroCause` if the predicate fails.
2297
+ *
2298
+ * In addition to the filtering capabilities discussed earlier, you have the option to further
2299
+ * refine and narrow down the type of the success channel by providing a
2300
+ *
2301
+ * @since 3.4.0
2302
+ * @experimental
2303
+ * @category filtering & conditionals
2304
+ */
1918
2305
  <A, E, R, E2>(
1919
2306
  self: Micro<A, E, R>,
1920
2307
  predicate: Predicate<A>,
@@ -1938,19 +2325,63 @@ export const filterOrFailCause: {
1938
2325
  * @category filtering & conditionals
1939
2326
  */
1940
2327
  export const filterOrFail: {
2328
+ /**
2329
+ * Filter the specified effect with the provided function, failing with specified
2330
+ * error if the predicate fails.
2331
+ *
2332
+ * In addition to the filtering capabilities discussed earlier, you have the option to further
2333
+ * refine and narrow down the type of the success channel by providing a
2334
+ *
2335
+ * @since 3.4.0
2336
+ * @experimental
2337
+ * @category filtering & conditionals
2338
+ */
1941
2339
  <A, B extends A, E2>(
1942
2340
  refinement: Refinement<A, B>,
1943
2341
  orFailWith: (a: NoInfer<A>) => E2
1944
2342
  ): <E, R>(self: Micro<A, E, R>) => Micro<B, E2 | E, R>
2343
+ /**
2344
+ * Filter the specified effect with the provided function, failing with specified
2345
+ * error if the predicate fails.
2346
+ *
2347
+ * In addition to the filtering capabilities discussed earlier, you have the option to further
2348
+ * refine and narrow down the type of the success channel by providing a
2349
+ *
2350
+ * @since 3.4.0
2351
+ * @experimental
2352
+ * @category filtering & conditionals
2353
+ */
1945
2354
  <A, E2>(
1946
2355
  predicate: Predicate<NoInfer<A>>,
1947
2356
  orFailWith: (a: NoInfer<A>) => E2
1948
2357
  ): <E, R>(self: Micro<A, E, R>) => Micro<A, E2 | E, R>
1949
- <A, E, R, B extends A, E2>(
1950
- self: Micro<A, E, R>,
1951
- refinement: Refinement<A, B>,
1952
- orFailWith: (a: A) => E2
2358
+ /**
2359
+ * Filter the specified effect with the provided function, failing with specified
2360
+ * error if the predicate fails.
2361
+ *
2362
+ * In addition to the filtering capabilities discussed earlier, you have the option to further
2363
+ * refine and narrow down the type of the success channel by providing a
2364
+ *
2365
+ * @since 3.4.0
2366
+ * @experimental
2367
+ * @category filtering & conditionals
2368
+ */
2369
+ <A, E, R, B extends A, E2>(
2370
+ self: Micro<A, E, R>,
2371
+ refinement: Refinement<A, B>,
2372
+ orFailWith: (a: A) => E2
1953
2373
  ): Micro<B, E | E2, R>
2374
+ /**
2375
+ * Filter the specified effect with the provided function, failing with specified
2376
+ * error if the predicate fails.
2377
+ *
2378
+ * In addition to the filtering capabilities discussed earlier, you have the option to further
2379
+ * refine and narrow down the type of the success channel by providing a
2380
+ *
2381
+ * @since 3.4.0
2382
+ * @experimental
2383
+ * @category filtering & conditionals
2384
+ */
1954
2385
  <A, E, R, E2>(self: Micro<A, E, R>, predicate: Predicate<A>, orFailWith: (a: A) => E2): Micro<A, E | E2, R>
1955
2386
  } = dual((args) => isMicro(args[0]), <A, E, R, B extends A, E2>(
1956
2387
  self: Micro<A, E, R>,
@@ -1966,9 +2397,23 @@ export const filterOrFail: {
1966
2397
  * @category filtering & conditionals
1967
2398
  */
1968
2399
  export const when: {
2400
+ /**
2401
+ * The moral equivalent of `if (p) exp`.
2402
+ *
2403
+ * @since 3.4.0
2404
+ * @experimental
2405
+ * @category filtering & conditionals
2406
+ */
1969
2407
  <E2 = never, R2 = never>(
1970
2408
  condition: LazyArg<boolean> | Micro<boolean, E2, R2>
1971
2409
  ): <A, E, R>(self: Micro<A, E, R>) => Micro<Option.Option<A>, E | E2, R | R2>
2410
+ /**
2411
+ * The moral equivalent of `if (p) exp`.
2412
+ *
2413
+ * @since 3.4.0
2414
+ * @experimental
2415
+ * @category filtering & conditionals
2416
+ */
1972
2417
  <A, E, R, E2 = never, R2 = never>(
1973
2418
  self: Micro<A, E, R>,
1974
2419
  condition: LazyArg<boolean> | Micro<boolean, E2, R2>
@@ -1997,16 +2442,49 @@ export const when: {
1997
2442
  * @category repetition
1998
2443
  */
1999
2444
  export const repeatExit: {
2000
- <A, E>(options: {
2001
- while: Predicate<MicroExit<A, E>>
2002
- times?: number | undefined
2003
- schedule?: MicroSchedule | undefined
2004
- }): <R>(self: Micro<A, E, R>) => Micro<A, E, R>
2005
- <A, E, R>(self: Micro<A, E, R>, options: {
2006
- while: Predicate<MicroExit<A, E>>
2007
- times?: number | undefined
2008
- schedule?: MicroSchedule | undefined
2009
- }): Micro<A, E, R>
2445
+ // ----------------------------------------------------------------------------
2446
+ // repetition
2447
+ // ----------------------------------------------------------------------------
2448
+
2449
+ /**
2450
+ * Repeat the given `Micro` using the provided options.
2451
+ *
2452
+ * The `while` predicate will be checked after each iteration, and can use the
2453
+ * fall `MicroExit` of the effect to determine if the repetition should continue.
2454
+ *
2455
+ * @since 3.4.6
2456
+ * @experimental
2457
+ * @category repetition
2458
+ */
2459
+ <A, E>(
2460
+ options: {
2461
+ while: Predicate<MicroExit<A, E>>
2462
+ times?: number | undefined
2463
+ schedule?: MicroSchedule | undefined
2464
+ }
2465
+ ): <R>(self: Micro<A, E, R>) => Micro<A, E, R>
2466
+ // ----------------------------------------------------------------------------
2467
+ // repetition
2468
+ // ----------------------------------------------------------------------------
2469
+
2470
+ /**
2471
+ * Repeat the given `Micro` using the provided options.
2472
+ *
2473
+ * The `while` predicate will be checked after each iteration, and can use the
2474
+ * fall `MicroExit` of the effect to determine if the repetition should continue.
2475
+ *
2476
+ * @since 3.4.6
2477
+ * @experimental
2478
+ * @category repetition
2479
+ */
2480
+ <A, E, R>(
2481
+ self: Micro<A, E, R>,
2482
+ options: {
2483
+ while: Predicate<MicroExit<A, E>>
2484
+ times?: number | undefined
2485
+ schedule?: MicroSchedule | undefined
2486
+ }
2487
+ ): Micro<A, E, R>
2010
2488
  } = dual(2, <A, E, R>(self: Micro<A, E, R>, options: {
2011
2489
  while: Predicate<MicroExit<A, E>>
2012
2490
  times?: number | undefined
@@ -2049,6 +2527,14 @@ export const repeatExit: {
2049
2527
  * @category repetition
2050
2528
  */
2051
2529
  export const repeat: {
2530
+ /**
2531
+ * Repeat the given `Micro` effect using the provided options. Only successful
2532
+ * results will be repeated.
2533
+ *
2534
+ * @since 3.4.0
2535
+ * @experimental
2536
+ * @category repetition
2537
+ */
2052
2538
  <A, E>(
2053
2539
  options?: {
2054
2540
  while?: Predicate<A> | undefined
@@ -2056,6 +2542,14 @@ export const repeat: {
2056
2542
  schedule?: MicroSchedule | undefined
2057
2543
  } | undefined
2058
2544
  ): <R>(self: Micro<A, E, R>) => Micro<A, E, R>
2545
+ /**
2546
+ * Repeat the given `Micro` effect using the provided options. Only successful
2547
+ * results will be repeated.
2548
+ *
2549
+ * @since 3.4.0
2550
+ * @experimental
2551
+ * @category repetition
2552
+ */
2059
2553
  <A, E, R>(
2060
2554
  self: Micro<A, E, R>,
2061
2555
  options?: {
@@ -2142,7 +2636,23 @@ export const scheduleExponential = (baseMillis: number, factor = 2): MicroSchedu
2142
2636
  * @category scheduling
2143
2637
  */
2144
2638
  export const scheduleAddDelay: {
2639
+ /**
2640
+ * Returns a new `MicroSchedule` with an added calculated delay to each delay
2641
+ * returned by this schedule.
2642
+ *
2643
+ * @since 3.4.6
2644
+ * @experimental
2645
+ * @category scheduling
2646
+ */
2145
2647
  (f: () => number): (self: MicroSchedule) => MicroSchedule
2648
+ /**
2649
+ * Returns a new `MicroSchedule` with an added calculated delay to each delay
2650
+ * returned by this schedule.
2651
+ *
2652
+ * @since 3.4.6
2653
+ * @experimental
2654
+ * @category scheduling
2655
+ */
2146
2656
  (self: MicroSchedule, f: () => number): MicroSchedule
2147
2657
  } = dual(
2148
2658
  2,
@@ -2159,7 +2669,23 @@ export const scheduleAddDelay: {
2159
2669
  * @category scheduling
2160
2670
  */
2161
2671
  export const scheduleWithMaxDelay: {
2672
+ /**
2673
+ * Transform a `MicroSchedule` to one that will have a delay that will never exceed
2674
+ * the specified maximum.
2675
+ *
2676
+ * @since 3.4.6
2677
+ * @experimental
2678
+ * @category scheduling
2679
+ */
2162
2680
  (max: number): (self: MicroSchedule) => MicroSchedule
2681
+ /**
2682
+ * Transform a `MicroSchedule` to one that will have a delay that will never exceed
2683
+ * the specified maximum.
2684
+ *
2685
+ * @since 3.4.6
2686
+ * @experimental
2687
+ * @category scheduling
2688
+ */
2163
2689
  (self: MicroSchedule, max: number): MicroSchedule
2164
2690
  } = dual(
2165
2691
  2,
@@ -2176,7 +2702,23 @@ export const scheduleWithMaxDelay: {
2176
2702
  * @category scheduling
2177
2703
  */
2178
2704
  export const scheduleWithMaxElapsed: {
2705
+ /**
2706
+ * Transform a `MicroSchedule` to one that will stop repeating after the specified
2707
+ * amount of time.
2708
+ *
2709
+ * @since 3.4.6
2710
+ * @experimental
2711
+ * @category scheduling
2712
+ */
2179
2713
  (max: number): (self: MicroSchedule) => MicroSchedule
2714
+ /**
2715
+ * Transform a `MicroSchedule` to one that will stop repeating after the specified
2716
+ * amount of time.
2717
+ *
2718
+ * @since 3.4.6
2719
+ * @experimental
2720
+ * @category scheduling
2721
+ */
2180
2722
  (self: MicroSchedule, max: number): MicroSchedule
2181
2723
  } = dual(
2182
2724
  2,
@@ -2193,7 +2735,23 @@ export const scheduleWithMaxElapsed: {
2193
2735
  * @category scheduling
2194
2736
  */
2195
2737
  export const scheduleUnion: {
2738
+ /**
2739
+ * Combines two `MicroSchedule`s, by recurring if either schedule wants to
2740
+ * recur, using the minimum of the two durations between recurrences.
2741
+ *
2742
+ * @since 3.4.6
2743
+ * @experimental
2744
+ * @category scheduling
2745
+ */
2196
2746
  (that: MicroSchedule): (self: MicroSchedule) => MicroSchedule
2747
+ /**
2748
+ * Combines two `MicroSchedule`s, by recurring if either schedule wants to
2749
+ * recur, using the minimum of the two durations between recurrences.
2750
+ *
2751
+ * @since 3.4.6
2752
+ * @experimental
2753
+ * @category scheduling
2754
+ */
2197
2755
  (self: MicroSchedule, that: MicroSchedule): MicroSchedule
2198
2756
  } = dual(
2199
2757
  2,
@@ -2210,7 +2768,23 @@ export const scheduleUnion: {
2210
2768
  * @category scheduling
2211
2769
  */
2212
2770
  export const scheduleIntersect: {
2771
+ /**
2772
+ * Combines two `MicroSchedule`s, by recurring only if both schedules want to
2773
+ * recur, using the maximum of the two durations between recurrences.
2774
+ *
2775
+ * @since 3.4.6
2776
+ * @experimental
2777
+ * @category scheduling
2778
+ */
2213
2779
  (that: MicroSchedule): (self: MicroSchedule) => MicroSchedule
2780
+ /**
2781
+ * Combines two `MicroSchedule`s, by recurring only if both schedules want to
2782
+ * recur, using the maximum of the two durations between recurrences.
2783
+ *
2784
+ * @since 3.4.6
2785
+ * @experimental
2786
+ * @category scheduling
2787
+ */
2214
2788
  (self: MicroSchedule, that: MicroSchedule): MicroSchedule
2215
2789
  } = dual(
2216
2790
  2,
@@ -2231,9 +2805,33 @@ export const scheduleIntersect: {
2231
2805
  * @category error handling
2232
2806
  */
2233
2807
  export const catchAllCause: {
2808
+ // ----------------------------------------------------------------------------
2809
+ // error handling
2810
+ // ----------------------------------------------------------------------------
2811
+
2812
+ /**
2813
+ * Catch the full `MicroCause` object of the given `Micro` effect, allowing you to
2814
+ * recover from any kind of cause.
2815
+ *
2816
+ * @since 3.4.6
2817
+ * @experimental
2818
+ * @category error handling
2819
+ */
2234
2820
  <E, B, E2, R2>(
2235
2821
  f: (cause: NoInfer<MicroCause<E>>) => Micro<B, E2, R2>
2236
2822
  ): <A, R>(self: Micro<A, E, R>) => Micro<A | B, E2, R | R2>
2823
+ // ----------------------------------------------------------------------------
2824
+ // error handling
2825
+ // ----------------------------------------------------------------------------
2826
+
2827
+ /**
2828
+ * Catch the full `MicroCause` object of the given `Micro` effect, allowing you to
2829
+ * recover from any kind of cause.
2830
+ *
2831
+ * @since 3.4.6
2832
+ * @experimental
2833
+ * @category error handling
2834
+ */
2237
2835
  <A, E, R, B, E2, R2>(
2238
2836
  self: Micro<A, E, R>,
2239
2837
  f: (cause: NoInfer<MicroCause<E>>) => Micro<B, E2, R2>
@@ -2255,19 +2853,51 @@ export const catchAllCause: {
2255
2853
  * @category error handling
2256
2854
  */
2257
2855
  export const catchCauseIf: {
2856
+ /**
2857
+ * Selectively catch a `MicroCause` object of the given `Micro` effect,
2858
+ * using the provided predicate to determine if the failure should be caught.
2859
+ *
2860
+ * @since 3.4.6
2861
+ * @experimental
2862
+ * @category error handling
2863
+ */
2258
2864
  <E, B, E2, R2, EB extends MicroCause<E>>(
2259
2865
  refinement: Refinement<MicroCause<E>, EB>,
2260
2866
  f: (cause: EB) => Micro<B, E2, R2>
2261
2867
  ): <A, R>(self: Micro<A, E, R>) => Micro<A | B, Exclude<E, MicroCause.Error<EB>> | E2, R | R2>
2868
+ /**
2869
+ * Selectively catch a `MicroCause` object of the given `Micro` effect,
2870
+ * using the provided predicate to determine if the failure should be caught.
2871
+ *
2872
+ * @since 3.4.6
2873
+ * @experimental
2874
+ * @category error handling
2875
+ */
2262
2876
  <E, B, E2, R2>(
2263
2877
  predicate: Predicate<MicroCause<NoInfer<E>>>,
2264
2878
  f: (cause: NoInfer<MicroCause<E>>) => Micro<B, E2, R2>
2265
2879
  ): <A, R>(self: Micro<A, E, R>) => Micro<A | B, E | E2, R | R2>
2880
+ /**
2881
+ * Selectively catch a `MicroCause` object of the given `Micro` effect,
2882
+ * using the provided predicate to determine if the failure should be caught.
2883
+ *
2884
+ * @since 3.4.6
2885
+ * @experimental
2886
+ * @category error handling
2887
+ */
2266
2888
  <A, E, R, B, E2, R2, EB extends MicroCause<E>>(
2267
2889
  self: Micro<A, E, R>,
2268
2890
  refinement: Refinement<MicroCause<E>, EB>,
2269
2891
  f: (cause: EB) => Micro<B, E2, R2>
2270
2892
  ): Micro<A | B, Exclude<E, MicroCause.Error<EB>> | E2, R | R2>
2893
+ /**
2894
+ * Selectively catch a `MicroCause` object of the given `Micro` effect,
2895
+ * using the provided predicate to determine if the failure should be caught.
2896
+ *
2897
+ * @since 3.4.6
2898
+ * @experimental
2899
+ * @category error handling
2900
+ */
2271
2901
  <A, E, R, B, E2, R2>(
2272
2902
  self: Micro<A, E, R>,
2273
2903
  predicate: Predicate<MicroCause<NoInfer<E>>>,
@@ -2298,9 +2928,25 @@ export const catchCauseIf: {
2298
2928
  * @category error handling
2299
2929
  */
2300
2930
  export const catchAll: {
2301
- <E, B, E2, R2>(
2302
- f: (e: NoInfer<E>) => Micro<B, E2, R2>
2303
- ): <A, R>(self: Micro<A, E, R>) => Micro<A | B, E2, R | R2>
2931
+ /**
2932
+ * Catch the error of the given `Micro` effect, allowing you to recover from it.
2933
+ *
2934
+ * It only catches expected (`MicroCause.Fail`) errors.
2935
+ *
2936
+ * @since 3.4.6
2937
+ * @experimental
2938
+ * @category error handling
2939
+ */
2940
+ <E, B, E2, R2>(f: (e: NoInfer<E>) => Micro<B, E2, R2>): <A, R>(self: Micro<A, E, R>) => Micro<A | B, E2, R | R2>
2941
+ /**
2942
+ * Catch the error of the given `Micro` effect, allowing you to recover from it.
2943
+ *
2944
+ * It only catches expected (`MicroCause.Fail`) errors.
2945
+ *
2946
+ * @since 3.4.6
2947
+ * @experimental
2948
+ * @category error handling
2949
+ */
2304
2950
  <A, E, R, B, E2, R2>(self: Micro<A, E, R>, f: (e: NoInfer<E>) => Micro<B, E2, R2>): Micro<A | B, E2, R | R2>
2305
2951
  } = dual(
2306
2952
  2,
@@ -2318,9 +2964,21 @@ export const catchAll: {
2318
2964
  * @category error handling
2319
2965
  */
2320
2966
  export const catchAllDefect: {
2321
- <E, B, E2, R2>(
2322
- f: (defect: unknown) => Micro<B, E2, R2>
2323
- ): <A, R>(self: Micro<A, E, R>) => Micro<A | B, E | E2, R | R2>
2967
+ /**
2968
+ * Catch any unexpected errors of the given `Micro` effect, allowing you to recover from them.
2969
+ *
2970
+ * @since 3.4.6
2971
+ * @experimental
2972
+ * @category error handling
2973
+ */
2974
+ <E, B, E2, R2>(f: (defect: unknown) => Micro<B, E2, R2>): <A, R>(self: Micro<A, E, R>) => Micro<A | B, E | E2, R | R2>
2975
+ /**
2976
+ * Catch any unexpected errors of the given `Micro` effect, allowing you to recover from them.
2977
+ *
2978
+ * @since 3.4.6
2979
+ * @experimental
2980
+ * @category error handling
2981
+ */
2324
2982
  <A, E, R, B, E2, R2>(self: Micro<A, E, R>, f: (defect: unknown) => Micro<B, E2, R2>): Micro<A | B, E | E2, R | R2>
2325
2983
  } = dual(
2326
2984
  2,
@@ -2336,9 +2994,23 @@ export const catchAllDefect: {
2336
2994
  * @category error handling
2337
2995
  */
2338
2996
  export const tapErrorCause: {
2997
+ /**
2998
+ * Perform a side effect using the full `MicroCause` object of the given `Micro`.
2999
+ *
3000
+ * @since 3.4.6
3001
+ * @experimental
3002
+ * @category error handling
3003
+ */
2339
3004
  <E, B, E2, R2>(
2340
3005
  f: (cause: NoInfer<MicroCause<E>>) => Micro<B, E2, R2>
2341
3006
  ): <A, R>(self: Micro<A, E, R>) => Micro<A, E | E2, R | R2>
3007
+ /**
3008
+ * Perform a side effect using the full `MicroCause` object of the given `Micro`.
3009
+ *
3010
+ * @since 3.4.6
3011
+ * @experimental
3012
+ * @category error handling
3013
+ */
2342
3014
  <A, E, R, B, E2, R2>(
2343
3015
  self: Micro<A, E, R>,
2344
3016
  f: (cause: NoInfer<MicroCause<E>>) => Micro<B, E2, R2>
@@ -2360,19 +3032,51 @@ export const tapErrorCause: {
2360
3032
  * @category error handling
2361
3033
  */
2362
3034
  export const tapErrorCauseIf: {
3035
+ /**
3036
+ * Perform a side effect using if a `MicroCause` object matches the specified
3037
+ * predicate.
3038
+ *
3039
+ * @since 3.4.0
3040
+ * @experimental
3041
+ * @category error handling
3042
+ */
2363
3043
  <E, B, E2, R2, EB extends MicroCause<E>>(
2364
3044
  refinement: Refinement<MicroCause<E>, EB>,
2365
3045
  f: (a: EB) => Micro<B, E2, R2>
2366
3046
  ): <A, R>(self: Micro<A, E, R>) => Micro<A, E | E2, R | R2>
3047
+ /**
3048
+ * Perform a side effect using if a `MicroCause` object matches the specified
3049
+ * predicate.
3050
+ *
3051
+ * @since 3.4.0
3052
+ * @experimental
3053
+ * @category error handling
3054
+ */
2367
3055
  <E, B, E2, R2>(
2368
3056
  predicate: (cause: NoInfer<MicroCause<E>>) => boolean,
2369
3057
  f: (a: NoInfer<MicroCause<E>>) => Micro<B, E2, R2>
2370
3058
  ): <A, R>(self: Micro<A, E, R>) => Micro<A, E | E2, R | R2>
3059
+ /**
3060
+ * Perform a side effect using if a `MicroCause` object matches the specified
3061
+ * predicate.
3062
+ *
3063
+ * @since 3.4.0
3064
+ * @experimental
3065
+ * @category error handling
3066
+ */
2371
3067
  <A, E, R, B, E2, R2, EB extends MicroCause<E>>(
2372
3068
  self: Micro<A, E, R>,
2373
3069
  refinement: Refinement<MicroCause<E>, EB>,
2374
3070
  f: (a: EB) => Micro<B, E2, R2>
2375
3071
  ): Micro<A, E | E2, R | R2>
3072
+ /**
3073
+ * Perform a side effect using if a `MicroCause` object matches the specified
3074
+ * predicate.
3075
+ *
3076
+ * @since 3.4.0
3077
+ * @experimental
3078
+ * @category error handling
3079
+ */
2376
3080
  <A, E, R, B, E2, R2>(
2377
3081
  self: Micro<A, E, R>,
2378
3082
  predicate: (cause: NoInfer<MicroCause<E>>) => boolean,
@@ -2395,9 +3099,21 @@ export const tapErrorCauseIf: {
2395
3099
  * @category error handling
2396
3100
  */
2397
3101
  export const tapError: {
2398
- <E, B, E2, R2>(
2399
- f: (e: NoInfer<E>) => Micro<B, E2, R2>
2400
- ): <A, R>(self: Micro<A, E, R>) => Micro<A, E | E2, R | R2>
3102
+ /**
3103
+ * Perform a side effect from expected errors of the given `Micro`.
3104
+ *
3105
+ * @since 3.4.6
3106
+ * @experimental
3107
+ * @category error handling
3108
+ */
3109
+ <E, B, E2, R2>(f: (e: NoInfer<E>) => Micro<B, E2, R2>): <A, R>(self: Micro<A, E, R>) => Micro<A, E | E2, R | R2>
3110
+ /**
3111
+ * Perform a side effect from expected errors of the given `Micro`.
3112
+ *
3113
+ * @since 3.4.6
3114
+ * @experimental
3115
+ * @category error handling
3116
+ */
2401
3117
  <A, E, R, B, E2, R2>(self: Micro<A, E, R>, f: (e: NoInfer<E>) => Micro<B, E2, R2>): Micro<A, E | E2, R | R2>
2402
3118
  } = dual(
2403
3119
  2,
@@ -2413,9 +3129,21 @@ export const tapError: {
2413
3129
  * @category error handling
2414
3130
  */
2415
3131
  export const tapDefect: {
2416
- <E, B, E2, R2>(
2417
- f: (defect: unknown) => Micro<B, E2, R2>
2418
- ): <A, R>(self: Micro<A, E, R>) => Micro<A, E | E2, R | R2>
3132
+ /**
3133
+ * Perform a side effect from unexpected errors of the given `Micro`.
3134
+ *
3135
+ * @since 3.4.6
3136
+ * @experimental
3137
+ * @category error handling
3138
+ */
3139
+ <E, B, E2, R2>(f: (defect: unknown) => Micro<B, E2, R2>): <A, R>(self: Micro<A, E, R>) => Micro<A, E | E2, R | R2>
3140
+ /**
3141
+ * Perform a side effect from unexpected errors of the given `Micro`.
3142
+ *
3143
+ * @since 3.4.6
3144
+ * @experimental
3145
+ * @category error handling
3146
+ */
2419
3147
  <A, E, R, B, E2, R2>(self: Micro<A, E, R>, f: (defect: unknown) => Micro<B, E2, R2>): Micro<A, E | E2, R | R2>
2420
3148
  } = dual(
2421
3149
  2,
@@ -2431,19 +3159,47 @@ export const tapDefect: {
2431
3159
  * @category error handling
2432
3160
  */
2433
3161
  export const catchIf: {
3162
+ /**
3163
+ * Catch any expected errors that match the specified predicate.
3164
+ *
3165
+ * @since 3.4.0
3166
+ * @experimental
3167
+ * @category error handling
3168
+ */
2434
3169
  <E, EB extends E, A2, E2, R2>(
2435
3170
  refinement: Refinement<NoInfer<E>, EB>,
2436
3171
  f: (e: EB) => Micro<A2, E2, R2>
2437
3172
  ): <A, R>(self: Micro<A, E, R>) => Micro<A2 | A, E2 | Exclude<E, EB>, R2 | R>
3173
+ /**
3174
+ * Catch any expected errors that match the specified predicate.
3175
+ *
3176
+ * @since 3.4.0
3177
+ * @experimental
3178
+ * @category error handling
3179
+ */
2438
3180
  <E, A2, E2, R2>(
2439
3181
  predicate: Predicate<NoInfer<E>>,
2440
3182
  f: (e: NoInfer<E>) => Micro<A2, E2, R2>
2441
3183
  ): <A, R>(self: Micro<A, E, R>) => Micro<A2 | A, E | E2, R2 | R>
3184
+ /**
3185
+ * Catch any expected errors that match the specified predicate.
3186
+ *
3187
+ * @since 3.4.0
3188
+ * @experimental
3189
+ * @category error handling
3190
+ */
2442
3191
  <A, E, R, EB extends E, A2, E2, R2>(
2443
3192
  self: Micro<A, E, R>,
2444
3193
  refinement: Refinement<E, EB>,
2445
3194
  f: (e: EB) => Micro<A2, E2, R2>
2446
3195
  ): Micro<A | A2, E2 | Exclude<E, EB>, R | R2>
3196
+ /**
3197
+ * Catch any expected errors that match the specified predicate.
3198
+ *
3199
+ * @since 3.4.0
3200
+ * @experimental
3201
+ * @category error handling
3202
+ */
2447
3203
  <A, E, R, A2, E2, R2>(
2448
3204
  self: Micro<A, E, R>,
2449
3205
  predicate: Predicate<E>,
@@ -2471,10 +3227,24 @@ export const catchIf: {
2471
3227
  * @category error handling
2472
3228
  */
2473
3229
  export const catchTag: {
3230
+ /**
3231
+ * Recovers from the specified tagged error.
3232
+ *
3233
+ * @since 3.4.0
3234
+ * @experimental
3235
+ * @category error handling
3236
+ */
2474
3237
  <K extends E extends { _tag: string } ? E["_tag"] : never, E, A1, E1, R1>(
2475
3238
  k: K,
2476
3239
  f: (e: Extract<E, { _tag: K }>) => Micro<A1, E1, R1>
2477
3240
  ): <A, R>(self: Micro<A, E, R>) => Micro<A1 | A, E1 | Exclude<E, { _tag: K }>, R1 | R>
3241
+ /**
3242
+ * Recovers from the specified tagged error.
3243
+ *
3244
+ * @since 3.4.0
3245
+ * @experimental
3246
+ * @category error handling
3247
+ */
2478
3248
  <A, E, R, K extends E extends { _tag: string } ? E["_tag"] : never, R1, E1, A1>(
2479
3249
  self: Micro<A, E, R>,
2480
3250
  k: K,
@@ -2495,7 +3265,21 @@ export const catchTag: {
2495
3265
  * @category error handling
2496
3266
  */
2497
3267
  export const mapErrorCause: {
3268
+ /**
3269
+ * Transform the full `MicroCause` object of the given `Micro` effect.
3270
+ *
3271
+ * @since 3.4.6
3272
+ * @experimental
3273
+ * @category error handling
3274
+ */
2498
3275
  <E, E2>(f: (e: MicroCause<E>) => MicroCause<E2>): <A, R>(self: Micro<A, E, R>) => Micro<A, E2, R>
3276
+ /**
3277
+ * Transform the full `MicroCause` object of the given `Micro` effect.
3278
+ *
3279
+ * @since 3.4.6
3280
+ * @experimental
3281
+ * @category error handling
3282
+ */
2499
3283
  <A, E, R, E2>(self: Micro<A, E, R>, f: (e: MicroCause<E>) => MicroCause<E2>): Micro<A, E2, R>
2500
3284
  } = dual(
2501
3285
  2,
@@ -2511,7 +3295,21 @@ export const mapErrorCause: {
2511
3295
  * @category error handling
2512
3296
  */
2513
3297
  export const mapError: {
3298
+ /**
3299
+ * Transform any expected errors of the given `Micro` effect.
3300
+ *
3301
+ * @since 3.4.0
3302
+ * @experimental
3303
+ * @category error handling
3304
+ */
2514
3305
  <E, E2>(f: (e: E) => E2): <A, R>(self: Micro<A, E, R>) => Micro<A, E2, R>
3306
+ /**
3307
+ * Transform any expected errors of the given `Micro` effect.
3308
+ *
3309
+ * @since 3.4.0
3310
+ * @experimental
3311
+ * @category error handling
3312
+ */
2515
3313
  <A, E, R, E2>(self: Micro<A, E, R>, f: (e: E) => E2): Micro<A, E2, R>
2516
3314
  } = dual(
2517
3315
  2,
@@ -2536,7 +3334,21 @@ export const orDie = <A, E, R>(self: Micro<A, E, R>): Micro<A, never, R> => catc
2536
3334
  * @category error handling
2537
3335
  */
2538
3336
  export const orElseSucceed: {
3337
+ /**
3338
+ * Recover from all errors by succeeding with the given value.
3339
+ *
3340
+ * @since 3.4.0
3341
+ * @experimental
3342
+ * @category error handling
3343
+ */
2539
3344
  <B>(f: LazyArg<B>): <A, E, R>(self: Micro<A, E, R>) => Micro<A | B, never, R>
3345
+ /**
3346
+ * Recover from all errors by succeeding with the given value.
3347
+ *
3348
+ * @since 3.4.0
3349
+ * @experimental
3350
+ * @category error handling
3351
+ */
2540
3352
  <A, E, R, B>(self: Micro<A, E, R>, f: LazyArg<B>): Micro<A | B, never, R>
2541
3353
  } = dual(
2542
3354
  2,
@@ -2599,6 +3411,13 @@ export const either = <A, E, R>(self: Micro<A, E, R>): Micro<Either.Either<A, E>
2599
3411
  * @category error handling
2600
3412
  */
2601
3413
  export const retry: {
3414
+ /**
3415
+ * Retry the given `Micro` effect using the provided options.
3416
+ *
3417
+ * @since 3.4.0
3418
+ * @experimental
3419
+ * @category error handling
3420
+ */
2602
3421
  <A, E>(
2603
3422
  options?: {
2604
3423
  while?: Predicate<E> | undefined
@@ -2606,6 +3425,13 @@ export const retry: {
2606
3425
  schedule?: MicroSchedule | undefined
2607
3426
  } | undefined
2608
3427
  ): <R>(self: Micro<A, E, R>) => Micro<A, E, R>
3428
+ /**
3429
+ * Retry the given `Micro` effect using the provided options.
3430
+ *
3431
+ * @since 3.4.0
3432
+ * @experimental
3433
+ * @category error handling
3434
+ */
2609
3435
  <A, E, R>(
2610
3436
  self: Micro<A, E, R>,
2611
3437
  options?: {
@@ -2638,7 +3464,23 @@ export const retry: {
2638
3464
  * @category error handling
2639
3465
  */
2640
3466
  export const withTrace: {
3467
+ /**
3468
+ * Add a stack trace to any failures that occur in the effect. The trace will be
3469
+ * added to the `traces` field of the `MicroCause` object.
3470
+ *
3471
+ * @since 3.4.0
3472
+ * @experimental
3473
+ * @category error handling
3474
+ */
2641
3475
  (name: string): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E, R>
3476
+ /**
3477
+ * Add a stack trace to any failures that occur in the effect. The trace will be
3478
+ * added to the `traces` field of the `MicroCause` object.
3479
+ *
3480
+ * @since 3.4.0
3481
+ * @experimental
3482
+ * @category error handling
3483
+ */
2642
3484
  <A, E, R>(self: Micro<A, E, R>, name: string): Micro<A, E, R>
2643
3485
  } = function() {
2644
3486
  const prevLimit = globalThis.Error.stackTraceLimit
@@ -2679,12 +3521,30 @@ export const withTrace: {
2679
3521
  * @category pattern matching
2680
3522
  */
2681
3523
  export const matchCauseEffect: {
3524
+ // ----------------------------------------------------------------------------
3525
+ // pattern matching
3526
+ // ----------------------------------------------------------------------------
3527
+
3528
+ /**
3529
+ * @since 3.4.6
3530
+ * @experimental
3531
+ * @category pattern matching
3532
+ */
2682
3533
  <E, A2, E2, R2, A, A3, E3, R3>(
2683
3534
  options: {
2684
3535
  readonly onFailure: (cause: MicroCause<E>) => Micro<A2, E2, R2>
2685
3536
  readonly onSuccess: (a: A) => Micro<A3, E3, R3>
2686
3537
  }
2687
3538
  ): <R>(self: Micro<A, E, R>) => Micro<A2 | A3, E2 | E3, R2 | R3 | R>
3539
+ // ----------------------------------------------------------------------------
3540
+ // pattern matching
3541
+ // ----------------------------------------------------------------------------
3542
+
3543
+ /**
3544
+ * @since 3.4.6
3545
+ * @experimental
3546
+ * @category pattern matching
3547
+ */
2688
3548
  <A, E, R, A2, E2, R2, A3, E3, R3>(
2689
3549
  self: Micro<A, E, R>,
2690
3550
  options: {
@@ -2719,12 +3579,22 @@ export const matchCauseEffect: {
2719
3579
  * @category pattern matching
2720
3580
  */
2721
3581
  export const matchCause: {
3582
+ /**
3583
+ * @since 3.4.6
3584
+ * @experimental
3585
+ * @category pattern matching
3586
+ */
2722
3587
  <E, A2, A, A3>(
2723
3588
  options: {
2724
3589
  readonly onFailure: (cause: MicroCause<E>) => A2
2725
3590
  readonly onSuccess: (a: A) => A3
2726
3591
  }
2727
3592
  ): <R>(self: Micro<A, E, R>) => Micro<A2 | A3, never, R>
3593
+ /**
3594
+ * @since 3.4.6
3595
+ * @experimental
3596
+ * @category pattern matching
3597
+ */
2728
3598
  <A, E, R, A2, A3>(
2729
3599
  self: Micro<A, E, R>,
2730
3600
  options: {
@@ -2753,12 +3623,22 @@ export const matchCause: {
2753
3623
  * @category pattern matching
2754
3624
  */
2755
3625
  export const matchEffect: {
3626
+ /**
3627
+ * @since 3.4.6
3628
+ * @experimental
3629
+ * @category pattern matching
3630
+ */
2756
3631
  <E, A2, E2, R2, A, A3, E3, R3>(
2757
3632
  options: {
2758
3633
  readonly onFailure: (e: E) => Micro<A2, E2, R2>
2759
3634
  readonly onSuccess: (a: A) => Micro<A3, E3, R3>
2760
3635
  }
2761
3636
  ): <R>(self: Micro<A, E, R>) => Micro<A2 | A3, E2 | E3, R2 | R3 | R>
3637
+ /**
3638
+ * @since 3.4.6
3639
+ * @experimental
3640
+ * @category pattern matching
3641
+ */
2762
3642
  <A, E, R, A2, E2, R2, A3, E3, R3>(
2763
3643
  self: Micro<A, E, R>,
2764
3644
  options: {
@@ -2787,12 +3667,22 @@ export const matchEffect: {
2787
3667
  * @category pattern matching
2788
3668
  */
2789
3669
  export const match: {
3670
+ /**
3671
+ * @since 3.4.0
3672
+ * @experimental
3673
+ * @category pattern matching
3674
+ */
2790
3675
  <E, A2, A, A3>(
2791
3676
  options: {
2792
3677
  readonly onFailure: (error: E) => A2
2793
3678
  readonly onSuccess: (value: A) => A3
2794
3679
  }
2795
3680
  ): <R>(self: Micro<A, E, R>) => Micro<A2 | A3, never, R>
3681
+ /**
3682
+ * @since 3.4.0
3683
+ * @experimental
3684
+ * @category pattern matching
3685
+ */
2796
3686
  <A, E, R, A2, A3>(
2797
3687
  self: Micro<A, E, R>,
2798
3688
  options: {
@@ -2845,7 +3735,23 @@ export const sleep = (millis: number): Micro<void> =>
2845
3735
  * @category delays & timeouts
2846
3736
  */
2847
3737
  export const delay: {
3738
+ /**
3739
+ * Returns an effect that will delay the execution of this effect by the
3740
+ * specified duration.
3741
+ *
3742
+ * @since 3.4.0
3743
+ * @experimental
3744
+ * @category delays & timeouts
3745
+ */
2848
3746
  (millis: number): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E, R>
3747
+ /**
3748
+ * Returns an effect that will delay the execution of this effect by the
3749
+ * specified duration.
3750
+ *
3751
+ * @since 3.4.0
3752
+ * @experimental
3753
+ * @category delays & timeouts
3754
+ */
2849
3755
  <A, E, R>(self: Micro<A, E, R>, millis: number): Micro<A, E, R>
2850
3756
  } = dual(
2851
3757
  2,
@@ -2863,14 +3769,39 @@ export const delay: {
2863
3769
  * @category delays & timeouts
2864
3770
  */
2865
3771
  export const timeoutOrElse: {
2866
- <A2, E2, R2>(options: {
2867
- readonly duration: number
2868
- readonly onTimeout: LazyArg<Micro<A2, E2, R2>>
2869
- }): <A, E, R>(self: Micro<A, E, R>) => Micro<A | A2, E | E2, R | R2>
2870
- <A, E, R, A2, E2, R2>(self: Micro<A, E, R>, options: {
2871
- readonly duration: number
2872
- readonly onTimeout: LazyArg<Micro<A2, E2, R2>>
2873
- }): Micro<A | A2, E | E2, R | R2>
3772
+ /**
3773
+ * Returns an effect that will timeout this effect, that will execute the
3774
+ * fallback effect if the timeout elapses before the effect has produced a value.
3775
+ *
3776
+ * If the timeout elapses, the running effect will be safely interrupted.
3777
+ *
3778
+ * @since 3.4.0
3779
+ * @experimental
3780
+ * @category delays & timeouts
3781
+ */
3782
+ <A2, E2, R2>(
3783
+ options: {
3784
+ readonly duration: number
3785
+ readonly onTimeout: LazyArg<Micro<A2, E2, R2>>
3786
+ }
3787
+ ): <A, E, R>(self: Micro<A, E, R>) => Micro<A | A2, E | E2, R | R2>
3788
+ /**
3789
+ * Returns an effect that will timeout this effect, that will execute the
3790
+ * fallback effect if the timeout elapses before the effect has produced a value.
3791
+ *
3792
+ * If the timeout elapses, the running effect will be safely interrupted.
3793
+ *
3794
+ * @since 3.4.0
3795
+ * @experimental
3796
+ * @category delays & timeouts
3797
+ */
3798
+ <A, E, R, A2, E2, R2>(
3799
+ self: Micro<A, E, R>,
3800
+ options: {
3801
+ readonly duration: number
3802
+ readonly onTimeout: LazyArg<Micro<A2, E2, R2>>
3803
+ }
3804
+ ): Micro<A | A2, E | E2, R | R2>
2874
3805
  } = dual(
2875
3806
  2,
2876
3807
  <A, E, R, A2, E2, R2>(self: Micro<A, E, R>, options: {
@@ -2892,7 +3823,29 @@ export const timeoutOrElse: {
2892
3823
  * @category delays & timeouts
2893
3824
  */
2894
3825
  export const timeout: {
3826
+ /**
3827
+ * Returns an effect that will timeout this effect, that will fail with a
3828
+ * `TimeoutException` if the timeout elapses before the effect has produced a
3829
+ * value.
3830
+ *
3831
+ * If the timeout elapses, the running effect will be safely interrupted.
3832
+ *
3833
+ * @since 3.4.0
3834
+ * @experimental
3835
+ * @category delays & timeouts
3836
+ */
2895
3837
  (millis: number): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E | TimeoutException, R>
3838
+ /**
3839
+ * Returns an effect that will timeout this effect, that will fail with a
3840
+ * `TimeoutException` if the timeout elapses before the effect has produced a
3841
+ * value.
3842
+ *
3843
+ * If the timeout elapses, the running effect will be safely interrupted.
3844
+ *
3845
+ * @since 3.4.0
3846
+ * @experimental
3847
+ * @category delays & timeouts
3848
+ */
2896
3849
  <A, E, R>(self: Micro<A, E, R>, millis: number): Micro<A, E | TimeoutException, R>
2897
3850
  } = dual(
2898
3851
  2,
@@ -2912,7 +3865,29 @@ export const timeout: {
2912
3865
  * @category delays & timeouts
2913
3866
  */
2914
3867
  export const timeoutOption: {
3868
+ /**
3869
+ * Returns an effect that will timeout this effect, succeeding with a `None`
3870
+ * if the timeout elapses before the effect has produced a value; and `Some` of
3871
+ * the produced value otherwise.
3872
+ *
3873
+ * If the timeout elapses, the running effect will be safely interrupted.
3874
+ *
3875
+ * @since 3.4.0
3876
+ * @experimental
3877
+ * @category delays & timeouts
3878
+ */
2915
3879
  (millis: number): <A, E, R>(self: Micro<A, E, R>) => Micro<Option.Option<A>, E, R>
3880
+ /**
3881
+ * Returns an effect that will timeout this effect, succeeding with a `None`
3882
+ * if the timeout elapses before the effect has produced a value; and `Some` of
3883
+ * the produced value otherwise.
3884
+ *
3885
+ * If the timeout elapses, the running effect will be safely interrupted.
3886
+ *
3887
+ * @since 3.4.0
3888
+ * @experimental
3889
+ * @category delays & timeouts
3890
+ */
2916
3891
  <A, E, R>(self: Micro<A, E, R>, millis: number): Micro<Option.Option<A>, E, R>
2917
3892
  } = dual(
2918
3893
  2,
@@ -3069,7 +4044,21 @@ export const scope: Micro<MicroScope, never, MicroScope> = service(MicroScope)
3069
4044
  * @category resources & finalization
3070
4045
  */
3071
4046
  export const provideScope: {
4047
+ /**
4048
+ * Provide a `MicroScope` to an effect.
4049
+ *
4050
+ * @since 3.4.0
4051
+ * @experimental
4052
+ * @category resources & finalization
4053
+ */
3072
4054
  (scope: MicroScope): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E, Exclude<R, MicroScope>>
4055
+ /**
4056
+ * Provide a `MicroScope` to an effect.
4057
+ *
4058
+ * @since 3.4.0
4059
+ * @experimental
4060
+ * @category resources & finalization
4061
+ */
3073
4062
  <A, E, R>(self: Micro<A, E, R>, scope: MicroScope): Micro<A, E, Exclude<R, MicroScope>>
3074
4063
  } = dual(
3075
4064
  2,
@@ -3128,9 +4117,25 @@ export const addFinalizer = (
3128
4117
  * @category resources & finalization
3129
4118
  */
3130
4119
  export const onExit: {
4120
+ /**
4121
+ * When the `Micro` effect is completed, run the given finalizer effect with the
4122
+ * `MicroExit` of the executed effect.
4123
+ *
4124
+ * @since 3.4.6
4125
+ * @experimental
4126
+ * @category resources & finalization
4127
+ */
3131
4128
  <A, E, XE, XR>(
3132
4129
  f: (exit: MicroExit<A, E>) => Micro<void, XE, XR>
3133
4130
  ): <R>(self: Micro<A, E, R>) => Micro<A, E | XE, R | XR>
4131
+ /**
4132
+ * When the `Micro` effect is completed, run the given finalizer effect with the
4133
+ * `MicroExit` of the executed effect.
4134
+ *
4135
+ * @since 3.4.6
4136
+ * @experimental
4137
+ * @category resources & finalization
4138
+ */
3134
4139
  <A, E, R, XE, XR>(self: Micro<A, E, R>, f: (exit: MicroExit<A, E>) => Micro<void, XE, XR>): Micro<A, E | XE, R | XR>
3135
4140
  } = dual(
3136
4141
  2,
@@ -3149,19 +4154,51 @@ export const onExit: {
3149
4154
  * @category resources & finalization
3150
4155
  */
3151
4156
  export const onExitIf: {
4157
+ /**
4158
+ * When the `Micro` effect is completed, run the given finalizer effect if it
4159
+ * matches the specified predicate.
4160
+ *
4161
+ * @since 3.4.6
4162
+ * @experimental
4163
+ * @category resources & finalization
4164
+ */
3152
4165
  <A, E, XE, XR, B extends MicroExit<A, E>>(
3153
4166
  refinement: Refinement<MicroExit<A, E>, B>,
3154
4167
  f: (exit: B) => Micro<void, XE, XR>
3155
4168
  ): <R>(self: Micro<A, E, R>) => Micro<A, E | XE, R | XR>
4169
+ /**
4170
+ * When the `Micro` effect is completed, run the given finalizer effect if it
4171
+ * matches the specified predicate.
4172
+ *
4173
+ * @since 3.4.6
4174
+ * @experimental
4175
+ * @category resources & finalization
4176
+ */
3156
4177
  <A, E, XE, XR>(
3157
4178
  predicate: Predicate<MicroExit<NoInfer<A>, NoInfer<E>>>,
3158
4179
  f: (exit: MicroExit<NoInfer<A>, NoInfer<E>>) => Micro<void, XE, XR>
3159
4180
  ): <R>(self: Micro<A, E, R>) => Micro<A, E | XE, R | XR>
4181
+ /**
4182
+ * When the `Micro` effect is completed, run the given finalizer effect if it
4183
+ * matches the specified predicate.
4184
+ *
4185
+ * @since 3.4.6
4186
+ * @experimental
4187
+ * @category resources & finalization
4188
+ */
3160
4189
  <A, E, R, XE, XR, B extends MicroExit<A, E>>(
3161
4190
  self: Micro<A, E, R>,
3162
4191
  refinement: Refinement<MicroExit<A, E>, B>,
3163
4192
  f: (exit: B) => Micro<void, XE, XR>
3164
4193
  ): Micro<A, E | XE, R | XR>
4194
+ /**
4195
+ * When the `Micro` effect is completed, run the given finalizer effect if it
4196
+ * matches the specified predicate.
4197
+ *
4198
+ * @since 3.4.6
4199
+ * @experimental
4200
+ * @category resources & finalization
4201
+ */
3165
4202
  <A, E, R, XE, XR>(
3166
4203
  self: Micro<A, E, R>,
3167
4204
  predicate: Predicate<MicroExit<NoInfer<A>, NoInfer<E>>>,
@@ -3199,9 +4236,21 @@ export const onExitIf: {
3199
4236
  * @category resources & finalization
3200
4237
  */
3201
4238
  export const ensuring: {
3202
- <XE, XR>(
3203
- finalizer: Micro<void, XE, XR>
3204
- ): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E | XE, R | XR>
4239
+ /**
4240
+ * Regardless of the result of the this `Micro` effect, run the finalizer effect.
4241
+ *
4242
+ * @since 3.4.0
4243
+ * @experimental
4244
+ * @category resources & finalization
4245
+ */
4246
+ <XE, XR>(finalizer: Micro<void, XE, XR>): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E | XE, R | XR>
4247
+ /**
4248
+ * Regardless of the result of the this `Micro` effect, run the finalizer effect.
4249
+ *
4250
+ * @since 3.4.0
4251
+ * @experimental
4252
+ * @category resources & finalization
4253
+ */
3205
4254
  <A, E, R, XE, XR>(self: Micro<A, E, R>, finalizer: Micro<void, XE, XR>): Micro<A, E | XE, R | XR>
3206
4255
  } = dual(
3207
4256
  2,
@@ -3218,9 +4267,25 @@ export const ensuring: {
3218
4267
  * @category resources & finalization
3219
4268
  */
3220
4269
  export const onError: {
4270
+ /**
4271
+ * When the `Micro` effect fails, run the given finalizer effect with the
4272
+ * `MicroCause` of the executed effect.
4273
+ *
4274
+ * @since 3.4.6
4275
+ * @experimental
4276
+ * @category resources & finalization
4277
+ */
3221
4278
  <A, E, XE, XR>(
3222
4279
  f: (cause: MicroCause<NoInfer<E>>) => Micro<void, XE, XR>
3223
4280
  ): <R>(self: Micro<A, E, R>) => Micro<A, E | XE, R | XR>
4281
+ /**
4282
+ * When the `Micro` effect fails, run the given finalizer effect with the
4283
+ * `MicroCause` of the executed effect.
4284
+ *
4285
+ * @since 3.4.6
4286
+ * @experimental
4287
+ * @category resources & finalization
4288
+ */
3224
4289
  <A, E, R, XE, XR>(
3225
4290
  self: Micro<A, E, R>,
3226
4291
  f: (cause: MicroCause<NoInfer<E>>) => Micro<void, XE, XR>
@@ -3241,9 +4306,21 @@ export const onError: {
3241
4306
  * @category resources & finalization
3242
4307
  */
3243
4308
  export const onInterrupt: {
3244
- <XE, XR>(
3245
- finalizer: Micro<void, XE, XR>
3246
- ): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E | XE, R | XR>
4309
+ /**
4310
+ * If this `Micro` effect is aborted, run the finalizer effect.
4311
+ *
4312
+ * @since 3.4.6
4313
+ * @experimental
4314
+ * @category resources & finalization
4315
+ */
4316
+ <XE, XR>(finalizer: Micro<void, XE, XR>): <A, E, R>(self: Micro<A, E, R>) => Micro<A, E | XE, R | XR>
4317
+ /**
4318
+ * If this `Micro` effect is aborted, run the finalizer effect.
4319
+ *
4320
+ * @since 3.4.6
4321
+ * @experimental
4322
+ * @category resources & finalization
4323
+ */
3247
4324
  <A, E, R, XE, XR>(self: Micro<A, E, R>, finalizer: Micro<void, XE, XR>): Micro<A, E | XE, R | XR>
3248
4325
  } = dual(
3249
4326
  2,
@@ -3499,14 +4576,48 @@ export const all = <
3499
4576
  * @category collecting & elements
3500
4577
  */
3501
4578
  export const forEach: {
3502
- <A, B, E, R>(iterable: Iterable<A>, f: (a: A, index: number) => Micro<B, E, R>, options?: {
3503
- readonly concurrency?: Concurrency | undefined
3504
- readonly discard?: false | undefined
3505
- }): Micro<Array<B>, E, R>
3506
- <A, B, E, R>(iterable: Iterable<A>, f: (a: A, index: number) => Micro<B, E, R>, options: {
3507
- readonly concurrency?: Concurrency | undefined
3508
- readonly discard: true
3509
- }): Micro<void, E, R>
4579
+ /**
4580
+ * For each element of the provided iterable, run the effect and collect the results.
4581
+ *
4582
+ * If the `discard` option is set to `true`, the results will be discarded and
4583
+ * the effect will return `void`.
4584
+ *
4585
+ * The `concurrency` option can be set to control how many effects are run in
4586
+ * parallel. By default, the effects are run sequentially.
4587
+ *
4588
+ * @since 3.4.0
4589
+ * @experimental
4590
+ * @category collecting & elements
4591
+ */
4592
+ <A, B, E, R>(
4593
+ iterable: Iterable<A>,
4594
+ f: (a: A, index: number) => Micro<B, E, R>,
4595
+ options?: {
4596
+ readonly concurrency?: Concurrency | undefined
4597
+ readonly discard?: false | undefined
4598
+ }
4599
+ ): Micro<Array<B>, E, R>
4600
+ /**
4601
+ * For each element of the provided iterable, run the effect and collect the results.
4602
+ *
4603
+ * If the `discard` option is set to `true`, the results will be discarded and
4604
+ * the effect will return `void`.
4605
+ *
4606
+ * The `concurrency` option can be set to control how many effects are run in
4607
+ * parallel. By default, the effects are run sequentially.
4608
+ *
4609
+ * @since 3.4.0
4610
+ * @experimental
4611
+ * @category collecting & elements
4612
+ */
4613
+ <A, B, E, R>(
4614
+ iterable: Iterable<A>,
4615
+ f: (a: A, index: number) => Micro<B, E, R>,
4616
+ options: {
4617
+ readonly concurrency?: Concurrency | undefined
4618
+ readonly discard: true
4619
+ }
4620
+ ): Micro<void, E, R>
3510
4621
  } = <
3511
4622
  A,
3512
4623
  B,
@@ -3648,7 +4759,21 @@ export const Do: Micro<{}> = succeed({})
3648
4759
  * @category do notation
3649
4760
  */
3650
4761
  export const bindTo: {
4762
+ /**
4763
+ * Bind the success value of this `Micro` effect to the provided name.
4764
+ *
4765
+ * @since 3.4.0
4766
+ * @experimental
4767
+ * @category do notation
4768
+ */
3651
4769
  <N extends string>(name: N): <A, E, R>(self: Micro<A, E, R>) => Micro<{ [K in N]: A }, E, R>
4770
+ /**
4771
+ * Bind the success value of this `Micro` effect to the provided name.
4772
+ *
4773
+ * @since 3.4.0
4774
+ * @experimental
4775
+ * @category do notation
4776
+ */
3652
4777
  <A, E, R, N extends string>(self: Micro<A, E, R>, name: N): Micro<{ [K in N]: A }, E, R>
3653
4778
  } = doNotation.bindTo<MicroTypeLambda>(map)
3654
4779
 
@@ -3660,10 +4785,24 @@ export const bindTo: {
3660
4785
  * @category do notation
3661
4786
  */
3662
4787
  export const bind: {
4788
+ /**
4789
+ * Bind the success value of this `Micro` effect to the provided name.
4790
+ *
4791
+ * @since 3.4.0
4792
+ * @experimental
4793
+ * @category do notation
4794
+ */
3663
4795
  <N extends string, A extends Record<string, any>, B, E2, R2>(
3664
4796
  name: N,
3665
4797
  f: (a: A) => Micro<B, E2, R2>
3666
4798
  ): <E, R>(self: Micro<A, E, R>) => Micro<Simplify<Omit<A, N> & { [K in N]: B }>, E | E2, R | R2>
4799
+ /**
4800
+ * Bind the success value of this `Micro` effect to the provided name.
4801
+ *
4802
+ * @since 3.4.0
4803
+ * @experimental
4804
+ * @category do notation
4805
+ */
3667
4806
  <A extends Record<string, any>, E, R, B, E2, R2, N extends string>(
3668
4807
  self: Micro<A, E, R>,
3669
4808
  name: N,
@@ -3905,7 +5044,27 @@ export const forkDaemon = <A, E, R>(self: Micro<A, E, R>): Micro<Handle<A, E>, n
3905
5044
  * @category handle & forking
3906
5045
  */
3907
5046
  export const forkIn: {
5047
+ /**
5048
+ * Run the `Micro` effect in a new `Handle` that can be awaited, joined, or
5049
+ * aborted.
5050
+ *
5051
+ * The lifetime of the handle will be attached to the provided `MicroScope`.
5052
+ *
5053
+ * @since 3.4.0
5054
+ * @experimental
5055
+ * @category handle & forking
5056
+ */
3908
5057
  (scope: MicroScope): <A, E, R>(self: Micro<A, E, R>) => Micro<Handle<A, E>, never, R>
5058
+ /**
5059
+ * Run the `Micro` effect in a new `Handle` that can be awaited, joined, or
5060
+ * aborted.
5061
+ *
5062
+ * The lifetime of the handle will be attached to the provided `MicroScope`.
5063
+ *
5064
+ * @since 3.4.0
5065
+ * @experimental
5066
+ * @category handle & forking
5067
+ */
3909
5068
  <A, E, R>(self: Micro<A, E, R>, scope: MicroScope): Micro<Handle<A, E>, never, R>
3910
5069
  } = dual(
3911
5070
  2,
@@ -4097,6 +5256,9 @@ const YieldableError: new(message?: string) => YieldableError = (function() {
4097
5256
  toJSON() {
4098
5257
  return { ...this }
4099
5258
  }
5259
+ [DenoInspectSymbol](): string {
5260
+ return this[NodeInspectSymbol]()
5261
+ }
4100
5262
  [NodeInspectSymbol](): string {
4101
5263
  const stack = this.stack
4102
5264
  if (stack) {