@fncts/io 0.0.20 → 0.0.21

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 (1089) hide show
  1. package/Cached/api.d.ts +2 -2
  2. package/Channel/ChildExecutorDecision/api.d.ts +2 -2
  3. package/Channel/UpstreamPullRequest/api.d.ts +2 -2
  4. package/Channel/api/interruptWhen.d.ts +5 -5
  5. package/Channel/api/mapOutIOC.d.ts +3 -3
  6. package/Channel/api/mergeAll.d.ts +2 -2
  7. package/Channel/api/mergeAllUnboundedWith.d.ts +2 -2
  8. package/Channel/api/mergeAllWith.d.ts +2 -2
  9. package/Channel/api/mergeMap.d.ts +2 -2
  10. package/Channel/api/mergeWith.d.ts +2 -2
  11. package/Channel/api/zipC.d.ts +6 -6
  12. package/Channel/api.d.ts +64 -64
  13. package/Channel/core-api.d.ts +11 -11
  14. package/Channel/definition.d.ts +35 -21
  15. package/Fiber/api/evalOn.d.ts +3 -3
  16. package/Fiber/api/evalOnIO.d.ts +3 -3
  17. package/Fiber/api/interruptAs.d.ts +3 -3
  18. package/Fiber/api/interruptAsFork.d.ts +3 -3
  19. package/Fiber/api/mapFiber.d.ts +2 -2
  20. package/Fiber/api/mapIO.d.ts +5 -5
  21. package/Fiber/api/zipWith.d.ts +2 -2
  22. package/Fiber.d.ts +1 -0
  23. package/FiberRef/api/locallyScoped.d.ts +2 -2
  24. package/FiberRef/api/locallyScopedWith.d.ts +2 -2
  25. package/FiberRef/api.d.ts +18 -18
  26. package/FiberRefs/api.d.ts +2 -2
  27. package/FiberRefs/join.d.ts +3 -3
  28. package/Future/api.d.ts +21 -21
  29. package/Hub/constructors.d.ts +49 -0
  30. package/Hub/definition.d.ts +37 -81
  31. package/Hub/internal.d.ts +4 -11
  32. package/Hub.d.ts +1 -1
  33. package/IO/api/acquireRelease.d.ts +1 -1
  34. package/IO/api/acquireReleaseExit.d.ts +1 -1
  35. package/IO/api/bracket.d.ts +1 -1
  36. package/IO/api/bracketExit.d.ts +1 -1
  37. package/IO/api/concurrency.d.ts +2 -2
  38. package/IO/api/core-scope.d.ts +5 -5
  39. package/IO/api/ensuringChildren.d.ts +3 -3
  40. package/IO/api/environment.d.ts +11 -15
  41. package/IO/api/foreachC.d.ts +2 -2
  42. package/IO/api/foreachExec.d.ts +1 -1
  43. package/IO/api/forkIn.d.ts +3 -3
  44. package/IO/api/fulfill.d.ts +3 -3
  45. package/IO/api/interrupt.d.ts +6 -6
  46. package/IO/api/onExit.d.ts +3 -3
  47. package/IO/api/onTermination.d.ts +4 -4
  48. package/IO/api/provideLayer.d.ts +3 -3
  49. package/IO/api/provideSomeLayer.d.ts +3 -7
  50. package/IO/api/race.d.ts +2 -2
  51. package/IO/api/raceFirst.d.ts +2 -2
  52. package/IO/api/repeat.d.ts +3 -3
  53. package/IO/api/retry.d.ts +7 -7
  54. package/IO/api/schedule.d.ts +5 -5
  55. package/IO/api/scoped.d.ts +2 -2
  56. package/IO/api/supervised.d.ts +3 -3
  57. package/IO/api/timeout.d.ts +5 -5
  58. package/IO/api/withFinalizer.d.ts +3 -3
  59. package/IO/api/withFinalizerExit.d.ts +3 -3
  60. package/IO/api/withRuntimeConfig.d.ts +3 -3
  61. package/IO/api/zipC.d.ts +4 -4
  62. package/IO/api.d.ts +179 -176
  63. package/IO/definition.d.ts +15 -9
  64. package/Layer/MemoMap.d.ts +4 -4
  65. package/Layer/api.d.ts +28 -28
  66. package/LogLevel.d.ts +12 -12
  67. package/LogSpan.d.ts +2 -2
  68. package/Logger/api.d.ts +5 -5
  69. package/Queue/constructors.d.ts +2 -1
  70. package/Queue/definition.d.ts +91 -82
  71. package/Queue/internal.d.ts +7 -9
  72. package/Queue.d.ts +0 -2
  73. package/Ref/Atomic.d.ts +15 -2
  74. package/Ref/Synchronized.d.ts +72 -0
  75. package/Ref/constructors.d.ts +7 -0
  76. package/Ref/definition.d.ts +60 -58
  77. package/Ref.d.ts +1 -6
  78. package/STM/api/core-api.d.ts +10 -10
  79. package/STM/api.d.ts +61 -61
  80. package/STM/internal/Journal.d.ts +4 -4
  81. package/Schedule/Decision.d.ts +2 -2
  82. package/Schedule/api.d.ts +94 -94
  83. package/Scope/ReleaseMap/api/releaseAll.d.ts +2 -2
  84. package/Scope/ReleaseMap/api.d.ts +10 -10
  85. package/Scope/api.d.ts +8 -8
  86. package/Sink/api.d.ts +68 -68
  87. package/State/api.d.ts +4 -4
  88. package/State/internal.d.ts +1 -1
  89. package/Stream/api/zipAllWith.d.ts +2 -2
  90. package/Stream/api/zipWith.d.ts +2 -2
  91. package/Stream/api/zipWithChunks.d.ts +2 -2
  92. package/Stream/api.d.ts +216 -205
  93. package/Stream/internal/DebounceState.d.ts +3 -3
  94. package/Stream/internal/Handoff.d.ts +5 -5
  95. package/Stream/internal/Pull.d.ts +2 -2
  96. package/Stream/internal/SinkEndReason.d.ts +3 -3
  97. package/Stream/internal/Take.d.ts +8 -8
  98. package/SubscriptionRef.d.ts +29 -0
  99. package/Supervisor/api.d.ts +4 -4
  100. package/SupervisorPatch.d.ts +4 -4
  101. package/TFuture/api.d.ts +7 -7
  102. package/TReentrantLock/api.d.ts +4 -4
  103. package/TRef/api.d.ts +24 -24
  104. package/TSemaphore/api.d.ts +4 -4
  105. package/TSemaphore/constructors.d.ts +6 -0
  106. package/_cjs/Cached/api.cjs +9 -9
  107. package/_cjs/Cached/api.cjs.map +1 -1
  108. package/_cjs/Channel/ChildExecutorDecision/api.cjs +19 -17
  109. package/_cjs/Channel/ChildExecutorDecision/api.cjs.map +1 -1
  110. package/_cjs/Channel/UpstreamPullRequest/api.cjs +16 -14
  111. package/_cjs/Channel/UpstreamPullRequest/api.cjs.map +1 -1
  112. package/_cjs/Channel/api/interruptWhen.cjs +14 -10
  113. package/_cjs/Channel/api/interruptWhen.cjs.map +1 -1
  114. package/_cjs/Channel/api/mapOutIOC.cjs +25 -25
  115. package/_cjs/Channel/api/mapOutIOC.cjs.map +1 -1
  116. package/_cjs/Channel/api/mergeAll.cjs +6 -4
  117. package/_cjs/Channel/api/mergeAll.cjs.map +1 -1
  118. package/_cjs/Channel/api/mergeAllUnboundedWith.cjs +6 -4
  119. package/_cjs/Channel/api/mergeAllUnboundedWith.cjs.map +1 -1
  120. package/_cjs/Channel/api/mergeAllWith.cjs +48 -52
  121. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  122. package/_cjs/Channel/api/mergeMap.cjs +6 -4
  123. package/_cjs/Channel/api/mergeMap.cjs.map +1 -1
  124. package/_cjs/Channel/api/mergeWith.cjs +48 -46
  125. package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
  126. package/_cjs/Channel/api/run.cjs +1 -1
  127. package/_cjs/Channel/api/run.cjs.map +1 -1
  128. package/_cjs/Channel/api/runScoped.cjs +2 -2
  129. package/_cjs/Channel/api/runScoped.cjs.map +1 -1
  130. package/_cjs/Channel/api/toPull.cjs +3 -3
  131. package/_cjs/Channel/api/toPull.cjs.map +1 -1
  132. package/_cjs/Channel/api/zipC.cjs +20 -14
  133. package/_cjs/Channel/api/zipC.cjs.map +1 -1
  134. package/_cjs/Channel/api.cjs +264 -218
  135. package/_cjs/Channel/api.cjs.map +1 -1
  136. package/_cjs/Channel/core-api.cjs +34 -24
  137. package/_cjs/Channel/core-api.cjs.map +1 -1
  138. package/_cjs/Channel/definition.cjs +1 -1
  139. package/_cjs/Channel/definition.cjs.map +1 -1
  140. package/_cjs/Channel/internal/ChannelExecutor.cjs +83 -83
  141. package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
  142. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +22 -24
  143. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
  144. package/_cjs/Differ/api.cjs +5 -5
  145. package/_cjs/Differ/api.cjs.map +1 -1
  146. package/_cjs/Fiber/FiberContext.cjs +48 -48
  147. package/_cjs/Fiber/FiberContext.cjs.map +1 -1
  148. package/_cjs/Fiber/api/awaitAll.cjs +1 -1
  149. package/_cjs/Fiber/api/awaitAll.cjs.map +1 -1
  150. package/_cjs/Fiber/api/collectAll.cjs +1 -1
  151. package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
  152. package/_cjs/Fiber/api/evalOn.cjs +12 -10
  153. package/_cjs/Fiber/api/evalOn.cjs.map +1 -1
  154. package/_cjs/Fiber/api/evalOnIO.cjs +6 -4
  155. package/_cjs/Fiber/api/evalOnIO.cjs.map +1 -1
  156. package/_cjs/Fiber/api/fromIO.cjs +1 -1
  157. package/_cjs/Fiber/api/fromIO.cjs.map +1 -1
  158. package/_cjs/Fiber/api/interrupt.cjs +1 -1
  159. package/_cjs/Fiber/api/interrupt.cjs.map +1 -1
  160. package/_cjs/Fiber/api/interruptAll.cjs +2 -2
  161. package/_cjs/Fiber/api/interruptAll.cjs.map +1 -1
  162. package/_cjs/Fiber/api/interruptAs.cjs +6 -4
  163. package/_cjs/Fiber/api/interruptAs.cjs.map +1 -1
  164. package/_cjs/Fiber/api/interruptAsFork.cjs +6 -4
  165. package/_cjs/Fiber/api/interruptAsFork.cjs.map +1 -1
  166. package/_cjs/Fiber/api/interruptFork.cjs +1 -1
  167. package/_cjs/Fiber/api/interruptFork.cjs.map +1 -1
  168. package/_cjs/Fiber/api/join.cjs +1 -1
  169. package/_cjs/Fiber/api/join.cjs.map +1 -1
  170. package/_cjs/Fiber/api/joinAll.cjs +1 -1
  171. package/_cjs/Fiber/api/joinAll.cjs.map +1 -1
  172. package/_cjs/Fiber/api/mapFiber.cjs +6 -4
  173. package/_cjs/Fiber/api/mapFiber.cjs.map +1 -1
  174. package/_cjs/Fiber/api/mapIO.cjs +14 -10
  175. package/_cjs/Fiber/api/mapIO.cjs.map +1 -1
  176. package/_cjs/Fiber/api/zipWith.cjs +6 -4
  177. package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
  178. package/_cjs/Fiber/definition.cjs.map +1 -1
  179. package/_cjs/Fiber.cjs +13 -0
  180. package/_cjs/Fiber.cjs.map +1 -1
  181. package/_cjs/FiberRef/api/locallyScoped.cjs +6 -4
  182. package/_cjs/FiberRef/api/locallyScoped.cjs.map +1 -1
  183. package/_cjs/FiberRef/api/locallyScopedWith.cjs +5 -3
  184. package/_cjs/FiberRef/api/locallyScopedWith.cjs.map +1 -1
  185. package/_cjs/FiberRef/api.cjs +64 -47
  186. package/_cjs/FiberRef/api.cjs.map +1 -1
  187. package/_cjs/FiberRef/constructors.cjs +1 -1
  188. package/_cjs/FiberRef/constructors.cjs.map +1 -1
  189. package/_cjs/FiberRef.cjs.map +1 -1
  190. package/_cjs/FiberRefs/api.cjs +15 -13
  191. package/_cjs/FiberRefs/api.cjs.map +1 -1
  192. package/_cjs/FiberRefs/join.cjs +37 -35
  193. package/_cjs/FiberRefs/join.cjs.map +1 -1
  194. package/_cjs/FiberState/definition.cjs.map +1 -1
  195. package/_cjs/Future/api.cjs +97 -79
  196. package/_cjs/Future/api.cjs.map +1 -1
  197. package/_cjs/Future/constructors.cjs +1 -1
  198. package/_cjs/Future/constructors.cjs.map +1 -1
  199. package/_cjs/Hub/constructors.cjs +93 -0
  200. package/_cjs/Hub/constructors.cjs.map +1 -0
  201. package/_cjs/Hub/definition.cjs +104 -13
  202. package/_cjs/Hub/definition.cjs.map +1 -1
  203. package/_cjs/Hub/internal.cjs +104 -129
  204. package/_cjs/Hub/internal.cjs.map +1 -1
  205. package/_cjs/Hub.cjs +4 -4
  206. package/_cjs/IO/api/acquireReleaseExit.cjs +1 -1
  207. package/_cjs/IO/api/acquireReleaseExit.cjs.map +1 -1
  208. package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs +1 -1
  209. package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs.map +1 -1
  210. package/_cjs/IO/api/addFinalizerExit.cjs +1 -1
  211. package/_cjs/IO/api/addFinalizerExit.cjs.map +1 -1
  212. package/_cjs/IO/api/asyncIO.cjs +4 -4
  213. package/_cjs/IO/api/asyncIO.cjs.map +1 -1
  214. package/_cjs/IO/api/bracket.cjs +3 -3
  215. package/_cjs/IO/api/bracket.cjs.map +1 -1
  216. package/_cjs/IO/api/bracketExit.cjs +3 -3
  217. package/_cjs/IO/api/bracketExit.cjs.map +1 -1
  218. package/_cjs/IO/api/clockWith.cjs +2 -2
  219. package/_cjs/IO/api/clockWith.cjs.map +1 -1
  220. package/_cjs/IO/api/concurrency.cjs +9 -7
  221. package/_cjs/IO/api/concurrency.cjs.map +1 -1
  222. package/_cjs/IO/api/concurrentFinalizers.cjs +1 -1
  223. package/_cjs/IO/api/concurrentFinalizers.cjs.map +1 -1
  224. package/_cjs/IO/api/consoleWith.cjs +2 -2
  225. package/_cjs/IO/api/consoleWith.cjs.map +1 -1
  226. package/_cjs/IO/api/core-scope.cjs +45 -41
  227. package/_cjs/IO/api/core-scope.cjs.map +1 -1
  228. package/_cjs/IO/api/ensuringChildren.cjs +5 -3
  229. package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
  230. package/_cjs/IO/api/environment.cjs +35 -35
  231. package/_cjs/IO/api/environment.cjs.map +1 -1
  232. package/_cjs/IO/api/foreachC.cjs +19 -23
  233. package/_cjs/IO/api/foreachC.cjs.map +1 -1
  234. package/_cjs/IO/api/foreachExec.cjs +3 -3
  235. package/_cjs/IO/api/foreachExec.cjs.map +1 -1
  236. package/_cjs/IO/api/forkAll.cjs +1 -1
  237. package/_cjs/IO/api/forkAll.cjs.map +1 -1
  238. package/_cjs/IO/api/forkIn.cjs +8 -6
  239. package/_cjs/IO/api/forkIn.cjs.map +1 -1
  240. package/_cjs/IO/api/forkScoped.cjs +1 -1
  241. package/_cjs/IO/api/forkScoped.cjs.map +1 -1
  242. package/_cjs/IO/api/fulfill.cjs +8 -6
  243. package/_cjs/IO/api/fulfill.cjs.map +1 -1
  244. package/_cjs/IO/api/interrupt.cjs +36 -30
  245. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  246. package/_cjs/IO/api/memoize.cjs +1 -1
  247. package/_cjs/IO/api/memoize.cjs.map +1 -1
  248. package/_cjs/IO/api/onExit.cjs +6 -4
  249. package/_cjs/IO/api/onExit.cjs.map +1 -1
  250. package/_cjs/IO/api/onTermination.cjs +5 -3
  251. package/_cjs/IO/api/onTermination.cjs.map +1 -1
  252. package/_cjs/IO/api/once.cjs +3 -5
  253. package/_cjs/IO/api/once.cjs.map +1 -1
  254. package/_cjs/IO/api/provideLayer.cjs +6 -4
  255. package/_cjs/IO/api/provideLayer.cjs.map +1 -1
  256. package/_cjs/IO/api/provideSomeLayer.cjs +5 -15
  257. package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
  258. package/_cjs/IO/api/race.cjs +6 -4
  259. package/_cjs/IO/api/race.cjs.map +1 -1
  260. package/_cjs/IO/api/raceFirst.cjs +6 -4
  261. package/_cjs/IO/api/raceFirst.cjs.map +1 -1
  262. package/_cjs/IO/api/randomWith.cjs +1 -1
  263. package/_cjs/IO/api/randomWith.cjs.map +1 -1
  264. package/_cjs/IO/api/repeat.cjs +12 -12
  265. package/_cjs/IO/api/repeat.cjs.map +1 -1
  266. package/_cjs/IO/api/retry.cjs +14 -14
  267. package/_cjs/IO/api/retry.cjs.map +1 -1
  268. package/_cjs/IO/api/schedule.cjs +15 -11
  269. package/_cjs/IO/api/schedule.cjs.map +1 -1
  270. package/_cjs/IO/api/scoped.cjs +6 -6
  271. package/_cjs/IO/api/scoped.cjs.map +1 -1
  272. package/_cjs/IO/api/sequenceT.cjs +1 -1
  273. package/_cjs/IO/api/sequenceT.cjs.map +1 -1
  274. package/_cjs/IO/api/stateful.cjs.map +1 -1
  275. package/_cjs/IO/api/supervised.cjs +6 -4
  276. package/_cjs/IO/api/supervised.cjs.map +1 -1
  277. package/_cjs/IO/api/timeout.cjs +10 -6
  278. package/_cjs/IO/api/timeout.cjs.map +1 -1
  279. package/_cjs/IO/api/withChildren.cjs +1 -1
  280. package/_cjs/IO/api/withChildren.cjs.map +1 -1
  281. package/_cjs/IO/api/withEarlyRelease.cjs +1 -1
  282. package/_cjs/IO/api/withEarlyRelease.cjs.map +1 -1
  283. package/_cjs/IO/api/withFinalizer.cjs +6 -4
  284. package/_cjs/IO/api/withFinalizer.cjs.map +1 -1
  285. package/_cjs/IO/api/withFinalizerExit.cjs +6 -4
  286. package/_cjs/IO/api/withFinalizerExit.cjs.map +1 -1
  287. package/_cjs/IO/api/withRuntimeConfig.cjs +6 -4
  288. package/_cjs/IO/api/withRuntimeConfig.cjs.map +1 -1
  289. package/_cjs/IO/api/zipC.cjs +21 -17
  290. package/_cjs/IO/api/zipC.cjs.map +1 -1
  291. package/_cjs/IO/api.cjs +634 -509
  292. package/_cjs/IO/api.cjs.map +1 -1
  293. package/_cjs/IO/definition.cjs.map +1 -1
  294. package/_cjs/IO/runtime.cjs +7 -7
  295. package/_cjs/IO/runtime.cjs.map +1 -1
  296. package/_cjs/IO.cjs.map +1 -1
  297. package/_cjs/IOEnv/definition.cjs +1 -1
  298. package/_cjs/IOEnv/definition.cjs.map +1 -1
  299. package/_cjs/IOEnv/live.cjs +1 -1
  300. package/_cjs/IOEnv/live.cjs.map +1 -1
  301. package/_cjs/Layer/MemoMap.cjs +86 -92
  302. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  303. package/_cjs/Layer/api.cjs +110 -81
  304. package/_cjs/Layer/api.cjs.map +1 -1
  305. package/_cjs/Layer/definition.cjs.map +1 -1
  306. package/_cjs/LogLevel.cjs +24 -16
  307. package/_cjs/LogLevel.cjs.map +1 -1
  308. package/_cjs/LogSpan.cjs +18 -16
  309. package/_cjs/LogSpan.cjs.map +1 -1
  310. package/_cjs/Logger/api.cjs +18 -14
  311. package/_cjs/Logger/api.cjs.map +1 -1
  312. package/_cjs/Logger/constructors.cjs +1 -1
  313. package/_cjs/Logger/constructors.cjs.map +1 -1
  314. package/_cjs/Queue/constructors.cjs +19 -5
  315. package/_cjs/Queue/constructors.cjs.map +1 -1
  316. package/_cjs/Queue/definition.cjs +191 -16
  317. package/_cjs/Queue/definition.cjs.map +1 -1
  318. package/_cjs/Queue/internal.cjs +27 -181
  319. package/_cjs/Queue/internal.cjs.map +1 -1
  320. package/_cjs/Queue/strategy.cjs +19 -19
  321. package/_cjs/Queue/strategy.cjs.map +1 -1
  322. package/_cjs/Queue.cjs +0 -26
  323. package/_cjs/Queue.cjs.map +1 -1
  324. package/_cjs/Random/live.cjs +2 -2
  325. package/_cjs/Random/live.cjs.map +1 -1
  326. package/_cjs/Ref/Atomic.cjs +47 -24
  327. package/_cjs/Ref/Atomic.cjs.map +1 -1
  328. package/_cjs/Ref/Synchronized.cjs +140 -0
  329. package/_cjs/Ref/Synchronized.cjs.map +1 -0
  330. package/_cjs/Ref/constructors.cjs +21 -2
  331. package/_cjs/Ref/constructors.cjs.map +1 -1
  332. package/_cjs/Ref/definition.cjs +105 -10
  333. package/_cjs/Ref/definition.cjs.map +1 -1
  334. package/_cjs/Ref.cjs +4 -69
  335. package/_cjs/Ref.cjs.map +1 -1
  336. package/_cjs/Reloadable/constructors.cjs +10 -10
  337. package/_cjs/Reloadable/constructors.cjs.map +1 -1
  338. package/_cjs/RuntimeConfig.cjs +2 -2
  339. package/_cjs/RuntimeConfig.cjs.map +1 -1
  340. package/_cjs/STM/api/core-api.cjs +36 -26
  341. package/_cjs/STM/api/core-api.cjs.map +1 -1
  342. package/_cjs/STM/api.cjs +217 -163
  343. package/_cjs/STM/api.cjs.map +1 -1
  344. package/_cjs/STM/driver.cjs +3 -3
  345. package/_cjs/STM/driver.cjs.map +1 -1
  346. package/_cjs/STM/internal/Entry.cjs.map +1 -1
  347. package/_cjs/STM/internal/Journal.cjs +33 -29
  348. package/_cjs/STM/internal/Journal.cjs.map +1 -1
  349. package/_cjs/STM.cjs.map +1 -1
  350. package/_cjs/Schedule/Decision.cjs +16 -14
  351. package/_cjs/Schedule/Decision.cjs.map +1 -1
  352. package/_cjs/Schedule/api/driver.cjs +16 -20
  353. package/_cjs/Schedule/api/driver.cjs.map +1 -1
  354. package/_cjs/Schedule/api.cjs +381 -290
  355. package/_cjs/Schedule/api.cjs.map +1 -1
  356. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +14 -14
  357. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
  358. package/_cjs/Scope/ReleaseMap/api.cjs +68 -61
  359. package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
  360. package/_cjs/Scope/api.cjs +34 -27
  361. package/_cjs/Scope/api.cjs.map +1 -1
  362. package/_cjs/ScopedRef/api.cjs +9 -13
  363. package/_cjs/ScopedRef/api.cjs.map +1 -1
  364. package/_cjs/ScopedRef/definition.cjs +1 -1
  365. package/_cjs/ScopedRef/definition.cjs.map +1 -1
  366. package/_cjs/Sink/api.cjs +307 -249
  367. package/_cjs/Sink/api.cjs.map +1 -1
  368. package/_cjs/State/api.cjs +18 -14
  369. package/_cjs/State/api.cjs.map +1 -1
  370. package/_cjs/Stream/api/zipAllWith.cjs +15 -13
  371. package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
  372. package/_cjs/Stream/api/zipWith.cjs +6 -4
  373. package/_cjs/Stream/api/zipWith.cjs.map +1 -1
  374. package/_cjs/Stream/api/zipWithChunks.cjs +13 -11
  375. package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
  376. package/_cjs/Stream/api.cjs +992 -788
  377. package/_cjs/Stream/api.cjs.map +1 -1
  378. package/_cjs/Stream/definition.cjs.map +1 -1
  379. package/_cjs/Stream/internal/DebounceState.cjs +21 -19
  380. package/_cjs/Stream/internal/DebounceState.cjs.map +1 -1
  381. package/_cjs/Stream/internal/Handoff.cjs +35 -33
  382. package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
  383. package/_cjs/Stream/internal/Pull.cjs +9 -11
  384. package/_cjs/Stream/internal/Pull.cjs.map +1 -1
  385. package/_cjs/Stream/internal/SinkEndReason.cjs +16 -14
  386. package/_cjs/Stream/internal/SinkEndReason.cjs.map +1 -1
  387. package/_cjs/Stream/internal/Take.cjs +32 -24
  388. package/_cjs/Stream/internal/Take.cjs.map +1 -1
  389. package/_cjs/Stream/internal/util.cjs +3 -3
  390. package/_cjs/Stream/internal/util.cjs.map +1 -1
  391. package/_cjs/SubscriptionRef.cjs +68 -0
  392. package/_cjs/SubscriptionRef.cjs.map +1 -0
  393. package/_cjs/Supervisor/api.cjs +24 -20
  394. package/_cjs/Supervisor/api.cjs.map +1 -1
  395. package/_cjs/Supervisor/constructors.cjs +2 -2
  396. package/_cjs/Supervisor/constructors.cjs.map +1 -1
  397. package/_cjs/Supervisor/definition.cjs +1 -1
  398. package/_cjs/Supervisor/definition.cjs.map +1 -1
  399. package/_cjs/SupervisorPatch.cjs +15 -11
  400. package/_cjs/SupervisorPatch.cjs.map +1 -1
  401. package/_cjs/TExit/definition.cjs.map +1 -1
  402. package/_cjs/TFuture/api.cjs +21 -15
  403. package/_cjs/TFuture/api.cjs.map +1 -1
  404. package/_cjs/TFuture/constructors.cjs +1 -1
  405. package/_cjs/TFuture/constructors.cjs.map +1 -1
  406. package/_cjs/TFuture/definition.cjs.map +1 -1
  407. package/_cjs/TReentrantLock/api.cjs +32 -28
  408. package/_cjs/TReentrantLock/api.cjs.map +1 -1
  409. package/_cjs/TReentrantLock/definition.cjs +4 -4
  410. package/_cjs/TReentrantLock/definition.cjs.map +1 -1
  411. package/_cjs/TRef/api.cjs +233 -209
  412. package/_cjs/TRef/api.cjs.map +1 -1
  413. package/_cjs/TRef/definition.cjs +4 -4
  414. package/_cjs/TRef/definition.cjs.map +1 -1
  415. package/_cjs/TSemaphore/api.cjs +27 -23
  416. package/_cjs/TSemaphore/api.cjs.map +1 -1
  417. package/_cjs/TSemaphore/constructors.cjs +18 -3
  418. package/_cjs/TSemaphore/constructors.cjs.map +1 -1
  419. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +21 -19
  420. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -1
  421. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +21 -19
  422. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -1
  423. package/_cjs/collection/immutable/Conc/filterIO.cjs +16 -14
  424. package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -1
  425. package/_cjs/collection/immutable/Conc/findIO.cjs +19 -17
  426. package/_cjs/collection/immutable/Conc/findIO.cjs.map +1 -1
  427. package/_cjs/collection/immutable/Conc/mapIO.cjs +11 -9
  428. package/_cjs/collection/immutable/Conc/mapIO.cjs.map +1 -1
  429. package/_cjs/collection/immutable/Conc/takeWhileIO.cjs +31 -29
  430. package/_cjs/collection/immutable/Conc/takeWhileIO.cjs.map +1 -1
  431. package/_cjs/data/Exit/foreachIO.cjs +6 -4
  432. package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
  433. package/_cjs/internal/Hub.cjs +13 -11
  434. package/_cjs/internal/Hub.cjs.map +1 -1
  435. package/_cjs/internal/IsFatal.cjs +18 -16
  436. package/_cjs/internal/IsFatal.cjs.map +1 -1
  437. package/_cjs/internal/MutableQueue.cjs +11 -9
  438. package/_cjs/internal/MutableQueue.cjs.map +1 -1
  439. package/_cjs/internal/StackTraceBuilder.cjs.map +1 -1
  440. package/_mjs/Cached/api.mjs +6 -6
  441. package/_mjs/Cached/api.mjs.map +1 -1
  442. package/_mjs/Channel/ChildExecutorDecision/api.mjs +18 -16
  443. package/_mjs/Channel/ChildExecutorDecision/api.mjs.map +1 -1
  444. package/_mjs/Channel/UpstreamPullRequest/api.mjs +14 -12
  445. package/_mjs/Channel/UpstreamPullRequest/api.mjs.map +1 -1
  446. package/_mjs/Channel/api/interruptWhen.mjs +11 -7
  447. package/_mjs/Channel/api/interruptWhen.mjs.map +1 -1
  448. package/_mjs/Channel/api/mapOutIOC.mjs +24 -23
  449. package/_mjs/Channel/api/mapOutIOC.mjs.map +1 -1
  450. package/_mjs/Channel/api/mergeAll.mjs +5 -3
  451. package/_mjs/Channel/api/mergeAll.mjs.map +1 -1
  452. package/_mjs/Channel/api/mergeAllUnboundedWith.mjs +5 -3
  453. package/_mjs/Channel/api/mergeAllUnboundedWith.mjs.map +1 -1
  454. package/_mjs/Channel/api/mergeAllWith.mjs +45 -46
  455. package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
  456. package/_mjs/Channel/api/mergeMap.mjs +5 -3
  457. package/_mjs/Channel/api/mergeMap.mjs.map +1 -1
  458. package/_mjs/Channel/api/mergeWith.mjs +46 -44
  459. package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
  460. package/_mjs/Channel/api/run.mjs +1 -1
  461. package/_mjs/Channel/api/run.mjs.map +1 -1
  462. package/_mjs/Channel/api/runScoped.mjs +2 -2
  463. package/_mjs/Channel/api/runScoped.mjs.map +1 -1
  464. package/_mjs/Channel/api/toPull.mjs +3 -3
  465. package/_mjs/Channel/api/toPull.mjs.map +1 -1
  466. package/_mjs/Channel/api/zipC.mjs +16 -10
  467. package/_mjs/Channel/api/zipC.mjs.map +1 -1
  468. package/_mjs/Channel/api.mjs +224 -173
  469. package/_mjs/Channel/api.mjs.map +1 -1
  470. package/_mjs/Channel/core-api.mjs +28 -18
  471. package/_mjs/Channel/core-api.mjs.map +1 -1
  472. package/_mjs/Channel/definition.mjs +1 -1
  473. package/_mjs/Channel/definition.mjs.map +1 -1
  474. package/_mjs/Channel/internal/ChannelExecutor.mjs +83 -83
  475. package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
  476. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +22 -23
  477. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
  478. package/_mjs/Differ/api.mjs +5 -5
  479. package/_mjs/Differ/api.mjs.map +1 -1
  480. package/_mjs/Fiber/FiberContext.mjs +48 -48
  481. package/_mjs/Fiber/FiberContext.mjs.map +1 -1
  482. package/_mjs/Fiber/api/awaitAll.mjs +1 -1
  483. package/_mjs/Fiber/api/awaitAll.mjs.map +1 -1
  484. package/_mjs/Fiber/api/collectAll.mjs +1 -1
  485. package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
  486. package/_mjs/Fiber/api/evalOn.mjs +11 -9
  487. package/_mjs/Fiber/api/evalOn.mjs.map +1 -1
  488. package/_mjs/Fiber/api/evalOnIO.mjs +5 -3
  489. package/_mjs/Fiber/api/evalOnIO.mjs.map +1 -1
  490. package/_mjs/Fiber/api/fromIO.mjs +1 -1
  491. package/_mjs/Fiber/api/fromIO.mjs.map +1 -1
  492. package/_mjs/Fiber/api/interrupt.mjs +1 -1
  493. package/_mjs/Fiber/api/interrupt.mjs.map +1 -1
  494. package/_mjs/Fiber/api/interruptAll.mjs +2 -2
  495. package/_mjs/Fiber/api/interruptAll.mjs.map +1 -1
  496. package/_mjs/Fiber/api/interruptAs.mjs +6 -4
  497. package/_mjs/Fiber/api/interruptAs.mjs.map +1 -1
  498. package/_mjs/Fiber/api/interruptAsFork.mjs +6 -4
  499. package/_mjs/Fiber/api/interruptAsFork.mjs.map +1 -1
  500. package/_mjs/Fiber/api/interruptFork.mjs +1 -1
  501. package/_mjs/Fiber/api/interruptFork.mjs.map +1 -1
  502. package/_mjs/Fiber/api/join.mjs +1 -1
  503. package/_mjs/Fiber/api/join.mjs.map +1 -1
  504. package/_mjs/Fiber/api/joinAll.mjs +1 -1
  505. package/_mjs/Fiber/api/joinAll.mjs.map +1 -1
  506. package/_mjs/Fiber/api/mapFiber.mjs +5 -3
  507. package/_mjs/Fiber/api/mapFiber.mjs.map +1 -1
  508. package/_mjs/Fiber/api/mapIO.mjs +11 -7
  509. package/_mjs/Fiber/api/mapIO.mjs.map +1 -1
  510. package/_mjs/Fiber/api/zipWith.mjs +5 -3
  511. package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
  512. package/_mjs/Fiber/definition.mjs.map +1 -1
  513. package/_mjs/Fiber.mjs +1 -0
  514. package/_mjs/Fiber.mjs.map +1 -1
  515. package/_mjs/FiberRef/api/locallyScoped.mjs +5 -3
  516. package/_mjs/FiberRef/api/locallyScoped.mjs.map +1 -1
  517. package/_mjs/FiberRef/api/locallyScopedWith.mjs +5 -3
  518. package/_mjs/FiberRef/api/locallyScopedWith.mjs.map +1 -1
  519. package/_mjs/FiberRef/api.mjs +52 -36
  520. package/_mjs/FiberRef/api.mjs.map +1 -1
  521. package/_mjs/FiberRef/constructors.mjs +1 -1
  522. package/_mjs/FiberRef/constructors.mjs.map +1 -1
  523. package/_mjs/FiberRef.mjs.map +1 -1
  524. package/_mjs/FiberRefs/api.mjs +14 -12
  525. package/_mjs/FiberRefs/api.mjs.map +1 -1
  526. package/_mjs/FiberRefs/join.mjs +35 -33
  527. package/_mjs/FiberRefs/join.mjs.map +1 -1
  528. package/_mjs/FiberState/definition.mjs.map +1 -1
  529. package/_mjs/Future/api.mjs +84 -66
  530. package/_mjs/Future/api.mjs.map +1 -1
  531. package/_mjs/Future/constructors.mjs +1 -1
  532. package/_mjs/Future/constructors.mjs.map +1 -1
  533. package/_mjs/Hub/constructors.mjs +66 -0
  534. package/_mjs/Hub/constructors.mjs.map +1 -0
  535. package/_mjs/Hub/definition.mjs +88 -9
  536. package/_mjs/Hub/definition.mjs.map +1 -1
  537. package/_mjs/Hub/internal.mjs +105 -122
  538. package/_mjs/Hub/internal.mjs.map +1 -1
  539. package/_mjs/Hub.mjs +1 -1
  540. package/_mjs/Hub.mjs.map +1 -1
  541. package/_mjs/IO/api/acquireReleaseExit.mjs +1 -1
  542. package/_mjs/IO/api/acquireReleaseExit.mjs.map +1 -1
  543. package/_mjs/IO/api/acquireReleaseInterruptibleExit.mjs +1 -1
  544. package/_mjs/IO/api/acquireReleaseInterruptibleExit.mjs.map +1 -1
  545. package/_mjs/IO/api/addFinalizerExit.mjs +1 -1
  546. package/_mjs/IO/api/addFinalizerExit.mjs.map +1 -1
  547. package/_mjs/IO/api/asyncIO.mjs +4 -4
  548. package/_mjs/IO/api/asyncIO.mjs.map +1 -1
  549. package/_mjs/IO/api/bracket.mjs +2 -2
  550. package/_mjs/IO/api/bracket.mjs.map +1 -1
  551. package/_mjs/IO/api/bracketExit.mjs +2 -2
  552. package/_mjs/IO/api/bracketExit.mjs.map +1 -1
  553. package/_mjs/IO/api/clockWith.mjs +2 -2
  554. package/_mjs/IO/api/clockWith.mjs.map +1 -1
  555. package/_mjs/IO/api/concurrency.mjs +8 -6
  556. package/_mjs/IO/api/concurrency.mjs.map +1 -1
  557. package/_mjs/IO/api/concurrentFinalizers.mjs +1 -1
  558. package/_mjs/IO/api/concurrentFinalizers.mjs.map +1 -1
  559. package/_mjs/IO/api/consoleWith.mjs +2 -2
  560. package/_mjs/IO/api/consoleWith.mjs.map +1 -1
  561. package/_mjs/IO/api/core-scope.mjs +40 -36
  562. package/_mjs/IO/api/core-scope.mjs.map +1 -1
  563. package/_mjs/IO/api/ensuringChildren.mjs +5 -3
  564. package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
  565. package/_mjs/IO/api/environment.mjs +29 -27
  566. package/_mjs/IO/api/environment.mjs.map +1 -1
  567. package/_mjs/IO/api/foreachC.mjs +17 -19
  568. package/_mjs/IO/api/foreachC.mjs.map +1 -1
  569. package/_mjs/IO/api/foreachExec.mjs +2 -2
  570. package/_mjs/IO/api/foreachExec.mjs.map +1 -1
  571. package/_mjs/IO/api/forkAll.mjs +1 -1
  572. package/_mjs/IO/api/forkAll.mjs.map +1 -1
  573. package/_mjs/IO/api/forkIn.mjs +7 -5
  574. package/_mjs/IO/api/forkIn.mjs.map +1 -1
  575. package/_mjs/IO/api/forkScoped.mjs +1 -1
  576. package/_mjs/IO/api/forkScoped.mjs.map +1 -1
  577. package/_mjs/IO/api/fulfill.mjs +7 -5
  578. package/_mjs/IO/api/fulfill.mjs.map +1 -1
  579. package/_mjs/IO/api/interrupt.mjs +34 -28
  580. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  581. package/_mjs/IO/api/memoize.mjs +1 -1
  582. package/_mjs/IO/api/memoize.mjs.map +1 -1
  583. package/_mjs/IO/api/onExit.mjs +5 -3
  584. package/_mjs/IO/api/onExit.mjs.map +1 -1
  585. package/_mjs/IO/api/onTermination.mjs +5 -3
  586. package/_mjs/IO/api/onTermination.mjs.map +1 -1
  587. package/_mjs/IO/api/once.mjs +3 -4
  588. package/_mjs/IO/api/once.mjs.map +1 -1
  589. package/_mjs/IO/api/provideLayer.mjs +5 -3
  590. package/_mjs/IO/api/provideLayer.mjs.map +1 -1
  591. package/_mjs/IO/api/provideSomeLayer.mjs +5 -11
  592. package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
  593. package/_mjs/IO/api/race.mjs +5 -3
  594. package/_mjs/IO/api/race.mjs.map +1 -1
  595. package/_mjs/IO/api/raceFirst.mjs +5 -3
  596. package/_mjs/IO/api/raceFirst.mjs.map +1 -1
  597. package/_mjs/IO/api/randomWith.mjs +1 -1
  598. package/_mjs/IO/api/randomWith.mjs.map +1 -1
  599. package/_mjs/IO/api/repeat.mjs +8 -8
  600. package/_mjs/IO/api/repeat.mjs.map +1 -1
  601. package/_mjs/IO/api/retry.mjs +12 -12
  602. package/_mjs/IO/api/retry.mjs.map +1 -1
  603. package/_mjs/IO/api/schedule.mjs +15 -11
  604. package/_mjs/IO/api/schedule.mjs.map +1 -1
  605. package/_mjs/IO/api/scoped.mjs +3 -3
  606. package/_mjs/IO/api/scoped.mjs.map +1 -1
  607. package/_mjs/IO/api/sequenceT.mjs +1 -1
  608. package/_mjs/IO/api/sequenceT.mjs.map +1 -1
  609. package/_mjs/IO/api/stateful.mjs.map +1 -1
  610. package/_mjs/IO/api/supervised.mjs +5 -3
  611. package/_mjs/IO/api/supervised.mjs.map +1 -1
  612. package/_mjs/IO/api/timeout.mjs +10 -6
  613. package/_mjs/IO/api/timeout.mjs.map +1 -1
  614. package/_mjs/IO/api/withChildren.mjs +1 -1
  615. package/_mjs/IO/api/withChildren.mjs.map +1 -1
  616. package/_mjs/IO/api/withEarlyRelease.mjs +1 -1
  617. package/_mjs/IO/api/withEarlyRelease.mjs.map +1 -1
  618. package/_mjs/IO/api/withFinalizer.mjs +5 -3
  619. package/_mjs/IO/api/withFinalizer.mjs.map +1 -1
  620. package/_mjs/IO/api/withFinalizerExit.mjs +5 -3
  621. package/_mjs/IO/api/withFinalizerExit.mjs.map +1 -1
  622. package/_mjs/IO/api/withRuntimeConfig.mjs +5 -3
  623. package/_mjs/IO/api/withRuntimeConfig.mjs.map +1 -1
  624. package/_mjs/IO/api/zipC.mjs +18 -14
  625. package/_mjs/IO/api/zipC.mjs.map +1 -1
  626. package/_mjs/IO/api.mjs +511 -387
  627. package/_mjs/IO/api.mjs.map +1 -1
  628. package/_mjs/IO/definition.mjs.map +1 -1
  629. package/_mjs/IO/runtime.mjs +7 -7
  630. package/_mjs/IO/runtime.mjs.map +1 -1
  631. package/_mjs/IO.mjs.map +1 -1
  632. package/_mjs/IOEnv/definition.mjs +1 -1
  633. package/_mjs/IOEnv/definition.mjs.map +1 -1
  634. package/_mjs/IOEnv/live.mjs +1 -1
  635. package/_mjs/IOEnv/live.mjs.map +1 -1
  636. package/_mjs/Layer/MemoMap.mjs +86 -87
  637. package/_mjs/Layer/MemoMap.mjs.map +1 -1
  638. package/_mjs/Layer/api.mjs +91 -63
  639. package/_mjs/Layer/api.mjs.map +1 -1
  640. package/_mjs/Layer/definition.mjs.map +1 -1
  641. package/_mjs/LogLevel.mjs +24 -16
  642. package/_mjs/LogLevel.mjs.map +1 -1
  643. package/_mjs/LogSpan.mjs +16 -14
  644. package/_mjs/LogSpan.mjs.map +1 -1
  645. package/_mjs/Logger/api.mjs +16 -12
  646. package/_mjs/Logger/api.mjs.map +1 -1
  647. package/_mjs/Logger/constructors.mjs +1 -1
  648. package/_mjs/Logger/constructors.mjs.map +1 -1
  649. package/_mjs/Queue/constructors.mjs +16 -5
  650. package/_mjs/Queue/constructors.mjs.map +1 -1
  651. package/_mjs/Queue/definition.mjs +174 -12
  652. package/_mjs/Queue/definition.mjs.map +1 -1
  653. package/_mjs/Queue/internal.mjs +21 -170
  654. package/_mjs/Queue/internal.mjs.map +1 -1
  655. package/_mjs/Queue/strategy.mjs +20 -23
  656. package/_mjs/Queue/strategy.mjs.map +1 -1
  657. package/_mjs/Queue.mjs +1 -3
  658. package/_mjs/Queue.mjs.map +1 -1
  659. package/_mjs/Random/live.mjs +2 -2
  660. package/_mjs/Random/live.mjs.map +1 -1
  661. package/_mjs/Ref/Atomic.mjs +39 -3
  662. package/_mjs/Ref/Atomic.mjs.map +1 -1
  663. package/_mjs/Ref/Synchronized.mjs +123 -0
  664. package/_mjs/Ref/Synchronized.mjs.map +1 -0
  665. package/_mjs/Ref/constructors.mjs +15 -1
  666. package/_mjs/Ref/constructors.mjs.map +1 -1
  667. package/_mjs/Ref/definition.mjs +96 -4
  668. package/_mjs/Ref/definition.mjs.map +1 -1
  669. package/_mjs/Ref.mjs +1 -8
  670. package/_mjs/Ref.mjs.map +1 -1
  671. package/_mjs/Reloadable/constructors.mjs +10 -10
  672. package/_mjs/Reloadable/constructors.mjs.map +1 -1
  673. package/_mjs/RuntimeConfig.mjs +2 -2
  674. package/_mjs/RuntimeConfig.mjs.map +1 -1
  675. package/_mjs/STM/api/core-api.mjs +29 -19
  676. package/_mjs/STM/api/core-api.mjs.map +1 -1
  677. package/_mjs/STM/api.mjs +180 -127
  678. package/_mjs/STM/api.mjs.map +1 -1
  679. package/_mjs/STM/driver.mjs +3 -3
  680. package/_mjs/STM/driver.mjs.map +1 -1
  681. package/_mjs/STM/internal/Entry.mjs.map +1 -1
  682. package/_mjs/STM/internal/Journal.mjs +33 -29
  683. package/_mjs/STM/internal/Journal.mjs.map +1 -1
  684. package/_mjs/STM.mjs.map +1 -1
  685. package/_mjs/Schedule/Decision.mjs +14 -12
  686. package/_mjs/Schedule/Decision.mjs.map +1 -1
  687. package/_mjs/Schedule/api/driver.mjs +15 -17
  688. package/_mjs/Schedule/api/driver.mjs.map +1 -1
  689. package/_mjs/Schedule/api.mjs +326 -234
  690. package/_mjs/Schedule/api.mjs.map +1 -1
  691. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +12 -11
  692. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
  693. package/_mjs/Scope/ReleaseMap/api.mjs +60 -51
  694. package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
  695. package/_mjs/Scope/api.mjs +28 -22
  696. package/_mjs/Scope/api.mjs.map +1 -1
  697. package/_mjs/ScopedRef/api.mjs +9 -11
  698. package/_mjs/ScopedRef/api.mjs.map +1 -1
  699. package/_mjs/ScopedRef/definition.mjs +1 -1
  700. package/_mjs/ScopedRef/definition.mjs.map +1 -1
  701. package/_mjs/Sink/api.mjs +301 -240
  702. package/_mjs/Sink/api.mjs.map +1 -1
  703. package/_mjs/State/api.mjs +16 -12
  704. package/_mjs/State/api.mjs.map +1 -1
  705. package/_mjs/Stream/api/zipAllWith.mjs +14 -12
  706. package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
  707. package/_mjs/Stream/api/zipWith.mjs +5 -3
  708. package/_mjs/Stream/api/zipWith.mjs.map +1 -1
  709. package/_mjs/Stream/api/zipWithChunks.mjs +12 -10
  710. package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
  711. package/_mjs/Stream/api.mjs +856 -653
  712. package/_mjs/Stream/api.mjs.map +1 -1
  713. package/_mjs/Stream/definition.mjs.map +1 -1
  714. package/_mjs/Stream/internal/DebounceState.mjs +18 -16
  715. package/_mjs/Stream/internal/DebounceState.mjs.map +1 -1
  716. package/_mjs/Stream/internal/Handoff.mjs +35 -32
  717. package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
  718. package/_mjs/Stream/internal/Pull.mjs +9 -10
  719. package/_mjs/Stream/internal/Pull.mjs.map +1 -1
  720. package/_mjs/Stream/internal/SinkEndReason.mjs +14 -12
  721. package/_mjs/Stream/internal/SinkEndReason.mjs.map +1 -1
  722. package/_mjs/Stream/internal/Take.mjs +28 -20
  723. package/_mjs/Stream/internal/Take.mjs.map +1 -1
  724. package/_mjs/Stream/internal/util.mjs +3 -3
  725. package/_mjs/Stream/internal/util.mjs.map +1 -1
  726. package/_mjs/SubscriptionRef.mjs +45 -0
  727. package/_mjs/SubscriptionRef.mjs.map +1 -0
  728. package/_mjs/Supervisor/api.mjs +22 -18
  729. package/_mjs/Supervisor/api.mjs.map +1 -1
  730. package/_mjs/Supervisor/constructors.mjs +2 -2
  731. package/_mjs/Supervisor/constructors.mjs.map +1 -1
  732. package/_mjs/Supervisor/definition.mjs +1 -1
  733. package/_mjs/Supervisor/definition.mjs.map +1 -1
  734. package/_mjs/SupervisorPatch.mjs +15 -11
  735. package/_mjs/SupervisorPatch.mjs.map +1 -1
  736. package/_mjs/TExit/definition.mjs.map +1 -1
  737. package/_mjs/TFuture/api.mjs +17 -11
  738. package/_mjs/TFuture/api.mjs.map +1 -1
  739. package/_mjs/TFuture/constructors.mjs +1 -1
  740. package/_mjs/TFuture/constructors.mjs.map +1 -1
  741. package/_mjs/TFuture/definition.mjs.map +1 -1
  742. package/_mjs/TReentrantLock/api.mjs +32 -28
  743. package/_mjs/TReentrantLock/api.mjs.map +1 -1
  744. package/_mjs/TReentrantLock/definition.mjs +4 -4
  745. package/_mjs/TReentrantLock/definition.mjs.map +1 -1
  746. package/_mjs/TRef/api.mjs +218 -194
  747. package/_mjs/TRef/api.mjs.map +1 -1
  748. package/_mjs/TRef/definition.mjs +4 -4
  749. package/_mjs/TRef/definition.mjs.map +1 -1
  750. package/_mjs/TSemaphore/api.mjs +23 -19
  751. package/_mjs/TSemaphore/api.mjs.map +1 -1
  752. package/_mjs/TSemaphore/constructors.mjs +12 -2
  753. package/_mjs/TSemaphore/constructors.mjs.map +1 -1
  754. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +19 -17
  755. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -1
  756. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +19 -17
  757. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -1
  758. package/_mjs/collection/immutable/Conc/filterIO.mjs +14 -12
  759. package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -1
  760. package/_mjs/collection/immutable/Conc/findIO.mjs +17 -15
  761. package/_mjs/collection/immutable/Conc/findIO.mjs.map +1 -1
  762. package/_mjs/collection/immutable/Conc/mapIO.mjs +10 -8
  763. package/_mjs/collection/immutable/Conc/mapIO.mjs.map +1 -1
  764. package/_mjs/collection/immutable/Conc/takeWhileIO.mjs +28 -26
  765. package/_mjs/collection/immutable/Conc/takeWhileIO.mjs.map +1 -1
  766. package/_mjs/data/Exit/foreachIO.mjs +5 -3
  767. package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
  768. package/_mjs/internal/Hub.mjs +13 -11
  769. package/_mjs/internal/Hub.mjs.map +1 -1
  770. package/_mjs/internal/IsFatal.mjs +18 -16
  771. package/_mjs/internal/IsFatal.mjs.map +1 -1
  772. package/_mjs/internal/MutableQueue.mjs +10 -8
  773. package/_mjs/internal/MutableQueue.mjs.map +1 -1
  774. package/_mjs/internal/StackTraceBuilder.mjs.map +1 -1
  775. package/_src/Cached/api.ts +2 -2
  776. package/_src/Channel/ChildExecutorDecision/api.ts +14 -17
  777. package/_src/Channel/UpstreamPullRequest/api.ts +11 -13
  778. package/_src/Channel/api/interruptWhen.ts +18 -17
  779. package/_src/Channel/api/mapOutIOC.ts +58 -58
  780. package/_src/Channel/api/mergeAll.ts +15 -16
  781. package/_src/Channel/api/mergeAllUnboundedWith.ts +15 -27
  782. package/_src/Channel/api/mergeAllWith.ts +114 -126
  783. package/_src/Channel/api/mergeMap.ts +8 -18
  784. package/_src/Channel/api/mergeWith.ts +154 -158
  785. package/_src/Channel/api/toPull.ts +1 -1
  786. package/_src/Channel/api/zipC.ts +52 -88
  787. package/_src/Channel/api.ts +345 -405
  788. package/_src/Channel/core-api.ts +75 -122
  789. package/_src/Channel/definition.ts +49 -7
  790. package/_src/Channel/internal/ChannelExecutor.ts +1 -5
  791. package/_src/Channel/internal/SingleProducerAsyncInput.ts +1 -3
  792. package/_src/Fiber/FiberContext.ts +13 -33
  793. package/_src/Fiber/api/collectAll.ts +1 -2
  794. package/_src/Fiber/api/evalOn.ts +11 -14
  795. package/_src/Fiber/api/evalOnIO.ts +10 -13
  796. package/_src/Fiber/api/interruptAll.ts +1 -2
  797. package/_src/Fiber/api/interruptAs.ts +6 -4
  798. package/_src/Fiber/api/interruptAsFork.ts +6 -4
  799. package/_src/Fiber/api/interruptFork.ts +1 -1
  800. package/_src/Fiber/api/mapFiber.ts +5 -7
  801. package/_src/Fiber/api/mapIO.ts +21 -21
  802. package/_src/Fiber/api/zipWith.ts +14 -17
  803. package/_src/Fiber/definition.ts +1 -15
  804. package/_src/Fiber.ts +1 -1
  805. package/_src/FiberRef/api/locallyScoped.ts +8 -6
  806. package/_src/FiberRef/api/locallyScopedWith.ts +5 -7
  807. package/_src/FiberRef/api.ts +50 -39
  808. package/_src/FiberRef.ts +0 -1
  809. package/_src/FiberRefs/api.ts +14 -12
  810. package/_src/FiberRefs/join.ts +37 -46
  811. package/_src/FiberState/definition.ts +1 -2
  812. package/_src/Future/api.ts +67 -53
  813. package/_src/Hub/constructors.ts +80 -0
  814. package/_src/Hub/definition.ts +95 -89
  815. package/_src/Hub/internal.ts +115 -165
  816. package/_src/Hub.ts +1 -1
  817. package/_src/IO/api/acquireRelease.ts +1 -1
  818. package/_src/IO/api/acquireReleaseExit.ts +1 -1
  819. package/_src/IO/api/bracket.ts +1 -1
  820. package/_src/IO/api/bracketExit.ts +1 -1
  821. package/_src/IO/api/clockWith.ts +0 -1
  822. package/_src/IO/api/concurrency.ts +5 -7
  823. package/_src/IO/api/consoleWith.ts +0 -2
  824. package/_src/IO/api/core-scope.ts +36 -33
  825. package/_src/IO/api/ensuringChildren.ts +8 -7
  826. package/_src/IO/api/environment.ts +24 -42
  827. package/_src/IO/api/foreachC.ts +24 -12
  828. package/_src/IO/api/foreachExec.ts +1 -1
  829. package/_src/IO/api/forkIn.ts +7 -9
  830. package/_src/IO/api/fulfill.ts +5 -3
  831. package/_src/IO/api/interrupt.ts +37 -40
  832. package/_src/IO/api/onExit.ts +8 -10
  833. package/_src/IO/api/onTermination.ts +12 -14
  834. package/_src/IO/api/provideLayer.ts +8 -10
  835. package/_src/IO/api/provideSomeLayer.ts +5 -14
  836. package/_src/IO/api/race.ts +19 -21
  837. package/_src/IO/api/raceFirst.ts +5 -7
  838. package/_src/IO/api/repeat.ts +3 -5
  839. package/_src/IO/api/retry.ts +19 -21
  840. package/_src/IO/api/schedule.ts +20 -21
  841. package/_src/IO/api/scoped.ts +2 -2
  842. package/_src/IO/api/sequenceT.ts +7 -1
  843. package/_src/IO/api/stateful.ts +0 -2
  844. package/_src/IO/api/supervised.ts +5 -7
  845. package/_src/IO/api/timeout.ts +10 -16
  846. package/_src/IO/api/withFinalizer.ts +5 -7
  847. package/_src/IO/api/withFinalizerExit.ts +6 -5
  848. package/_src/IO/api/withRuntimeConfig.ts +12 -14
  849. package/_src/IO/api/zipC.ts +57 -62
  850. package/_src/IO/api.ts +512 -539
  851. package/_src/IO/definition.ts +21 -9
  852. package/_src/IO/runtime.ts +0 -12
  853. package/_src/IO.ts +0 -1
  854. package/_src/Layer/MemoMap.ts +61 -63
  855. package/_src/Layer/api.ts +95 -104
  856. package/_src/Layer/definition.ts +0 -1
  857. package/_src/LogLevel.ts +24 -16
  858. package/_src/LogSpan.ts +16 -16
  859. package/_src/Logger/api.ts +18 -17
  860. package/_src/Logger/constructors.ts +9 -15
  861. package/_src/Queue/constructors.ts +22 -6
  862. package/_src/Queue/definition.ts +230 -81
  863. package/_src/Queue/internal.ts +9 -180
  864. package/_src/Queue/strategy.ts +9 -23
  865. package/_src/Queue.ts +1 -3
  866. package/_src/Ref/Atomic.ts +37 -4
  867. package/_src/Ref/Synchronized.ts +107 -0
  868. package/_src/Ref/constructors.ts +15 -0
  869. package/_src/Ref/definition.ts +86 -85
  870. package/_src/Ref.ts +1 -9
  871. package/_src/Reloadable/constructors.ts +2 -2
  872. package/_src/RuntimeConfig.ts +0 -2
  873. package/_src/STM/api/core-api.ts +32 -35
  874. package/_src/STM/api.ts +210 -200
  875. package/_src/STM/internal/Entry.ts +0 -10
  876. package/_src/STM/internal/Journal.ts +23 -26
  877. package/_src/STM.ts +0 -1
  878. package/_src/Schedule/Decision.ts +10 -8
  879. package/_src/Schedule/api/driver.ts +0 -4
  880. package/_src/Schedule/api.ts +419 -444
  881. package/_src/Schedule/definition.ts +0 -1
  882. package/_src/Scope/ReleaseMap/api/releaseAll.ts +23 -26
  883. package/_src/Scope/ReleaseMap/api.ts +77 -74
  884. package/_src/Scope/api.ts +16 -18
  885. package/_src/ScopedRef/api.ts +0 -3
  886. package/_src/ScopedRef/definition.ts +1 -2
  887. package/_src/Sink/api.ts +326 -357
  888. package/_src/State/api.ts +12 -8
  889. package/_src/State/internal.ts +1 -1
  890. package/_src/Stream/api/zipAllWith.ts +6 -5
  891. package/_src/Stream/api/zipWith.ts +5 -8
  892. package/_src/Stream/api/zipWithChunks.ts +6 -5
  893. package/_src/Stream/api.ts +1049 -1176
  894. package/_src/Stream/definition.ts +0 -2
  895. package/_src/Stream/internal/DebounceState.ts +16 -17
  896. package/_src/Stream/internal/Handoff.ts +31 -35
  897. package/_src/Stream/internal/Pull.ts +1 -2
  898. package/_src/Stream/internal/SinkEndReason.ts +13 -14
  899. package/_src/Stream/internal/Take.ts +21 -21
  900. package/_src/Stream/internal/util.ts +0 -2
  901. package/_src/SubscriptionRef.ts +44 -0
  902. package/_src/Supervisor/api.ts +18 -14
  903. package/_src/Supervisor/definition.ts +0 -1
  904. package/_src/SupervisorPatch.ts +10 -6
  905. package/_src/TExit/definition.ts +0 -8
  906. package/_src/TFuture/api.ts +23 -17
  907. package/_src/TFuture/definition.ts +0 -1
  908. package/_src/TReentrantLock/api.ts +14 -10
  909. package/_src/TReentrantLock/definition.ts +0 -7
  910. package/_src/TRef/api.ts +207 -209
  911. package/_src/TRef/definition.ts +0 -12
  912. package/_src/TSemaphore/api.ts +19 -18
  913. package/_src/TSemaphore/constructors.ts +7 -0
  914. package/_src/collection/immutable/Conc/dropUntilIO.ts +19 -21
  915. package/_src/collection/immutable/Conc/dropWhileIO.ts +21 -23
  916. package/_src/collection/immutable/Conc/filterIO.ts +15 -17
  917. package/_src/collection/immutable/Conc/findIO.ts +17 -19
  918. package/_src/collection/immutable/Conc/mapIO.ts +12 -10
  919. package/_src/collection/immutable/Conc/takeWhileIO.ts +27 -29
  920. package/_src/data/Exit/foreachIO.ts +8 -10
  921. package/_src/global.ts +7 -3
  922. package/_src/index.ts +3 -0
  923. package/_src/internal/Hub.ts +17 -27
  924. package/_src/internal/IsFatal.ts +14 -12
  925. package/_src/internal/MutableQueue.ts +8 -8
  926. package/_src/internal/StackTraceBuilder.ts +1 -2
  927. package/collection/immutable/Conc/dropUntilIO.d.ts +3 -3
  928. package/collection/immutable/Conc/dropWhileIO.d.ts +3 -3
  929. package/collection/immutable/Conc/filterIO.d.ts +3 -3
  930. package/collection/immutable/Conc/findIO.d.ts +2 -2
  931. package/collection/immutable/Conc/mapIO.d.ts +3 -3
  932. package/collection/immutable/Conc/takeWhileIO.d.ts +3 -3
  933. package/data/Exit/foreachIO.d.ts +3 -3
  934. package/global.d.ts +7 -3
  935. package/index.d.ts +3 -0
  936. package/internal/Hub.d.ts +2 -2
  937. package/internal/IsFatal.d.ts +3 -3
  938. package/internal/MutableQueue.d.ts +3 -3
  939. package/package.json +3 -3
  940. package/Hub/api.d.ts +0 -190
  941. package/Queue/api/dimapIO.d.ts +0 -41
  942. package/Queue/api/filterInputIO.d.ts +0 -33
  943. package/Queue/api/filterOutputIO.d.ts +0 -31
  944. package/Queue/api/operations.d.ts +0 -82
  945. package/Queue/api/poll.d.ts +0 -9
  946. package/Queue/api/takeBetween.d.ts +0 -11
  947. package/Queue/api/zipWithIO.d.ts +0 -44
  948. package/Queue/api.d.ts +0 -7
  949. package/Ref/Atomic/Atomic.d.ts +0 -18
  950. package/Ref/Atomic/api.d.ts +0 -53
  951. package/Ref/Derived.d.ts +0 -14
  952. package/Ref/DerivedAll.d.ts +0 -14
  953. package/Ref/Synchronized/api.d.ts +0 -100
  954. package/Ref/Synchronized/constructors.d.ts +0 -8
  955. package/Ref/Synchronized/definition.d.ts +0 -42
  956. package/Ref/api/collect.d.ts +0 -11
  957. package/Ref/api/dimap.d.ts +0 -56
  958. package/Ref/api/filter.d.ts +0 -20
  959. package/Ref/api/get.d.ts +0 -9
  960. package/Ref/api/match.d.ts +0 -13
  961. package/Ref/api/matchAll.d.ts +0 -11
  962. package/Ref/api/modify.d.ts +0 -79
  963. package/Ref/api/set.d.ts +0 -10
  964. package/Ref/api.d.ts +0 -23
  965. package/_cjs/Hub/api.cjs +0 -456
  966. package/_cjs/Hub/api.cjs.map +0 -1
  967. package/_cjs/Queue/api/dimapIO.cjs +0 -120
  968. package/_cjs/Queue/api/dimapIO.cjs.map +0 -1
  969. package/_cjs/Queue/api/filterInputIO.cjs +0 -84
  970. package/_cjs/Queue/api/filterInputIO.cjs.map +0 -1
  971. package/_cjs/Queue/api/filterOutputIO.cjs +0 -89
  972. package/_cjs/Queue/api/filterOutputIO.cjs.map +0 -1
  973. package/_cjs/Queue/api/operations.cjs +0 -147
  974. package/_cjs/Queue/api/operations.cjs.map +0 -1
  975. package/_cjs/Queue/api/poll.cjs +0 -27
  976. package/_cjs/Queue/api/poll.cjs.map +0 -1
  977. package/_cjs/Queue/api/takeBetween.cjs +0 -57
  978. package/_cjs/Queue/api/takeBetween.cjs.map +0 -1
  979. package/_cjs/Queue/api/zipWithIO.cjs +0 -97
  980. package/_cjs/Queue/api/zipWithIO.cjs.map +0 -1
  981. package/_cjs/Queue/api.cjs +0 -97
  982. package/_cjs/Queue/api.cjs.map +0 -1
  983. package/_cjs/Ref/Atomic/Atomic.cjs +0 -64
  984. package/_cjs/Ref/Atomic/Atomic.cjs.map +0 -1
  985. package/_cjs/Ref/Atomic/api.cjs +0 -156
  986. package/_cjs/Ref/Atomic/api.cjs.map +0 -1
  987. package/_cjs/Ref/Derived.cjs +0 -55
  988. package/_cjs/Ref/Derived.cjs.map +0 -1
  989. package/_cjs/Ref/DerivedAll.cjs +0 -55
  990. package/_cjs/Ref/DerivedAll.cjs.map +0 -1
  991. package/_cjs/Ref/Synchronized/api.cjs +0 -196
  992. package/_cjs/Ref/Synchronized/api.cjs.map +0 -1
  993. package/_cjs/Ref/Synchronized/constructors.cjs +0 -32
  994. package/_cjs/Ref/Synchronized/constructors.cjs.map +0 -1
  995. package/_cjs/Ref/Synchronized/definition.cjs +0 -88
  996. package/_cjs/Ref/Synchronized/definition.cjs.map +0 -1
  997. package/_cjs/Ref/api/collect.cjs +0 -31
  998. package/_cjs/Ref/api/collect.cjs.map +0 -1
  999. package/_cjs/Ref/api/dimap.cjs +0 -110
  1000. package/_cjs/Ref/api/dimap.cjs.map +0 -1
  1001. package/_cjs/Ref/api/filter.cjs +0 -45
  1002. package/_cjs/Ref/api/filter.cjs.map +0 -1
  1003. package/_cjs/Ref/api/get.cjs +0 -20
  1004. package/_cjs/Ref/api/get.cjs.map +0 -1
  1005. package/_cjs/Ref/api/match.cjs +0 -26
  1006. package/_cjs/Ref/api/match.cjs.map +0 -1
  1007. package/_cjs/Ref/api/matchAll.cjs +0 -24
  1008. package/_cjs/Ref/api/matchAll.cjs.map +0 -1
  1009. package/_cjs/Ref/api/modify.cjs +0 -239
  1010. package/_cjs/Ref/api/modify.cjs.map +0 -1
  1011. package/_cjs/Ref/api/set.cjs +0 -21
  1012. package/_cjs/Ref/api/set.cjs.map +0 -1
  1013. package/_cjs/Ref/api.cjs +0 -158
  1014. package/_cjs/Ref/api.cjs.map +0 -1
  1015. package/_mjs/Hub/api.mjs +0 -384
  1016. package/_mjs/Hub/api.mjs.map +0 -1
  1017. package/_mjs/Queue/api/dimapIO.mjs +0 -97
  1018. package/_mjs/Queue/api/dimapIO.mjs.map +0 -1
  1019. package/_mjs/Queue/api/filterInputIO.mjs +0 -63
  1020. package/_mjs/Queue/api/filterInputIO.mjs.map +0 -1
  1021. package/_mjs/Queue/api/filterOutputIO.mjs +0 -68
  1022. package/_mjs/Queue/api/filterOutputIO.mjs.map +0 -1
  1023. package/_mjs/Queue/api/operations.mjs +0 -122
  1024. package/_mjs/Queue/api/operations.mjs.map +0 -1
  1025. package/_mjs/Queue/api/poll.mjs +0 -14
  1026. package/_mjs/Queue/api/poll.mjs.map +0 -1
  1027. package/_mjs/Queue/api/takeBetween.mjs +0 -43
  1028. package/_mjs/Queue/api/takeBetween.mjs.map +0 -1
  1029. package/_mjs/Queue/api/zipWithIO.mjs +0 -74
  1030. package/_mjs/Queue/api/zipWithIO.mjs.map +0 -1
  1031. package/_mjs/Queue/api.mjs +0 -9
  1032. package/_mjs/Queue/api.mjs.map +0 -1
  1033. package/_mjs/Ref/Atomic/Atomic.mjs +0 -47
  1034. package/_mjs/Ref/Atomic/Atomic.mjs.map +0 -1
  1035. package/_mjs/Ref/Atomic/api.mjs +0 -127
  1036. package/_mjs/Ref/Atomic/api.mjs.map +0 -1
  1037. package/_mjs/Ref/Derived.mjs +0 -35
  1038. package/_mjs/Ref/Derived.mjs.map +0 -1
  1039. package/_mjs/Ref/DerivedAll.mjs +0 -35
  1040. package/_mjs/Ref/DerivedAll.mjs.map +0 -1
  1041. package/_mjs/Ref/Synchronized/api.mjs +0 -154
  1042. package/_mjs/Ref/Synchronized/api.mjs.map +0 -1
  1043. package/_mjs/Ref/Synchronized/constructors.mjs +0 -15
  1044. package/_mjs/Ref/Synchronized/constructors.mjs.map +0 -1
  1045. package/_mjs/Ref/Synchronized/definition.mjs +0 -66
  1046. package/_mjs/Ref/Synchronized/definition.mjs.map +0 -1
  1047. package/_mjs/Ref/api/collect.mjs +0 -17
  1048. package/_mjs/Ref/api/collect.mjs.map +0 -1
  1049. package/_mjs/Ref/api/dimap.mjs +0 -84
  1050. package/_mjs/Ref/api/dimap.mjs.map +0 -1
  1051. package/_mjs/Ref/api/filter.mjs +0 -29
  1052. package/_mjs/Ref/api/filter.mjs.map +0 -1
  1053. package/_mjs/Ref/api/get.mjs +0 -13
  1054. package/_mjs/Ref/api/get.mjs.map +0 -1
  1055. package/_mjs/Ref/api/match.mjs +0 -18
  1056. package/_mjs/Ref/api/match.mjs.map +0 -1
  1057. package/_mjs/Ref/api/matchAll.mjs +0 -16
  1058. package/_mjs/Ref/api/matchAll.mjs.map +0 -1
  1059. package/_mjs/Ref/api/modify.mjs +0 -204
  1060. package/_mjs/Ref/api/modify.mjs.map +0 -1
  1061. package/_mjs/Ref/api/set.mjs +0 -14
  1062. package/_mjs/Ref/api/set.mjs.map +0 -1
  1063. package/_mjs/Ref/api.mjs +0 -34
  1064. package/_mjs/Ref/api.mjs.map +0 -1
  1065. package/_src/Hub/api.ts +0 -461
  1066. package/_src/Queue/api/dimapIO.ts +0 -130
  1067. package/_src/Queue/api/filterInputIO.ts +0 -75
  1068. package/_src/Queue/api/filterOutputIO.ts +0 -76
  1069. package/_src/Queue/api/operations.ts +0 -139
  1070. package/_src/Queue/api/poll.ts +0 -14
  1071. package/_src/Queue/api/takeBetween.ts +0 -45
  1072. package/_src/Queue/api/zipWithIO.ts +0 -99
  1073. package/_src/Queue/api.ts +0 -9
  1074. package/_src/Ref/Atomic/Atomic.ts +0 -56
  1075. package/_src/Ref/Atomic/api.ts +0 -124
  1076. package/_src/Ref/Derived.ts +0 -71
  1077. package/_src/Ref/DerivedAll.ts +0 -75
  1078. package/_src/Ref/Synchronized/api.ts +0 -249
  1079. package/_src/Ref/Synchronized/constructors.ts +0 -12
  1080. package/_src/Ref/Synchronized/definition.ts +0 -126
  1081. package/_src/Ref/api/collect.ts +0 -19
  1082. package/_src/Ref/api/dimap.ts +0 -115
  1083. package/_src/Ref/api/filter.ts +0 -35
  1084. package/_src/Ref/api/get.ts +0 -17
  1085. package/_src/Ref/api/match.ts +0 -24
  1086. package/_src/Ref/api/matchAll.ts +0 -23
  1087. package/_src/Ref/api/modify.ts +0 -237
  1088. package/_src/Ref/api/set.ts +0 -19
  1089. package/_src/Ref/api.ts +0 -39
package/_src/IO/api.ts CHANGED
@@ -92,43 +92,42 @@ export function asyncInterrupt<R, E, A>(
92
92
  * Attempts to convert defects into a failure, throwing away all information
93
93
  * about the cause of the failure.
94
94
  *
95
- * @tsplus fluent fncts.io.IO absorbWith
95
+ * @tsplus pipeable fncts.io.IO absorbWith
96
96
  */
97
- export function absorbWith_<R, E, A>(ma: IO<R, E, A>, f: (e: E) => unknown, __tsplusTrace?: string) {
98
- return ma.sandbox.matchIO((cause) => IO.failNow(cause.squashWith(f)), IO.succeedNow);
97
+ export function absorbWith<R, E, A>(f: (e: E) => unknown, __tsplusTrace?: string) {
98
+ return (ma: IO<R, E, A>): IO<R, unknown, A> =>
99
+ ma.sandbox.matchIO((cause) => IO.failNow(cause.squashWith(f)), IO.succeedNow);
99
100
  }
100
101
 
101
102
  /**
102
- * @tsplus fluent fncts.io.IO apFirst
103
- * @tsplus operator fncts.io.IO <
103
+ * @tsplus pipeable fncts.io.IO apFirst
104
+ * @tsplus pipeable-operator fncts.io.IO <
104
105
  */
105
- export function apFirst_<R, E, A, R1, E1, B>(
106
- self: IO<R, E, A>,
107
- fb: IO<R1, E1, B>,
108
- __tsplusTrace?: string,
109
- ): IO<R1 | R, E1 | E, A> {
110
- return self.flatMap((a) => fb.map(() => a));
106
+ export function apFirst<R1, E1, B>(fb: IO<R1, E1, B>, __tsplusTrace?: string) {
107
+ return <R, E, A>(self: IO<R, E, A>): IO<R1 | R, E1 | E, A> => {
108
+ return self.flatMap((a) => fb.map(() => a));
109
+ };
111
110
  }
112
111
 
113
112
  /**
114
113
  * Combine two effectful actions, keeping only the result of the second
115
114
  *
116
- * @tsplus fluent fncts.io.IO apSecond
117
- * @tsplus operator fncts.io.IO >
115
+ * @tsplus pipeable fncts.io.IO apSecond
116
+ * @tsplus pipeable-operator fncts.io.IO >
118
117
  */
119
- export function apSecond_<R, E, A, R1, E1, B>(
120
- self: IO<R, E, A>,
121
- fb: IO<R1, E1, B>,
122
- __tsplusTrace?: string,
123
- ): IO<R1 | R, E1 | E, B> {
124
- return self.flatMap(() => fb);
118
+ export function apSecond<R1, E1, B>(fb: IO<R1, E1, B>, __tsplusTrace?: string) {
119
+ return <R, E, A>(self: IO<R, E, A>): IO<R1 | R, E1 | E, B> => {
120
+ return self.flatMap(() => fb);
121
+ };
125
122
  }
126
123
 
127
124
  /**
128
- * @tsplus fluent fncts.io.IO as
125
+ * @tsplus pipeable fncts.io.IO as
129
126
  */
130
- export function as_<R, E, A, B>(self: IO<R, E, A>, b: Lazy<B>, __tsplusTrace?: string): IO<R, E, B> {
131
- return self.map(() => b());
127
+ export function as<B>(b: Lazy<B>, __tsplusTrace?: string) {
128
+ return <R, E, A>(self: IO<R, E, A>): IO<R, E, B> => {
129
+ return self.map(() => b());
130
+ };
132
131
  }
133
132
 
134
133
  /**
@@ -160,116 +159,124 @@ export function asUnit<R, E, A>(self: IO<R, E, A>, __tsplusTrace?: string): IO<R
160
159
  * Returns an IO whose failure and success channels have been mapped by
161
160
  * the specified pair of functions, `f` and `g`.
162
161
  *
163
- * @tsplus fluent fncts.io.IO bimap
162
+ * @tsplus pipeable fncts.io.IO bimap
164
163
  */
165
- export function bimap_<R, E, A, E1, B>(
166
- self: IO<R, E, A>,
167
- f: (e: E) => E1,
168
- g: (a: A) => B,
169
- __tsplusTrace?: string,
170
- ): IO<R, E1, B> {
171
- return self.matchIO(
172
- (e) => IO.failNow(f(e)),
173
- (a) => IO.succeedNow(g(a)),
174
- );
164
+ export function bimap<E, A, E1, B>(f: (e: E) => E1, g: (a: A) => B, __tsplusTrace?: string) {
165
+ return <R>(self: IO<R, E, A>): IO<R, E1, B> => {
166
+ return self.matchIO(
167
+ (e) => IO.failNow(f(e)),
168
+ (a) => IO.succeedNow(g(a)),
169
+ );
170
+ };
175
171
  }
176
172
 
177
173
  /**
178
174
  * Returns an IO that effectfully "peeks" at the failure or success of
179
175
  * this effect.
180
176
  *
181
- * @tsplus fluent fncts.io.IO bitap
177
+ * @tsplus pipeable fncts.io.IO bitap
182
178
  */
183
- export function bitap_<R, E, A, R1, E1, R2, E2>(
184
- self: IO<R, E, A>,
179
+ export function bitap<E, A, R1, E1, R2, E2>(
185
180
  onFailure: (e: E) => IO<R1, E1, any>,
186
181
  onSuccess: (a: A) => IO<R2, E2, any>,
187
182
  __tsplusTrace?: string,
188
- ): IO<R | R1 | R2, E | E1 | E2, A> {
189
- return self.matchCauseIO(
190
- (cause) =>
191
- cause.failureOrCause.match(
192
- (e) => onFailure(e).flatMap(() => IO.failCauseNow(cause)),
193
- () => IO.failCauseNow(cause),
194
- ),
195
- (a) => onSuccess(a).apSecond(IO.succeedNow(a)),
196
- );
183
+ ) {
184
+ return <R>(self: IO<R, E, A>): IO<R | R1 | R2, E | E1 | E2, A> => {
185
+ return self.matchCauseIO(
186
+ (cause) =>
187
+ cause.failureOrCause.match(
188
+ (e) => onFailure(e).flatMap(() => IO.failCauseNow(cause)),
189
+ () => IO.failCauseNow(cause),
190
+ ),
191
+ (a) => onSuccess(a).apSecond(IO.succeedNow(a)),
192
+ );
193
+ };
197
194
  }
198
195
 
199
196
  /**
200
197
  * Recovers from the specified error
201
198
  *
202
- * @tsplus fluent fncts.io.IO catch
199
+ * @tsplus pipeable fncts.io.IO catch
203
200
  */
204
- export function catch_<N extends keyof E, K extends E[N] & string, R, E, A, R1, E1, A1>(
205
- ma: IO<R, E, A>,
201
+ export function catchTagWith<N extends keyof E, K extends E[N] & string, E, R1, E1, A1>(
206
202
  tag: N,
207
203
  k: K,
208
- f: (e: Extract<E, { [n in N]: K }>) => IO<R1, E1, A1>,
204
+ f: (
205
+ e: Extract<
206
+ E,
207
+ {
208
+ [n in N]: K;
209
+ }
210
+ >,
211
+ ) => IO<R1, E1, A1>,
209
212
  __tsplusTrace?: string,
210
- ): IO<R | R1, Exclude<E, { [n in N]: K }> | E1, A | A1> {
211
- return ma.catchAll((e) => {
212
- if (tag in e && e[tag] === k) {
213
- return f(e as any);
214
- }
215
- return IO.failNow(e as any);
216
- });
213
+ ) {
214
+ return <R, A>(
215
+ ma: IO<R, E, A>,
216
+ ): IO<
217
+ R | R1,
218
+ | Exclude<
219
+ E,
220
+ {
221
+ [n in N]: K;
222
+ }
223
+ >
224
+ | E1,
225
+ A | A1
226
+ > => {
227
+ return ma.catchAll((e) => {
228
+ if (isObject(e) && tag in e && e[tag] === k) {
229
+ return f(e as any);
230
+ }
231
+ return IO.failNow(e as any);
232
+ });
233
+ };
217
234
  }
218
235
 
219
236
  /**
220
237
  * Recovers from all errors
221
238
  *
222
- * @tsplus fluent fncts.io.IO catchAll
239
+ * @tsplus pipeable fncts.io.IO catchAll
223
240
  */
224
- export function catchAll_<R, E, A, R1, E1, A1>(
225
- ma: IO<R, E, A>,
226
- f: (e: E) => IO<R1, E1, A1>,
227
- __tsplusTrace?: string,
228
- ): IO<R | R1, E1, A | A1> {
229
- return ma.matchIO(f, IO.succeedNow);
241
+ export function catchAll<E, R1, E1, A1>(f: (e: E) => IO<R1, E1, A1>, __tsplusTrace?: string) {
242
+ return <R, A>(ma: IO<R, E, A>): IO<R | R1, E1, A | A1> => {
243
+ return ma.matchIO(f, IO.succeedNow);
244
+ };
230
245
  }
231
246
 
232
247
  /**
233
248
  *
234
249
  * Recovers from all errors with provided cause.
235
250
  *
236
- * @tsplus fluent fncts.io.IO catchAllCause
251
+ * @tsplus pipeable fncts.io.IO catchAllCause
237
252
  */
238
- export function catchAllCause_<R, E, A, R1, E1, A1>(
239
- ma: IO<R, E, A>,
240
- f: (_: Cause<E>) => IO<R1, E1, A1>,
241
- __tsplusTrace?: string,
242
- ) {
243
- return ma.matchCauseIO(f, IO.succeedNow);
253
+ export function catchAllCause<R, E, A, R1, E1, A1>(f: (_: Cause<E>) => IO<R1, E1, A1>, __tsplusTrace?: string) {
254
+ return (ma: IO<R, E, A>): IO<R | R1, E1, A | A1> => ma.matchCauseIO(f, IO.succeedNow);
244
255
  }
245
256
 
246
257
  /**
247
258
  * Recovers from some or all of the error cases.
248
259
  *
249
- * @tsplus fluent fncts.io.IO catchJust
260
+ * @tsplus pipeable fncts.io.IO catchJust
250
261
  */
251
- export function catchJust_<R, E, A, R1, E1, A1>(
252
- ma: IO<R, E, A>,
253
- f: (e: E) => Maybe<IO<R1, E1, A1>>,
254
- __tsplusTrace?: string,
255
- ): IO<R | R1, E | E1, A | A1> {
256
- return ma.matchCauseIO(
257
- (cause) => cause.failureOrCause.match((e) => f(e).getOrElse(IO.failCauseNow(cause)), IO.failCauseNow),
258
- IO.succeedNow,
259
- );
262
+ export function catchJust<E, R1, E1, A1>(f: (e: E) => Maybe<IO<R1, E1, A1>>, __tsplusTrace?: string) {
263
+ return <R, A>(ma: IO<R, E, A>): IO<R | R1, E | E1, A | A1> => {
264
+ return ma.matchCauseIO(
265
+ (cause) => cause.failureOrCause.match((e) => f(e).getOrElse(IO.failCauseNow(cause)), IO.failCauseNow),
266
+ IO.succeedNow,
267
+ );
268
+ };
260
269
  }
261
270
 
262
271
  /**
263
272
  * Recovers from some or all of the error cases with provided cause.
264
273
  *
265
- * @tsplus fluent fncts.io.IO catchJustCause
274
+ * @tsplus pipeable fncts.io.IO catchJustCause
266
275
  */
267
- export function catchJustCause_<R, E, A, R1, E1, A1>(
268
- ma: IO<R, E, A>,
269
- f: (_: Cause<E>) => Maybe<IO<R1, E1, A1>>,
270
- __tsplusTrace?: string,
271
- ): IO<R | R1, E | E1, A | A1> {
272
- return ma.matchCauseIO((cause) => f(cause).getOrElse(IO.failCauseNow(cause)), IO.succeedNow);
276
+ export function catchJustCause<E, R1, E1, A1>(f: (_: Cause<E>) => Maybe<IO<R1, E1, A1>>, __tsplusTrace?: string) {
277
+ return <R, A>(ma: IO<R, E, A>): IO<R | R1, E | E1, A | A1> => {
278
+ return ma.matchCauseIO((cause) => f(cause).getOrElse(IO.failCauseNow(cause)), IO.succeedNow);
279
+ };
273
280
  }
274
281
 
275
282
  /**
@@ -280,28 +287,54 @@ export function catchJustCause_<R, E, A, R1, E1, A1>(
280
287
  * system, to transmit information on a defect for diagnostic or explanatory
281
288
  * purposes.
282
289
  *
283
- * @tsplus fluent fncts.io.IO catchJustDefect
290
+ * @tsplus pipeable fncts.io.IO catchJustDefect
284
291
  */
285
- export function catchJustDefect_<R, E, A, R1, E1, A1>(
286
- ma: IO<R, E, A>,
287
- f: (_: unknown) => Maybe<IO<R1, E1, A1>>,
288
- __tsplusTrace?: string,
289
- ): IO<R | R1, E | E1, A | A1> {
290
- return ma.unrefineWith(f, IO.failNow).catchAll((a) => a as IO<R | R1, E | E1, A | A1>);
292
+ export function catchJustDefect<R1, E1, A1>(f: (_: unknown) => Maybe<IO<R1, E1, A1>>, __tsplusTrace?: string) {
293
+ return <R, E, A>(ma: IO<R, E, A>): IO<R | R1, E | E1, A | A1> => {
294
+ return ma.unrefineWith(f, IO.failNow).catchAll((a) => a as IO<R | R1, E | E1, A | A1>);
295
+ };
291
296
  }
292
297
 
293
298
  /**
294
299
  * Recovers from the specified error
295
300
  *
296
- * @tsplus fluent IO catchTag
297
- */
298
- export function catchTag_<K extends E["_tag"] & string, R, E extends { _tag: string }, A, R1, E1, A1>(
299
- ma: IO<R, E, A>,
301
+ * @tsplus pipeable IO catchTag
302
+ */
303
+ export function catchTag<
304
+ K extends E["_tag"] & string,
305
+ E extends {
306
+ _tag: string;
307
+ },
308
+ R1,
309
+ E1,
310
+ A1,
311
+ >(
300
312
  k: K,
301
- f: (e: Extract<E, { _tag: K }>) => IO<R1, E1, A1>,
313
+ f: (
314
+ e: Extract<
315
+ E,
316
+ {
317
+ _tag: K;
318
+ }
319
+ >,
320
+ ) => IO<R1, E1, A1>,
302
321
  __tsplusTrace?: string,
303
- ): IO<R | R1, Exclude<E, { _tag: K }> | E1, A | A1> {
304
- return ma.catch("_tag", k, f);
322
+ ) {
323
+ return <R, A>(
324
+ ma: IO<R, E, A>,
325
+ ): IO<
326
+ R | R1,
327
+ | Exclude<
328
+ E,
329
+ {
330
+ _tag: K;
331
+ }
332
+ >
333
+ | E1,
334
+ A | A1
335
+ > => {
336
+ return ma.catch("_tag", k, f);
337
+ };
305
338
  }
306
339
 
307
340
  /**
@@ -310,38 +343,34 @@ export function catchTag_<K extends E["_tag"] & string, R, E extends { _tag: str
310
343
  export function cause<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO<R, never, Cause<E>> {
311
344
  return ma.matchCauseIO(IO.succeedNow, () => IO.succeedNow(Cause.empty()));
312
345
  }
313
-
314
346
  /**
315
- * @tsplus fluent fncts.io.IO causeAsError
347
+ * @tsplus pipeable fncts.io.IO causeAsError
316
348
  */
317
- export function causeAsError<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO<R, Cause<E>, A> {
318
- return ma.matchCauseIO(IO.failNow, IO.succeedNow);
349
+ export function causeAsError(__tsplusTrace?: string) {
350
+ return <R, E, A>(ma: IO<R, E, A>): IO<R, Cause<E>, A> => {
351
+ return ma.matchCauseIO(IO.failNow, IO.succeedNow);
352
+ };
319
353
  }
320
-
321
354
  /**
322
355
  * Returns an IO that models the execution of this effect, followed by
323
356
  * the passing of its value to the specified continuation function `f`,
324
357
  * followed by the effect that it returns.
325
358
  *
326
- * @tsplus fluent fncts.io.IO flatMap
359
+ * @tsplus pipeable fncts.io.IO flatMap
327
360
  */
328
- export function flatMap_<R, E, A, R1, E1, B>(
329
- ma: IO<R, E, A>,
330
- f: (a: A) => IO<R1, E1, B>,
331
- __tsplusTrace?: string,
332
- ): IO<R | R1, E | E1, B> {
333
- return new Chain(ma, f, __tsplusTrace);
361
+ export function flatMap<A, R1, E1, B>(f: (a: A) => IO<R1, E1, B>, __tsplusTrace?: string) {
362
+ return <R, E>(ma: IO<R, E, A>): IO<R | R1, E | E1, B> => {
363
+ return new Chain(ma, f, __tsplusTrace);
364
+ };
334
365
  }
335
366
 
336
367
  /**
337
- * @tsplus fluent fncts.io.IO flatMapError
368
+ * @tsplus pipeable fncts.io.IO flatMapError
338
369
  */
339
- export function flatMapError_<R, R1, E, E1, A>(
340
- ma: IO<R, E, A>,
341
- f: (e: E) => IO<R1, never, E1>,
342
- __tsplusTrace?: string,
343
- ): IO<R | R1, E1, A> {
344
- return ma.swapWith((effect) => effect.flatMap(f));
370
+ export function flatMapError<R1, E, E1>(f: (e: E) => IO<R1, never, E1>, __tsplusTrace?: string) {
371
+ return <R, A>(ma: IO<R, E, A>): IO<R | R1, E1, A> => {
372
+ return ma.swapWith((effect) => effect.flatMap(f));
373
+ };
345
374
  }
346
375
 
347
376
  /**
@@ -358,33 +387,27 @@ export function checkInterruptible<R, E, A>(
358
387
  }
359
388
 
360
389
  /**
361
- * @tsplus fluent fncts.io.IO collect
390
+ * @tsplus pipeable fncts.io.IO collect
362
391
  */
363
- export function collect_<R, E, A, E1, A1>(
364
- ma: IO<R, E, A>,
365
- f: Lazy<E1>,
366
- pf: (a: A) => Maybe<A1>,
367
- __tsplusTrace?: string,
368
- ): IO<R, E | E1, A1> {
369
- return ma.collectIO(f, (a) => pf(a).map(IO.succeedNow));
392
+ export function collect<A, E1, A1>(f: Lazy<E1>, pf: (a: A) => Maybe<A1>, __tsplusTrace?: string) {
393
+ return <R, E>(ma: IO<R, E, A>): IO<R, E | E1, A1> => {
394
+ return ma.collectIO(f, (a) => pf(a).map(IO.succeedNow));
395
+ };
370
396
  }
371
397
 
372
398
  /**
373
- * @tsplus fluent fncts.io.IO collectIO
399
+ * @tsplus pipeable fncts.io.IO collectIO
374
400
  */
375
- export function collectIO_<R, E, A, R1, E1, A1, E2>(
376
- ma: IO<R, E, A>,
377
- f: Lazy<E2>,
378
- pf: (a: A) => Maybe<IO<R1, E1, A1>>,
379
- __tsplusTrace?: string,
380
- ): IO<R | R1, E | E1 | E2, A1> {
381
- return ma.flatMap((a) => pf(a).getOrElse(IO.fail(f)));
401
+ export function collectIO<A, R1, E1, A1, E2>(f: Lazy<E2>, pf: (a: A) => Maybe<IO<R1, E1, A1>>, __tsplusTrace?: string) {
402
+ return <R, E>(ma: IO<R, E, A>): IO<R | R1, E | E1 | E2, A1> => {
403
+ return ma.flatMap((a) => pf(a).getOrElse(IO.fail(f)));
404
+ };
382
405
  }
383
406
 
384
407
  /**
385
408
  * @tsplus static fncts.io.IOOps condIO
386
409
  */
387
- export function condIO_<R, R1, E, A>(
410
+ export function condIO<R, R1, E, A>(
388
411
  b: boolean,
389
412
  onTrue: URIO<R, A>,
390
413
  onFalse: URIO<R1, E>,
@@ -524,24 +547,24 @@ export function either<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): URIO<R
524
547
  }
525
548
 
526
549
  /**
527
- * @tsplus fluent fncts.io.IO ensuring
550
+ * @tsplus pipeable fncts.io.IO ensuring
528
551
  */
529
- export function ensuring_<R, E, A, R1>(
530
- self: IO<R, E, A>,
531
- finalizer: IO<R1, never, any>,
532
- __tsplusTrace?: string,
533
- ): IO<R | R1, E, A> {
534
- return IO.withFiberContext((fiber) => {
535
- fiber.unsafeAddFinalizer(finalizer);
536
- return self;
537
- });
552
+ export function ensuring<R1>(finalizer: IO<R1, never, any>, __tsplusTrace?: string) {
553
+ return <R, E, A>(self: IO<R, E, A>): IO<R | R1, E, A> => {
554
+ return IO.withFiberContext((fiber) => {
555
+ fiber.unsafeAddFinalizer(finalizer);
556
+ return self;
557
+ });
558
+ };
538
559
  }
539
560
 
540
561
  /**
541
- * @tsplus fluent fncts.io.IO errorAsCause
562
+ * @tsplus pipeable fncts.io.IO errorAsCause
542
563
  */
543
- export function errorAsCause<R, E, A>(ma: IO<R, Cause<E>, A>, __tsplusTrace?: string): IO<R, E, A> {
544
- return ma.matchIO(IO.failCauseNow, IO.succeedNow);
564
+ export function errorAsCause(__tsplusTrace?: string) {
565
+ return <R, E, A>(ma: IO<R, Cause<E>, A>): IO<R, E, A> => {
566
+ return ma.matchIO(IO.failCauseNow, IO.succeedNow);
567
+ };
545
568
  }
546
569
 
547
570
  /**
@@ -552,10 +575,12 @@ export function eventually<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO
552
575
  }
553
576
 
554
577
  /**
555
- * @tsplus fluent fncts.io.IO extend
578
+ * @tsplus pipeable fncts.io.IO extend
556
579
  */
557
- export function extend_<R, E, A, B>(wa: IO<R, E, A>, f: (wa: IO<R, E, A>) => B, __tsplusTrace?: string): IO<R, E, B> {
558
- return wa.matchIO(IO.failNow, (_) => IO.succeed(f(wa)));
580
+ export function extend<R, E, A, B>(f: (wa: IO<R, E, A>) => B, __tsplusTrace?: string) {
581
+ return (wa: IO<R, E, A>): IO<R, E, B> => {
582
+ return wa.matchIO(IO.failNow, (_) => IO.succeed(f(wa)));
583
+ };
559
584
  }
560
585
 
561
586
  /**
@@ -602,7 +627,7 @@ export const fiberId: IO<never, never, FiberId> = IO.descriptorWith((d) => IO.su
602
627
  *
603
628
  * @tsplus static fncts.io.IOOps filter
604
629
  */
605
- export function filter_<A, R, E>(
630
+ export function filter<A, R, E>(
606
631
  as: Iterable<A>,
607
632
  f: (a: A) => IO<R, E, boolean>,
608
633
  __tsplusTrace?: string,
@@ -622,7 +647,7 @@ export function filter_<A, R, E>(
622
647
  /**
623
648
  * @tsplus static fncts.io.IOOps filterMap
624
649
  */
625
- export function filterMap_<A, R, E, B>(
650
+ export function filterMap<A, R, E, B>(
626
651
  as: Iterable<A>,
627
652
  f: (a: A) => IO<R, E, Maybe<B>>,
628
653
  __tsplusTrace?: string,
@@ -633,7 +658,7 @@ export function filterMap_<A, R, E, B>(
633
658
  /**
634
659
  * @tsplus static fncts.io.IOOps filterMapWithIndex
635
660
  */
636
- export function filterMapWithIndex_<A, R, E, B>(
661
+ export function filterMapWithIndex<A, R, E, B>(
637
662
  as: Iterable<A>,
638
663
  f: (i: number, a: A) => IO<R, E, Maybe<B>>,
639
664
  __tsplusTrace?: string,
@@ -656,7 +681,7 @@ export function filterMapWithIndex_<A, R, E, B>(
656
681
  *
657
682
  * @tsplus static fncts.io.IOOps filterNot
658
683
  */
659
- export function filterNot_<A, R, E>(
684
+ export function filterNot<A, R, E>(
660
685
  as: Iterable<A>,
661
686
  f: (a: A) => IO<R, E, boolean>,
662
687
  __tsplusTrace?: string,
@@ -667,54 +692,43 @@ export function filterNot_<A, R, E>(
667
692
  /**
668
693
  * Applies `or` if the predicate fails.
669
694
  *
670
- * @tsplus fluent fncts.io.IO filterOrElse
695
+ * @tsplus pipeable fncts.io.IO filterOrElse
671
696
  */
672
- export function filterOrElse_<R, E, A, B extends A, R1, E1, A1>(
673
- fa: IO<R, E, A>,
697
+ export function filterOrElse<A, B extends A, R1, E1, A1>(
674
698
  refinement: Refinement<A, B>,
675
699
  or: (a: Exclude<A, B>) => IO<R1, E1, A1>,
676
700
  __tsplusTrace?: string,
677
- ): IO<R | R1, E | E1, B | A1>;
678
- export function filterOrElse_<R, E, A, R1, E1, A1>(
679
- fa: IO<R, E, A>,
701
+ ): <R, E>(fa: IO<R, E, A>) => IO<R | R1, E | E1, B | A1>;
702
+ export function filterOrElse<A, R1, E1, A1>(
680
703
  predicate: Predicate<A>,
681
704
  or: (a: A) => IO<R1, E1, A1>,
682
705
  __tsplusTrace?: string,
683
- ): IO<R | R1, E | E1, A | A1>;
684
- export function filterOrElse_<R, E, A, R1, E1, A1>(
685
- fa: IO<R, E, A>,
686
- predicate: Predicate<A>,
687
- or: unknown,
688
- __tsplusTrace?: string,
689
- ): IO<R | R1, E | E1, A | A1> {
690
- return flatMap_(
691
- fa,
692
- (a): IO<R1, E1, A | A1> => (predicate(a) ? IO.succeedNow(a) : IO.defer((or as (a: A) => IO<R1, E1, A1>)(a))),
693
- );
706
+ ): <R, E>(fa: IO<R, E, A>) => IO<R | R1, E | E1, A | A1>;
707
+ export function filterOrElse<A>(predicate: Predicate<A>, or: unknown, __tsplusTrace?: string) {
708
+ return <R, E, R1, E1, A1>(fa: IO<R, E, A>): IO<R | R1, E | E1, A | A1> => {
709
+ return fa.flatMap(
710
+ (a): IO<R1, E1, A | A1> => (predicate(a) ? IO.succeedNow(a) : IO.defer((or as (a: A) => IO<R1, E1, A1>)(a))),
711
+ );
712
+ };
694
713
  }
695
714
 
696
715
  /**
697
716
  * Fails with `failWith` if the predicate fails.
698
717
  *
699
- * @tsplus fluent fncts.io.IO filterOrFail
718
+ * @tsplus pipeable fncts.io.IO filterOrFail
700
719
  */
701
- export function filterOrFail_<R, E, A, B extends A, E1>(
702
- fa: IO<R, E, A>,
720
+ export function filterOrFail<A, B extends A, E1>(
703
721
  refinement: Refinement<A, B>,
704
722
  failWith: (a: Exclude<A, B>) => E1,
705
- ): IO<R, E | E1, B>;
706
- export function filterOrFail_<R, E, A, E1>(
707
- fa: IO<R, E, A>,
723
+ ): <R, E>(fa: IO<R, E, A>) => IO<R, E | E1, B>;
724
+ export function filterOrFail<A, E1>(
708
725
  predicate: Predicate<A>,
709
726
  failWith: (a: A) => E1,
710
- ): IO<R, E | E1, A>;
711
- export function filterOrFail_<R, E, A, E1>(
712
- fa: IO<R, E, A>,
713
- predicate: Predicate<A>,
714
- failWith: unknown,
715
- __tsplusTrace?: string,
716
- ): IO<R, E | E1, A> {
717
- return filterOrElse_(fa, predicate, (a) => IO.failNow((failWith as (a: A) => E1)(a)));
727
+ ): <R, E>(fa: IO<R, E, A>) => IO<R, E | E1, A>;
728
+ export function filterOrFail<A>(predicate: Predicate<A>, failWith: unknown, __tsplusTrace?: string) {
729
+ return <R, E, E1>(fa: IO<R, E, A>): IO<R, E | E1, A> => {
730
+ return fa.filterOrElse(predicate, (a) => IO.failNow((failWith as (a: A) => E1)(a)));
731
+ };
718
732
  }
719
733
 
720
734
  /**
@@ -730,27 +744,22 @@ export function firstSuccess<R, E, A>(mas: NonEmptyArray<IO<R, E, A>>, __tsplusT
730
744
  /**
731
745
  * Halts with specified `unknown` if the predicate fails.
732
746
  *
733
- * @tsplus fluent fncts.io.IO filterOrHalt
747
+ * @tsplus pipeable fncts.io.IO filterOrHalt
734
748
  */
735
- export function filterOrHalt_<R, E, A, B extends A>(
736
- fa: IO<R, E, A>,
749
+ export function filterOrHalt<A, B extends A>(
737
750
  refinement: Refinement<A, B>,
738
751
  haltWith: (a: Exclude<A, B>) => unknown,
739
752
  __tsplusTrace?: string,
740
- ): IO<R, E, A>;
741
- export function filterOrHalt_<R, E, A>(
742
- fa: IO<R, E, A>,
753
+ ): <R, E>(fa: IO<R, E, A>) => IO<R, E, A>;
754
+ export function filterOrHalt<A>(
743
755
  predicate: Predicate<A>,
744
756
  haltWith: (a: A) => unknown,
745
757
  __tsplusTrace?: string,
746
- ): IO<R, E, A>;
747
- export function filterOrHalt_<R, E, A>(
748
- fa: IO<R, E, A>,
749
- predicate: Predicate<A>,
750
- haltWith: unknown,
751
- __tsplusTrace?: string,
752
- ): IO<R, E, A> {
753
- return fa.filterOrElse(predicate, (a) => IO.haltNow((haltWith as (a: A) => unknown)(a)));
758
+ ): <R, E>(fa: IO<R, E, A>) => IO<R, E, A>;
759
+ export function filterOrHalt<A>(predicate: Predicate<A>, haltWith: unknown, __tsplusTrace?: string) {
760
+ return <R, E>(fa: IO<R, E, A>): IO<R, E, A> => {
761
+ return fa.filterOrElse(predicate, (a) => IO.haltNow((haltWith as (a: A) => unknown)(a)));
762
+ };
754
763
  }
755
764
 
756
765
  /**
@@ -765,7 +774,7 @@ export function flatten<R, E, R1, E1, A>(self: IO<R, E, IO<R1, E1, A>>, __tsplus
765
774
  *
766
775
  * @tsplus static fncts.io.IOOps foldLeft
767
776
  */
768
- export function foldLeft_<A, B, R, E>(
777
+ export function foldLeft<A, B, R, E>(
769
778
  as: Iterable<A>,
770
779
  b: B,
771
780
  f: (b: B, a: A) => IO<R, E, B>,
@@ -779,7 +788,7 @@ export function foldLeft_<A, B, R, E>(
779
788
  *
780
789
  * @tsplus static fncts.io.IOOps foldMap
781
790
  */
782
- export function foldMap_<R, E, A, M>(
791
+ export function foldMap<R, E, A, M>(
783
792
  as: Iterable<IO<R, E, A>>,
784
793
  f: (a: A) => M,
785
794
  /** @tsplus auto */ M: P.Monoid<M>,
@@ -802,7 +811,7 @@ function foldRightLoop<A, B, R, E>(
802
811
  *
803
812
  * @tsplus static fncts.io.IOOps foldRight
804
813
  */
805
- export function foldRight_<A, B, R, E>(
814
+ export function foldRight<A, B, R, E>(
806
815
  as: Iterable<A>,
807
816
  b: UIO<B>,
808
817
  f: (a: A, b: IO<R, E, B>) => IO<R, E, B>,
@@ -830,7 +839,7 @@ function foreachWithIndexDiscardLoop<A, R, E, B>(
830
839
  *
831
840
  * @tsplus static fncts.io.IOOps foreach
832
841
  */
833
- export function foreach_<A, R, E, B>(
842
+ export function foreach<A, R, E, B>(
834
843
  as: Iterable<A>,
835
844
  f: (a: A) => IO<R, E, B>,
836
845
  __tsplusTrace?: string,
@@ -855,7 +864,7 @@ export function foreach_<A, R, E, B>(
855
864
  *
856
865
  * @tsplus static fncts.io.IOOps foreachWithIndex
857
866
  */
858
- export function foreachWithIndex_<A, R, E, B>(
867
+ export function foreachWithIndex<A, R, E, B>(
859
868
  as: Iterable<A>,
860
869
  f: (i: number, a: A) => IO<R, E, B>,
861
870
  __tsplusTrace?: string,
@@ -874,7 +883,7 @@ export function foreachWithIndex_<A, R, E, B>(
874
883
  /**
875
884
  * @tsplus static fncts.io.IOOps foreachWithIndexDiscard
876
885
  */
877
- export function foreachWithIndexDiscard_<A, R, E, B>(
886
+ export function foreachWithIndexDiscard<A, R, E, B>(
878
887
  as: Iterable<A>,
879
888
  f: (i: number, a: A) => IO<R, E, B>,
880
889
  __tsplusTrace?: string,
@@ -888,7 +897,7 @@ export function foreachWithIndexDiscard_<A, R, E, B>(
888
897
  *
889
898
  * @tsplus static fncts.io.IOOps foreachDiscard
890
899
  */
891
- export function foreachDiscard_<A, R, E, B>(
900
+ export function foreachDiscard<A, R, E, B>(
892
901
  as: Iterable<A>,
893
902
  f: (a: A) => IO<R, E, B>,
894
903
  __tsplusTrace?: string,
@@ -914,7 +923,7 @@ export function forever<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO<R,
914
923
  * new fiber, concurrently and without "blocking" the fiber executing other
915
924
  * IOs. Using fibers can be tricky, so instead of using this method
916
925
  * directly, consider other higher-level methods, such as `raceWith`,
917
- * `zipPar`, and so forth.
926
+ * `zipC`, and so forth.
918
927
  *
919
928
  * The fiber returned by this method has methods interrupt the fiber and to
920
929
  * wait for it to finish executing the IO. See `Fiber` for more
@@ -946,6 +955,7 @@ export function fromEither<E, A>(either: Lazy<Either<E, A>>, __tsplusTrace?: str
946
955
  * Lifts an `Either` into an `IO`
947
956
  *
948
957
  * @tsplus static fncts.io.IOOps fromEitherNow
958
+ * @tsplus getter fncts.Either toIO
949
959
  */
950
960
  export function fromEitherNow<E, A>(either: Either<E, A>, __tsplusTrace?: string): IO<never, E, A> {
951
961
  return either.match(IO.failNow, IO.succeedNow);
@@ -955,6 +965,7 @@ export function fromEitherNow<E, A>(either: Either<E, A>, __tsplusTrace?: string
955
965
  * Lifts an `Eval` into an `IO`
956
966
  *
957
967
  * @tsplus static fncts.io.IOOps fromEval
968
+ * @tsplus getter fncts.Eval toIO
958
969
  */
959
970
  export function fromEval<A>(computation: Eval<A>, __tsplusTrace?: string): IO<never, never, A> {
960
971
  return IO.succeed(computation.run);
@@ -973,6 +984,7 @@ export function fromExit<E, A>(exit: Lazy<Exit<E, A>>, __tsplusTrace?: string):
973
984
  * Creates a `IO` from an exit value
974
985
  *
975
986
  * @tsplus static fncts.io.IOOps fromExitNow
987
+ * @tsplus getter fncts.Exit toIO
976
988
  */
977
989
  export function fromExitNow<E, A>(exit: Exit<E, A>, __tsplusTrace?: string): FIO<E, A> {
978
990
  return exit.match(IO.failCauseNow, IO.succeedNow);
@@ -990,6 +1002,7 @@ export function fromMaybe<A>(maybe: Lazy<Maybe<A>>, __tsplusTrace?: string): FIO
990
1002
 
991
1003
  /**
992
1004
  * @tsplus static fncts.io.IOOps fromMaybeNow
1005
+ * @tsplus getter fncts.Maybe toIO
993
1006
  */
994
1007
  export function fromMaybeNow<A = never>(maybe: Maybe<A>, __tsplusTrace?: string): IO<unknown, Maybe<never>, A> {
995
1008
  return maybe.match(() => IO.failNow(Nothing()), IO.succeedNow);
@@ -1051,27 +1064,23 @@ export function get<R, E, A>(ma: IO<R, E, Maybe<A>>, __tsplusTrace?: string): IO
1051
1064
  /**
1052
1065
  * Extracts the optional value, or returns the given 'orElse'.
1053
1066
  *
1054
- * @tsplus fluent fncts.io.IO getOrElse
1067
+ * @tsplus pipeable fncts.io.IO getOrElse
1055
1068
  */
1056
- export function getOrElse_<R, E, A, B>(
1057
- ma: IO<R, E, Maybe<A>>,
1058
- orElse: Lazy<B>,
1059
- __tsplusTrace?: string,
1060
- ): IO<R, E, A | B> {
1061
- return ma.map((ma) => ma.getOrElse(orElse));
1069
+ export function getOrElse<B>(orElse: Lazy<B>, __tsplusTrace?: string) {
1070
+ return <R, E, A>(ma: IO<R, E, Maybe<A>>): IO<R, E, A | B> => {
1071
+ return ma.map((ma) => ma.getOrElse(orElse));
1072
+ };
1062
1073
  }
1063
1074
 
1064
1075
  /**
1065
1076
  * Extracts the optional value, or executes the effect 'orElse'.
1066
1077
  *
1067
- * @tsplus fluent fncts.io.IO getOrElseIO
1078
+ * @tsplus pipeable fncts.io.IO getOrElseIO
1068
1079
  */
1069
- export function getOrElseIO_<R, E, A, R1, E1, B>(
1070
- ma: IO<R, E, Maybe<A>>,
1071
- orElse: Lazy<IO<R1, E1, B>>,
1072
- __tsplusTrace?: string,
1073
- ): IO<R | R1, E | E1, A | B> {
1074
- return (ma as IO<R, E, Maybe<A | B>>).flatMap((mab) => mab.map(IO.succeedNow).getOrElse(orElse));
1080
+ export function getOrElseIO<R1, E1, B>(orElse: Lazy<IO<R1, E1, B>>, __tsplusTrace?: string) {
1081
+ return <R, E, A>(ma: IO<R, E, Maybe<A>>): IO<R | R1, E | E1, A | B> => {
1082
+ return (ma as IO<R, E, Maybe<A | B>>).flatMap((mab) => mab.map(IO.succeedNow).getOrElse(orElse));
1083
+ };
1075
1084
  }
1076
1085
 
1077
1086
  /**
@@ -1079,7 +1088,7 @@ export function getOrElseIO_<R, E, A, R1, E1, B>(
1079
1088
  *
1080
1089
  * @tsplus static fncts.io.IOOps getOrFailWith
1081
1090
  */
1082
- export function getOrFailWith_<E, A>(maybe: Maybe<A>, onNothing: Lazy<E>, __tsplusTrace?: string): FIO<E, A> {
1091
+ export function getOrFailWith<E, A>(maybe: Maybe<A>, onNothing: Lazy<E>, __tsplusTrace?: string): FIO<E, A> {
1083
1092
  return IO.defer(maybe.match(() => IO.fail(onNothing), IO.succeedNow));
1084
1093
  }
1085
1094
 
@@ -1113,23 +1122,23 @@ export function halt(e: Lazy<unknown>, __tsplusTrace?: string): UIO<never> {
1113
1122
  export function haltNow(e: unknown, __tsplusTrace?: string): UIO<never> {
1114
1123
  return IO.failCauseNow(Cause.halt(e, Trace.none), __tsplusTrace);
1115
1124
  }
1116
-
1117
1125
  /**
1118
- * @tsplus fluent fncts.io.IO ifIO
1126
+ * @tsplus pipeable fncts.io.IO ifIO
1119
1127
  */
1120
- export function ifIO_<R, E, R1, E1, B, R2, E2, C>(
1121
- self: IO<R, E, boolean>,
1128
+ export function ifIO<R1, E1, B, R2, E2, C>(
1122
1129
  onFalse: Lazy<IO<R1, E1, B>>,
1123
1130
  onTrue: Lazy<IO<R2, E2, C>>,
1124
1131
  __tsplusTrace?: string,
1125
- ): IO<R | R1 | R2, E | E1 | E2, B | C> {
1126
- return self.flatMap((b) => (b ? onTrue() : onFalse()));
1132
+ ) {
1133
+ return <R, E>(self: IO<R, E, boolean>): IO<R | R1 | R2, E | E1 | E2, B | C> => {
1134
+ return self.flatMap((b) => (b ? onTrue() : onFalse()));
1135
+ };
1127
1136
  }
1128
1137
 
1129
1138
  /**
1130
1139
  * @tsplus static fncts.io.IOOps if
1131
1140
  */
1132
- export function if_<R, E, A, R1, E1, A1>(
1141
+ export function cond<R, E, A, R1, E1, A1>(
1133
1142
  b: boolean,
1134
1143
  onTrue: Lazy<IO<R, E, A>>,
1135
1144
  onFalse: Lazy<IO<R1, E1, A1>>,
@@ -1171,6 +1180,7 @@ export function isSuccess<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO<
1171
1180
  () => true,
1172
1181
  );
1173
1182
  }
1183
+
1174
1184
  /**
1175
1185
  * Iterates with the specified effectual function. The moral equivalent of:
1176
1186
  *
@@ -1186,7 +1196,7 @@ export function isSuccess<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO<
1186
1196
  *
1187
1197
  * @tsplus static fncts.io.IOOps iterate
1188
1198
  */
1189
- export function iterate_<R, E, A>(
1199
+ export function iterate<R, E, A>(
1190
1200
  initial: A,
1191
1201
  cont: (a: A) => boolean,
1192
1202
  body: (a: A) => IO<R, E, A>,
@@ -1229,7 +1239,7 @@ export function log(message: Lazy<string>, __tsplusTrace?: string): UIO<void> {
1229
1239
  *
1230
1240
  * @tsplus static fncts.io.IOOps loop
1231
1241
  */
1232
- export function loop_<A, R, E, B>(
1242
+ export function loop<A, R, E, B>(
1233
1243
  initial: A,
1234
1244
  cont: (a: A) => boolean,
1235
1245
  inc: (b: A) => A,
@@ -1258,7 +1268,7 @@ export function loop_<A, R, E, B>(
1258
1268
  *
1259
1269
  * @tsplus static fncts.io.IOOps loopUnit
1260
1270
  */
1261
- export function loopUnit_<A, R, E>(
1271
+ export function loopUnit<A, R, E>(
1262
1272
  initial: A,
1263
1273
  cont: (a: A) => boolean,
1264
1274
  inc: (a: A) => A,
@@ -1275,10 +1285,12 @@ export function loopUnit_<A, R, E>(
1275
1285
  /**
1276
1286
  * Returns an `IO` whose success is mapped by the specified function `f`.
1277
1287
  *
1278
- * @tsplus fluent fncts.io.IO map
1288
+ * @tsplus pipeable fncts.io.IO map
1279
1289
  */
1280
- export function map_<R, E, A, B>(fa: IO<R, E, A>, f: (a: A) => B, __tsplusTrace?: string): IO<R, E, B> {
1281
- return fa.flatMap((a) => IO.succeedNow(f(a)));
1290
+ export function map<A, B>(f: (a: A) => B, __tsplusTrace?: string) {
1291
+ return <R, E>(fa: IO<R, E, A>): IO<R, E, B> => {
1292
+ return fa.flatMap((a) => IO.succeedNow(f(a)));
1293
+ };
1282
1294
  }
1283
1295
 
1284
1296
  /**
@@ -1288,16 +1300,18 @@ export function map_<R, E, A, B>(fa: IO<R, E, A>, f: (a: A) => B, __tsplusTrace?
1288
1300
  * function. This can be used to lift a "smaller" error into a "larger"
1289
1301
  * error.
1290
1302
  *
1291
- * @tsplus fluent fncts.io.IO mapError
1303
+ * @tsplus pipeable fncts.io.IO mapError
1292
1304
  */
1293
- export function mapError_<R, E, A, E1>(fea: IO<R, E, A>, f: (e: E) => E1, __tsplusTrace?: string): IO<R, E1, A> {
1294
- return fea.matchCauseIO((cause) => IO.failCauseNow(cause.map(f)), IO.succeedNow);
1305
+ export function mapError<E, E1>(f: (e: E) => E1, __tsplusTrace?: string) {
1306
+ return <R, A>(fea: IO<R, E, A>): IO<R, E1, A> => {
1307
+ return fea.matchCauseIO((cause) => IO.failCauseNow(cause.map(f)), IO.succeedNow);
1308
+ };
1295
1309
  }
1296
1310
 
1297
1311
  /**
1298
1312
  * @tsplus static fncts.io.IOOps mapTryCatch
1299
1313
  */
1300
- export function mapTryCatch_<R, E, A, E1, B>(
1314
+ export function mapTryCatch<R, E, A, E1, B>(
1301
1315
  io: IO<R, E, A>,
1302
1316
  f: (a: A) => B,
1303
1317
  onThrow: (u: unknown) => E1,
@@ -1311,57 +1325,58 @@ export function mapTryCatch_<R, E, A, E1, B>(
1311
1325
  * the specified function. This can be used to transform errors
1312
1326
  * while preserving the original structure of Cause.
1313
1327
  *
1314
- * @tsplus fluent fncts.io.IO mapErrorCause
1328
+ * @tsplus pipeable fncts.io.IO mapErrorCause
1315
1329
  */
1316
- export function mapErrorCause_<R, E, A, E1>(
1317
- ma: IO<R, E, A>,
1318
- f: (cause: Cause<E>) => Cause<E1>,
1319
- __tsplusTrace?: string,
1320
- ): IO<R, E1, A> {
1321
- return ma.matchCauseIO((cause) => IO.failCauseNow(f(cause)), IO.succeedNow);
1330
+ export function mapErrorCause<E, E1>(f: (cause: Cause<E>) => Cause<E1>, __tsplusTrace?: string) {
1331
+ return <R, A>(ma: IO<R, E, A>): IO<R, E1, A> => {
1332
+ return ma.matchCauseIO((cause) => IO.failCauseNow(f(cause)), IO.succeedNow);
1333
+ };
1322
1334
  }
1323
1335
 
1324
1336
  /**
1325
1337
  * A more powerful version of `match_` that allows recovering from any kind of failure except interruptions.
1326
1338
  *
1327
- * @tsplus fluent fncts.io.IO matchCause
1339
+ * @tsplus pipeable fncts.io.IO matchCause
1328
1340
  */
1329
- export function matchCause_<R, E, A, A1, A2>(
1330
- self: IO<R, E, A>,
1341
+ export function matchCause<E, A, A1, A2>(
1331
1342
  onFailure: (cause: Cause<E>) => A1,
1332
1343
  onSuccess: (a: A) => A2,
1333
1344
  __tsplusTrace?: string,
1334
- ): IO<R, never, A1 | A2> {
1335
- return self.matchCauseIO(
1336
- (cause) => IO.succeedNow(onFailure(cause)),
1337
- (a) => IO.succeedNow(onSuccess(a)),
1338
- );
1345
+ ) {
1346
+ return <R>(self: IO<R, E, A>): IO<R, never, A1 | A2> => {
1347
+ return self.matchCauseIO(
1348
+ (cause) => IO.succeedNow(onFailure(cause)),
1349
+ (a) => IO.succeedNow(onSuccess(a)),
1350
+ );
1351
+ };
1339
1352
  }
1340
1353
 
1341
1354
  /**
1342
1355
  * A more powerful version of `matchIO` that allows recovering from any kind of failure except interruptions.
1343
1356
  *
1344
- * @tsplus fluent fncts.io.IO matchCauseIO
1357
+ * @tsplus pipeable fncts.io.IO matchCauseIO
1345
1358
  */
1346
- export function matchCauseIO_<R, E, A, R1, E1, A1, R2, E2, A2>(
1347
- self: IO<R, E, A>,
1359
+ export function matchCauseIO<E, A, R1, E1, A1, R2, E2, A2>(
1348
1360
  onFailure: (cause: Cause<E>) => IO<R1, E1, A1>,
1349
1361
  onSuccess: (a: A) => IO<R2, E2, A2>,
1350
1362
  __tsplusTrace?: string,
1351
- ): IO<R | R1 | R2, E1 | E2, A1 | A2> {
1352
- return new Match(self, onFailure, onSuccess, __tsplusTrace);
1363
+ ) {
1364
+ return <R>(self: IO<R, E, A>): IO<R | R1 | R2, E1 | E2, A1 | A2> => {
1365
+ return new Match(self, onFailure, onSuccess, __tsplusTrace);
1366
+ };
1353
1367
  }
1354
1368
 
1355
1369
  /**
1356
- * @tsplus fluent fncts.io.IO matchIO
1370
+ * @tsplus pipeable fncts.io.IO matchIO
1357
1371
  */
1358
- export function matchIO_<R, R1, R2, E, E1, E2, A, A1, A2>(
1359
- self: IO<R, E, A>,
1372
+ export function matchIO<R1, R2, E, E1, E2, A, A1, A2>(
1360
1373
  onFailure: (e: E) => IO<R1, E1, A1>,
1361
1374
  onSuccess: (a: A) => IO<R2, E2, A2>,
1362
1375
  __tsplusTrace?: string,
1363
- ): IO<R | R1 | R2, E1 | E2, A1 | A2> {
1364
- return self.matchCauseIO((cause) => cause.failureOrCause.match(onFailure, IO.failCauseNow), onSuccess);
1376
+ ) {
1377
+ return <R>(self: IO<R, E, A>): IO<R | R1 | R2, E1 | E2, A1 | A2> => {
1378
+ return self.matchCauseIO((cause) => cause.failureOrCause.match(onFailure, IO.failCauseNow), onSuccess);
1379
+ };
1365
1380
  }
1366
1381
 
1367
1382
  /**
@@ -1369,35 +1384,33 @@ export function matchIO_<R, R1, R2, E, E1, E2, A, A1, A2>(
1369
1384
  * does not fail, but succeeds with the value returned by the left or right
1370
1385
  * function passed to `match_`.
1371
1386
  *
1372
- * @tsplus fluent fncts.io.IO match
1387
+ * @tsplus pipeable fncts.io.IO match
1373
1388
  */
1374
- export function match_<R, E, A, B, C>(
1375
- self: IO<R, E, A>,
1376
- onFailure: (e: E) => B,
1377
- onSuccess: (a: A) => C,
1378
- __tsplusTrace?: string,
1379
- ): IO<R, never, B | C> {
1380
- return self.matchIO(
1381
- (e) => IO.succeedNow(onFailure(e)),
1382
- (a) => IO.succeedNow(onSuccess(a)),
1383
- );
1389
+ export function match<E, A, B, C>(onFailure: (e: E) => B, onSuccess: (a: A) => C, __tsplusTrace?: string) {
1390
+ return <R>(self: IO<R, E, A>): IO<R, never, B | C> => {
1391
+ return self.matchIO(
1392
+ (e) => IO.succeedNow(onFailure(e)),
1393
+ (a) => IO.succeedNow(onSuccess(a)),
1394
+ );
1395
+ };
1384
1396
  }
1385
1397
 
1386
1398
  /**
1387
1399
  * A version of `matchIO` that gives you the (optional) trace of the error.
1388
1400
  *
1389
- * @tsplus fluent fncts.io.IO matchTraceIO
1401
+ * @tsplus pipeable fncts.io.IO matchTraceIO
1390
1402
  */
1391
- export function matchTraceIO_<R, E, A, R1, E1, A1, R2, E2, A2>(
1392
- ma: IO<R, E, A>,
1403
+ export function matchTraceIO<E, A, R1, E1, A1, R2, E2, A2>(
1393
1404
  onFailure: (e: E, trace: Trace) => IO<R1, E1, A1>,
1394
1405
  onSuccess: (a: A) => IO<R2, E2, A2>,
1395
1406
  __tsplusTrace?: string,
1396
- ): IO<R | R1 | R2, E1 | E2, A1 | A2> {
1397
- return ma.matchCauseIO(
1398
- (cause) => cause.failureTraceOrCause.match(([e, trace]) => onFailure(e, trace), IO.failCauseNow),
1399
- onSuccess,
1400
- );
1407
+ ) {
1408
+ return <R>(ma: IO<R, E, A>): IO<R | R1 | R2, E1 | E2, A1 | A2> => {
1409
+ return ma.matchCauseIO(
1410
+ (cause) => cause.failureTraceOrCause.match(([e, trace]) => onFailure(e, trace), IO.failCauseNow),
1411
+ onSuccess,
1412
+ );
1413
+ };
1401
1414
  }
1402
1415
 
1403
1416
  /**
@@ -1419,7 +1432,7 @@ export function merge<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string): IO<R, n
1419
1432
  *
1420
1433
  * @tsplus static fncts.io.IOOps mergeAll
1421
1434
  */
1422
- export function mergeAll_<R, E, A, B>(
1435
+ export function mergeAll<R, E, A, B>(
1423
1436
  fas: Iterable<IO<R, E, A>>,
1424
1437
  b: B,
1425
1438
  f: (b: B, a: A) => B,
@@ -1465,61 +1478,58 @@ export function optional<R, E, A>(ma: IO<R, Maybe<E>, A>, __tsplusTrace?: string
1465
1478
  * operator has "short circuiting" behavior so if the value returned by this
1466
1479
  * effect is true the specified effect will not be evaluated.
1467
1480
  *
1468
- * @tsplus fluent fncts.io.IO or
1481
+ * @tsplus pipeable fncts.io.IO or
1482
+ * @tsplus pipeable-operator fncts.io.IO ||
1469
1483
  */
1470
- export function or_<R, E, R1, E1>(
1471
- ma: IO<R, E, boolean>,
1472
- mb: IO<R1, E1, boolean>,
1473
- __tsplusTrace?: string,
1474
- ): IO<R | R1, E | E1, boolean> {
1475
- return ma.flatMap((b) => (b ? IO.succeedNow(true) : mb));
1484
+ export function or<R1, E1>(mb: IO<R1, E1, boolean>, __tsplusTrace?: string) {
1485
+ return <R, E>(ma: IO<R, E, boolean>): IO<R | R1, E | E1, boolean> => {
1486
+ return ma.flatMap((b) => (b ? IO.succeedNow(true) : mb));
1487
+ };
1476
1488
  }
1477
1489
 
1478
1490
  /**
1479
- * @tsplus fluent fncts.io.IO orElse
1491
+ * @tsplus pipeable fncts.io.IO orElse
1480
1492
  */
1481
- export function orElse_<R, E, A, R1, E1, A1>(
1482
- ma: IO<R, E, A>,
1483
- that: Lazy<IO<R1, E1, A1>>,
1484
- __tsplusTrace?: string,
1485
- ): IO<R | R1, E1, A | A1> {
1486
- return tryOrElse_(ma, that, IO.succeedNow);
1493
+ export function orElse<R1, E1, A1>(that: Lazy<IO<R1, E1, A1>>, __tsplusTrace?: string) {
1494
+ return <R, E, A>(ma: IO<R, E, A>): IO<R | R1, E1, A | A1> => {
1495
+ return ma.tryOrElse(that, IO.succeedNow);
1496
+ };
1487
1497
  }
1488
1498
 
1489
1499
  /**
1490
- * @tsplus fluent fncts.io.IO orElseEither
1500
+ * @tsplus pipeable fncts.io.IO orElseEither
1491
1501
  */
1492
- export function orElseEither_<R, E, A, R1, E1, A1>(
1493
- self: IO<R, E, A>,
1494
- that: Lazy<IO<R1, E1, A1>>,
1495
- __tsplusTrace?: string,
1496
- ): IO<R | R1, E1, Either<A, A1>> {
1497
- return self.tryOrElse(that().map(Either.right), (a) => IO.succeedNow(Either.left(a)));
1502
+ export function orElseEither<R1, E1, A1>(that: Lazy<IO<R1, E1, A1>>, __tsplusTrace?: string) {
1503
+ return <R, E, A>(self: IO<R, E, A>): IO<R | R1, E1, Either<A, A1>> => {
1504
+ return self.tryOrElse(that().map(Either.right), (a) => IO.succeedNow(Either.left(a)));
1505
+ };
1498
1506
  }
1499
1507
 
1500
1508
  /**
1501
- * @tsplus fluent fncts.io.IO orElseFail
1509
+ * @tsplus pipeable fncts.io.IO orElseFail
1502
1510
  */
1503
- export function orElseFail_<R, E, A, E1>(ma: IO<R, E, A>, e: Lazy<E1>, __tsplusTrace?: string): IO<R, E1, A> {
1504
- return ma.orElse(IO.fail(e));
1511
+ export function orElseFail<E1>(e: Lazy<E1>, __tsplusTrace?: string) {
1512
+ return <R, E, A>(ma: IO<R, E, A>): IO<R, E1, A> => {
1513
+ return ma.orElse(IO.fail(e));
1514
+ };
1505
1515
  }
1506
1516
 
1507
1517
  /**
1508
- * @tsplus fluent fncts.io.IO orElseMaybe
1518
+ * @tsplus pipeable fncts.io.IO orElseMaybe
1509
1519
  */
1510
- export function orElseMaybe_<R, E, A, R1, E1, A1>(
1511
- ma: IO<R, Maybe<E>, A>,
1512
- that: Lazy<IO<R1, Maybe<E1>, A1>>,
1513
- __tsplusTrace?: string,
1514
- ): IO<R | R1, Maybe<E | E1>, A | A1> {
1515
- return ma.catchAll((me) => me.match(that, (e) => IO.fail(Just(e))));
1520
+ export function orElseMaybe<R1, E1, A1>(that: Lazy<IO<R1, Maybe<E1>, A1>>, __tsplusTrace?: string) {
1521
+ return <R, E, A>(ma: IO<R, Maybe<E>, A>): IO<R | R1, Maybe<E | E1>, A | A1> => {
1522
+ return ma.catchAll((me) => me.match(that, (e) => IO.fail(Just(e))));
1523
+ };
1516
1524
  }
1517
1525
 
1518
1526
  /**
1519
- * @tsplus fluent fncts.io.IO orElseSucceed
1527
+ * @tsplus pipeable fncts.io.IO orElseSucceed
1520
1528
  */
1521
- export function orElseSucceed_<R, E, A, A1>(ma: IO<R, E, A>, a: Lazy<A1>, __tsplusTrace?: string): IO<R, E, A | A1> {
1522
- return ma.orElse(IO.succeed(a));
1529
+ export function orElseSucceed<A1>(a: Lazy<A1>, __tsplusTrace?: string) {
1530
+ return <R, E, A>(ma: IO<R, E, A>): IO<R, E, A | A1> => {
1531
+ return ma.orElse(IO.succeed(a));
1532
+ };
1523
1533
  }
1524
1534
 
1525
1535
  /**
@@ -1537,26 +1547,30 @@ export function orHaltKeep<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO
1537
1547
  }
1538
1548
 
1539
1549
  /**
1540
- * @tsplus fluent fncts.io.IO orHaltWith
1550
+ * @tsplus pipeable fncts.io.IO orHaltWith
1541
1551
  */
1542
- export function orHaltWith_<R, E, A>(ma: IO<R, E, A>, f: (e: E) => unknown, __tsplusTrace?: string): IO<R, never, A> {
1543
- return matchIO_(ma, (e) => IO.haltNow(f(e)), IO.succeedNow);
1552
+ export function orHaltWith<E>(f: (e: E) => unknown, __tsplusTrace?: string) {
1553
+ return <R, A>(ma: IO<R, E, A>): IO<R, never, A> => {
1554
+ return ma.matchIO((e) => IO.haltNow(f(e)), IO.succeedNow);
1555
+ };
1544
1556
  }
1545
1557
 
1546
1558
  /**
1547
1559
  * Exposes all parallel errors in a single call
1548
1560
  *
1549
- * @tsplus fluent fncts.io.IO parallelErrors
1561
+ * @tsplus pipeable fncts.io.IO concurrentErrors
1550
1562
  */
1551
- export function parallelErrors<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string): IO<R, List<E>, A> {
1552
- return io.matchCauseIO((cause) => {
1553
- const f = cause.failures;
1554
- if (f.length === 0) {
1555
- return IO.failCauseNow(cause as Cause<never>);
1556
- } else {
1557
- return IO.failNow(f);
1558
- }
1559
- }, IO.succeedNow);
1563
+ export function concurrentErrors(__tsplusTrace?: string) {
1564
+ return <R, E, A>(io: IO<R, E, A>): IO<R, List<E>, A> => {
1565
+ return io.matchCauseIO((cause) => {
1566
+ const f = cause.failures;
1567
+ if (f.length === 0) {
1568
+ return IO.failCauseNow(cause as Cause<never>);
1569
+ } else {
1570
+ return IO.failNow(f);
1571
+ }
1572
+ }, IO.succeedNow);
1573
+ };
1560
1574
  }
1561
1575
 
1562
1576
  /**
@@ -1565,7 +1579,7 @@ export function parallelErrors<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string)
1565
1579
  *
1566
1580
  * @tsplus static fncts.io.IOOps partition
1567
1581
  */
1568
- export function partition_<R, E, A, B>(
1582
+ export function partition<R, E, A, B>(
1569
1583
  as: Iterable<A>,
1570
1584
  f: (a: A) => IO<R, E, B>,
1571
1585
  __tsplusTrace?: string,
@@ -1576,43 +1590,36 @@ export function partition_<R, E, A, B>(
1576
1590
  /**
1577
1591
  * Keeps some of the errors, and terminates the fiber with the rest
1578
1592
  *
1579
- * @tsplus fluent fncts.io.IO refineOrHalt
1593
+ * @tsplus pipeable fncts.io.IO refineOrHalt
1580
1594
  */
1581
- export function refineOrHalt_<R, E, A, E1>(
1582
- fa: IO<R, E, A>,
1583
- pf: (e: E) => Maybe<E1>,
1584
- __tsplusTrace?: string,
1585
- ): IO<R, E1, A> {
1586
- return fa.refineOrHaltWith(pf, identity);
1595
+ export function refineOrHalt<E, E1>(pf: (e: E) => Maybe<E1>, __tsplusTrace?: string) {
1596
+ return <R, A>(fa: IO<R, E, A>): IO<R, E1, A> => {
1597
+ return fa.refineOrHaltWith(pf, identity);
1598
+ };
1587
1599
  }
1588
1600
 
1589
1601
  /**
1590
1602
  * Keeps some of the errors, and terminates the fiber with the rest, using
1591
1603
  * the specified function to convert the `E` into a `Throwable`.
1592
1604
  *
1593
- * @tsplus fluent fncts.io.IO refineOrHaltWith
1605
+ * @tsplus pipeable fncts.io.IO refineOrHaltWith
1594
1606
  */
1595
- export function refineOrHaltWith_<R, E, A, E1>(
1596
- fa: IO<R, E, A>,
1597
- pf: (e: E) => Maybe<E1>,
1598
- f: (e: E) => unknown,
1599
- __tsplusTrace?: string,
1600
- ): IO<R, E1, A> {
1601
- return fa.catchAll((e) => pf(e).match(() => IO.haltNow(f(e)), IO.failNow));
1607
+ export function refineOrHaltWith<E, E1>(pf: (e: E) => Maybe<E1>, f: (e: E) => unknown, __tsplusTrace?: string) {
1608
+ return <R, A>(fa: IO<R, E, A>): IO<R, E1, A> => {
1609
+ return fa.catchAll((e) => pf(e).match(() => IO.haltNow(f(e)), IO.failNow));
1610
+ };
1602
1611
  }
1603
1612
 
1604
1613
  /**
1605
1614
  * Fail with the returned value if the partial function `pf` matches, otherwise
1606
1615
  * continue with the held value.
1607
1616
  *
1608
- * @tsplus fluent fncts.io.IO reject
1617
+ * @tsplus pipeable fncts.io.IO reject
1609
1618
  */
1610
- export function reject_<R, E, A, E1>(
1611
- fa: IO<R, E, A>,
1612
- pf: (a: A) => Maybe<E1>,
1613
- __tsplusTrace?: string,
1614
- ): IO<R, E | E1, A> {
1615
- return fa.rejectIO((a) => pf(a).map(IO.failNow));
1619
+ export function reject<A, E1>(pf: (a: A) => Maybe<E1>, __tsplusTrace?: string) {
1620
+ return <R, E>(fa: IO<R, E, A>): IO<R, E | E1, A> => {
1621
+ return fa.rejectIO((a) => pf(a).map(IO.failNow));
1622
+ };
1616
1623
  }
1617
1624
 
1618
1625
  /**
@@ -1620,86 +1627,90 @@ export function reject_<R, E, A, E1>(
1620
1627
  * translating the successful match into a failure, otherwise continue with
1621
1628
  * the held value.
1622
1629
  *
1623
- * @tsplus fluent fncts.io.IO rejectIO
1630
+ * @tsplus pipeable fncts.io.IO rejectIO
1624
1631
  */
1625
- export function rejectIO_<R, E, A, R1, E1>(
1626
- fa: IO<R, E, A>,
1627
- pf: (a: A) => Maybe<IO<R1, E1, E1>>,
1628
- __tsplusTrace?: string,
1629
- ): IO<R | R1, E | E1, A> {
1630
- return fa.flatMap((a) =>
1631
- pf(a).match(
1632
- () => IO.succeedNow(a),
1633
- (io) => io.flatMap(IO.failNow),
1634
- ),
1635
- );
1632
+ export function rejectIO<A, R1, E1>(pf: (a: A) => Maybe<IO<R1, E1, E1>>, __tsplusTrace?: string) {
1633
+ return <R, E>(fa: IO<R, E, A>): IO<R | R1, E | E1, A> => {
1634
+ return fa.flatMap((a) =>
1635
+ pf(a).match(
1636
+ () => IO.succeedNow(a),
1637
+ (io) => io.flatMap(IO.failNow),
1638
+ ),
1639
+ );
1640
+ };
1636
1641
  }
1637
1642
 
1638
1643
  /**
1639
1644
  * Repeats this effect the specified number of times.
1640
1645
  *
1641
- * @tsplus fluent fncts.io.IO repeatN
1646
+ * @tsplus pipeable fncts.io.IO repeatN
1642
1647
  */
1643
- export function repeatN_<R, E, A>(ma: IO<R, E, A>, n: number, __tsplusTrace?: string): IO<R, E, A> {
1644
- return ma.flatMap((a) => (n <= 0 ? IO.succeed(a) : ma.repeatN(n - 1)));
1648
+ export function repeatN_(n: number, __tsplusTrace?: string) {
1649
+ return <R, E, A>(ma: IO<R, E, A>): IO<R, E, A> => {
1650
+ return ma.flatMap((a) => (n <= 0 ? IO.succeed(a) : ma.repeatN(n - 1)));
1651
+ };
1645
1652
  }
1646
1653
 
1647
1654
  /**
1648
1655
  * Repeats this effect until its result satisfies the specified predicate.
1649
1656
  *
1650
- * @tsplus fluent fncts.io.IO repeatUntil
1657
+ * @tsplus pipeable fncts.io.IO repeatUntil
1651
1658
  */
1652
- export function repeatUntil_<R, E, A>(ma: IO<R, E, A>, f: (a: A) => boolean, __tsplusTrace?: string): IO<R, E, A> {
1653
- return ma.repeatUntilIO((a) => IO.succeedNow(f(a)));
1659
+ export function repeatUntil<A>(f: (a: A) => boolean, __tsplusTrace?: string) {
1660
+ return <R, E>(ma: IO<R, E, A>): IO<R, E, A> => {
1661
+ return ma.repeatUntilIO((a) => IO.succeedNow(f(a)));
1662
+ };
1654
1663
  }
1655
1664
 
1656
1665
  /**
1657
1666
  * Repeats this effect until its error satisfies the specified effectful predicate.
1658
1667
  *
1659
- * @tsplus fluent fncts.io.IO repeatUntilIO
1668
+ * @tsplus pipeable fncts.io.IO repeatUntilIO
1660
1669
  */
1661
- export function repeatUntilIO_<R, E, A, R1, E1>(
1662
- ma: IO<R, E, A>,
1663
- f: (a: A) => IO<R1, E1, boolean>,
1664
- __tsplusTrace?: string,
1665
- ): IO<R | R1, E | E1, A> {
1666
- return ma.flatMap((a) => f(a).flatMap((b) => (b ? IO.succeed(a) : ma.repeatUntilIO(f))));
1670
+ export function repeatUntilIO<A, R1, E1>(f: (a: A) => IO<R1, E1, boolean>, __tsplusTrace?: string) {
1671
+ return <R, E>(ma: IO<R, E, A>): IO<R | R1, E | E1, A> => {
1672
+ return ma.flatMap((a) => f(a).flatMap((b) => (b ? IO.succeed(a) : ma.repeatUntilIO(f))));
1673
+ };
1667
1674
  }
1668
1675
 
1669
1676
  /**
1670
1677
  * Repeats this effect while its error satisfies the specified predicate.
1671
1678
  *
1672
- * @tsplus fluent fncts.io.IO repeatWhile
1679
+ * @tsplus pipeable fncts.io.IO repeatWhile
1673
1680
  */
1674
- export function repeatWhile_<R, E, A>(ma: IO<R, E, A>, f: (a: A) => boolean, __tsplusTrace?: string): IO<R, E, A> {
1675
- return ma.repeatWhileIO((a) => IO.succeedNow(f(a)));
1681
+ export function repeatWhile<A>(f: (a: A) => boolean, __tsplusTrace?: string) {
1682
+ return <R, E>(ma: IO<R, E, A>): IO<R, E, A> => {
1683
+ return ma.repeatWhileIO((a) => IO.succeedNow(f(a)));
1684
+ };
1676
1685
  }
1677
1686
 
1678
1687
  /**
1679
1688
  * Repeats this effect while its error satisfies the specified effectful predicate.
1680
1689
  *
1681
- * @tsplus fluent fncts.io.IO repeatWhileIO
1690
+ * @tsplus pipeable fncts.io.IO repeatWhileIO
1682
1691
  */
1683
- export function repeatWhileIO_<R, E, A, R1, E1>(
1684
- ma: IO<R, E, A>,
1685
- f: (a: A) => IO<R1, E1, boolean>,
1686
- __tsplusTrace?: string,
1687
- ): IO<R | R1, E | E1, A> {
1688
- return ma.flatMap((a) => f(a).flatMap((b) => (b ? ma.repeatWhileIO(f) : IO.succeed(a))));
1692
+ export function repeatWhileIO<A, R1, E1>(f: (a: A) => IO<R1, E1, boolean>, __tsplusTrace?: string) {
1693
+ return <R, E>(ma: IO<R, E, A>): IO<R | R1, E | E1, A> => {
1694
+ return ma.flatMap((a) => f(a).flatMap((b) => (b ? ma.repeatWhileIO(f) : IO.succeed(a))));
1695
+ };
1689
1696
  }
1690
1697
 
1691
1698
  /**
1692
- * @tsplus fluent fncts.io.IO replicate
1699
+ * @tsplus pipeable fncts.io.IO replicate
1693
1700
  */
1694
- export function replicate_<R, E, A>(self: IO<R, E, A>, n: number, __tsplusTrace?: string): ImmutableArray<IO<R, E, A>> {
1695
- return ImmutableArray.range(0, n).map(() => self);
1701
+ export function replicate(n: number, __tsplusTrace?: string) {
1702
+ return <R, E, A>(self: IO<R, E, A>): ImmutableArray<IO<R, E, A>> => {
1703
+ return ImmutableArray.range(0, n).map(() => self);
1704
+ };
1696
1705
  }
1697
1706
 
1698
1707
  /**
1699
- * @tsplus fluent fncts.io.IO require
1708
+ * @tsplus pipeable fncts.io.IO require
1700
1709
  */
1701
- export function require_<R, E, A>(ma: IO<R, E, Maybe<A>>, error: Lazy<E>, __tsplusTrace?: string): IO<R, E, A> {
1702
- return ma.flatMap((ma) => ma.match(() => IO.fail(error), IO.succeedNow));
1710
+ export function require<E>(error: Lazy<E>, __tsplusTrace?: string) {
1711
+ return <R, A>(ma: IO<R, E, Maybe<A>>): IO<R, E, A> => {
1712
+ return ma.flatMap((ma) => ma.match(() => IO.fail(error), IO.succeedNow));
1713
+ };
1703
1714
  }
1704
1715
 
1705
1716
  /**
@@ -1727,45 +1738,45 @@ export function resurrect<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string): IO<
1727
1738
  /**
1728
1739
  * Retries this effect until its error satisfies the specified predicate.
1729
1740
  *
1730
- * @tsplus fluent fncts.io.IO retryUntil
1741
+ * @tsplus pipeable fncts.io.IO retryUntil
1731
1742
  */
1732
- export function retryUntil_<R, E, A>(fa: IO<R, E, A>, f: (e: E) => boolean, __tsplusTrace?: string): IO<R, E, A> {
1733
- return fa.retryUntilIO((e) => IO.succeedNow(f(e)));
1743
+ export function retryUntil<E>(f: (e: E) => boolean, __tsplusTrace?: string) {
1744
+ return <R, A>(fa: IO<R, E, A>): IO<R, E, A> => {
1745
+ return fa.retryUntilIO((e) => IO.succeedNow(f(e)));
1746
+ };
1734
1747
  }
1735
1748
 
1736
1749
  /**
1737
1750
  * Retries this effect until its error satisfies the specified effectful predicate.
1738
1751
  *
1739
- * @tsplus fluent fncts.io.IO retryUntilIO
1752
+ * @tsplus pipeable fncts.io.IO retryUntilIO
1740
1753
  */
1741
- export function retryUntilIO_<R, E, A, R1, E1>(
1742
- fa: IO<R, E, A>,
1743
- f: (e: E) => IO<R1, E1, boolean>,
1744
- __tsplusTrace?: string,
1745
- ): IO<R | R1, E | E1, A> {
1746
- return fa.catchAll((e) => f(e).flatMap((b) => (b ? IO.failNow(e) : fa.retryUntilIO(f))));
1754
+ export function retryUntilIO<E, R1, E1>(f: (e: E) => IO<R1, E1, boolean>, __tsplusTrace?: string) {
1755
+ return <R, A>(fa: IO<R, E, A>): IO<R | R1, E | E1, A> => {
1756
+ return fa.catchAll((e) => f(e).flatMap((b) => (b ? IO.failNow(e) : fa.retryUntilIO(f))));
1757
+ };
1747
1758
  }
1748
1759
 
1749
1760
  /**
1750
1761
  * Retries this effect while its error satisfies the specified predicate.
1751
1762
  *
1752
- * @tsplus fluent fncts.io.IO retryWhile
1763
+ * @tsplus pipeable fncts.io.IO retryWhile
1753
1764
  */
1754
- export function retryWhile_<R, E, A>(fa: IO<R, E, A>, f: (e: E) => boolean, __tsplusTrace?: string): IO<R, E, A> {
1755
- return fa.retryWhileIO((e) => IO.succeedNow(f(e)));
1765
+ export function retryWhile<E>(f: (e: E) => boolean, __tsplusTrace?: string) {
1766
+ return <R, A>(fa: IO<R, E, A>): IO<R, E, A> => {
1767
+ return fa.retryWhileIO((e) => IO.succeedNow(f(e)));
1768
+ };
1756
1769
  }
1757
1770
 
1758
1771
  /**
1759
1772
  * Retries this effect while its error satisfies the specified effectful predicate.
1760
1773
  *
1761
- * @tsplus fluent fncts.io.IO retryWhileIO
1774
+ * @tsplus pipeable fncts.io.IO retryWhileIO
1762
1775
  */
1763
- export function retryWhileIO_<R, E, A, R1, E1>(
1764
- fa: IO<R, E, A>,
1765
- f: (e: E) => IO<R1, E1, boolean>,
1766
- __tsplusTrace?: string,
1767
- ): IO<R | R1, E | E1, A> {
1768
- return fa.catchAll((e) => f(e).flatMap((b) => (b ? fa.retryWhileIO(f) : IO.fail(e))));
1776
+ export function retryWhileIO<E, R1, E1>(f: (e: E) => IO<R1, E1, boolean>, __tsplusTrace?: string) {
1777
+ return <R, A>(fa: IO<R, E, A>): IO<R | R1, E | E1, A> => {
1778
+ return fa.catchAll((e) => f(e).flatMap((b) => (b ? fa.retryWhileIO(f) : IO.fail(e))));
1779
+ };
1769
1780
  }
1770
1781
 
1771
1782
  /**
@@ -1785,14 +1796,12 @@ export function sandbox<R, E, A>(fa: IO<R, E, A>, __tsplusTrace?: string): IO<R,
1785
1796
  }
1786
1797
 
1787
1798
  /**
1788
- * @tsplus fluent fncts.io.IO sandboxWith
1799
+ * @tsplus pipeable fncts.io.IO sandboxWith
1789
1800
  */
1790
- export function sandboxWith_<R, E, A, E1>(
1791
- ma: IO<R, E, A>,
1792
- f: (_: IO<R, Cause<E>, A>) => IO<R, Cause<E1>, A>,
1793
- __tsplusTrace?: string,
1794
- ): IO<R, E1, A> {
1795
- return f(ma.sandbox).unsandbox;
1801
+ export function sandboxWith<R, E, A, E1>(f: (_: IO<R, Cause<E>, A>) => IO<R, Cause<E1>, A>, __tsplusTrace?: string) {
1802
+ return (ma: IO<R, E, A>): IO<R, E1, A> => {
1803
+ return f(ma.sandbox).unsandbox;
1804
+ };
1796
1805
  }
1797
1806
 
1798
1807
  /**
@@ -1839,20 +1848,17 @@ export function succeed<A>(effect: Lazy<A>, __tsplusTrace?: string): UIO<A> {
1839
1848
  }
1840
1849
 
1841
1850
  /**
1842
- * @tsplus fluent fncts.io.IO summarized
1851
+ * @tsplus pipeable fncts.io.IO summarized
1843
1852
  */
1844
- export function summarized_<R, E, A, R1, E1, B, C>(
1845
- ma: IO<R, E, A>,
1846
- summary: IO<R1, E1, B>,
1847
- f: (start: B, end: B) => C,
1848
- __tsplusTrace?: string,
1849
- ): IO<R | R1, E | E1, readonly [C, A]> {
1850
- return gen(function* (_) {
1851
- const start = yield* _(summary);
1852
- const value = yield* _(ma);
1853
- const end = yield* _(summary);
1854
- return tuple(f(start, end), value);
1855
- });
1853
+ export function summarized<R1, E1, B, C>(summary: IO<R1, E1, B>, f: (start: B, end: B) => C, __tsplusTrace?: string) {
1854
+ return <R, E, A>(ma: IO<R, E, A>): IO<R | R1, E | E1, readonly [C, A]> => {
1855
+ return gen(function* (_) {
1856
+ const start = yield* _(summary);
1857
+ const value = yield* _(ma);
1858
+ const end = yield* _(summary);
1859
+ return tuple(f(start, end), value);
1860
+ });
1861
+ };
1856
1862
  }
1857
1863
 
1858
1864
  /**
@@ -1867,23 +1873,20 @@ export function swap<R, E, A>(pab: IO<R, E, A>, __tsplusTrace?: string): IO<R, A
1867
1873
  /**
1868
1874
  * Swaps the error/value parameters, applies the function `f` and flips the parameters back
1869
1875
  *
1870
- * @tsplus fluent fncts.io.IO swapWith
1876
+ * @tsplus pipeable fncts.io.IO swapWith
1871
1877
  */
1872
- export function swapWith_<R, E, A, R1, E1, A1>(
1873
- fa: IO<R, E, A>,
1874
- f: (ma: IO<R, A, E>) => IO<R1, A1, E1>,
1875
- __tsplusTrace?: string,
1876
- ) {
1877
- return f(fa.swap).swap;
1878
+ export function swapWith<R, E, A, R1, E1, A1>(f: (ma: IO<R, A, E>) => IO<R1, A1, E1>, __tsplusTrace?: string) {
1879
+ return (fa: IO<R, E, A>): IO<R1, E1, A1> => f(fa.swap).swap;
1878
1880
  }
1879
1881
 
1880
1882
  /**
1881
1883
  * A more powerful variation of `timed` that allows specifying the clock.
1882
1884
  *
1883
- * @tsplus fluent fncts.io.IO timedWith
1885
+ * @tsplus pipeable fncts.io.IO timedWith
1884
1886
  */
1885
- export function timedWith_<R, E, A, R1, E1>(ma: IO<R, E, A>, msTime: IO<R1, E1, number>, __tsplusTrace?: string) {
1886
- return ma.summarized(msTime, (start, end) => end - start);
1887
+ export function timedWith<R1, E1>(msTime: IO<R1, E1, number>, __tsplusTrace?: string) {
1888
+ return <R, E, A>(ma: IO<R, E, A>): IO<R1 | R, E1 | E, readonly [number, A]> =>
1889
+ ma.summarized(msTime, (start, end) => end - start);
1887
1890
  }
1888
1891
 
1889
1892
  /**
@@ -1916,70 +1919,66 @@ export function absolve<R, E, E1, A>(ma: IO<R, E, Either<E1, A>>, __tsplusTrace?
1916
1919
  *
1917
1920
  * Returns an IO that effectfully "peeks" at the success of this effect.
1918
1921
  *
1919
- * @tsplus fluent fncts.io.IO tap
1922
+ * @tsplus pipeable fncts.io.IO tap
1920
1923
  */
1921
- export function tap_<R, E, A, R1, E1, B>(
1922
- self: IO<R, E, A>,
1923
- f: (a: A) => IO<R1, E1, B>,
1924
- __tsplusTrace?: string,
1925
- ): IO<R1 | R, E1 | E, A> {
1926
- return self.flatMap((a) => f(a).map(() => a));
1924
+ export function tap<A, R1, E1, B>(f: (a: A) => IO<R1, E1, B>, __tsplusTrace?: string) {
1925
+ return <R, E>(self: IO<R, E, A>): IO<R1 | R, E1 | E, A> => {
1926
+ return self.flatMap((a) => f(a).map(() => a));
1927
+ };
1927
1928
  }
1928
1929
 
1929
1930
  /**
1930
1931
  * Returns an IO that effectually "peeks" at the cause of the failure of
1931
1932
  * this IO.
1932
1933
  *
1933
- * @tsplus fluent fncts.io.IO tapCause
1934
+ * @tsplus pipeable fncts.io.IO tapCause
1934
1935
  */
1935
- export function tapCause_<R2, A2, R, E, E2>(
1936
- ma: IO<R2, E2, A2>,
1937
- f: (e: Cause<E2>) => IO<R, E, any>,
1938
- __tsplusTrace?: string,
1939
- ): IO<R2 | R, E | E2, A2> {
1940
- return ma.matchCauseIO((c) => f(c).flatMap(() => IO.failCauseNow(c)), IO.succeedNow);
1936
+ export function tapCause<R, E, E2>(f: (e: Cause<E2>) => IO<R, E, any>, __tsplusTrace?: string) {
1937
+ return <R2, A2>(ma: IO<R2, E2, A2>): IO<R2 | R, E | E2, A2> => {
1938
+ return ma.matchCauseIO((c) => f(c).flatMap(() => IO.failCauseNow(c)), IO.succeedNow);
1939
+ };
1941
1940
  }
1942
1941
 
1943
1942
  /**
1944
1943
  * Returns an IO that effectfully "peeks" at the failure of this effect.
1945
1944
  *
1946
- * @tsplus fluent fncts.io.IO tapError
1947
- */
1948
- export function tapError_<R, E, A, R1, E1>(self: IO<R, E, A>, f: (e: E) => IO<R1, E1, any>, __tsplusTrace?: string) {
1949
- return self.matchCauseIO(
1950
- (cause) =>
1951
- cause.failureOrCause.match(
1952
- (e) => f(e).flatMap(() => IO.failCauseNow(cause)),
1953
- (_) => IO.failCauseNow(cause),
1954
- ),
1955
- IO.succeedNow,
1956
- );
1945
+ * @tsplus pipeable fncts.io.IO tapError
1946
+ */
1947
+ export function tapError<E, R1, E1>(f: (e: E) => IO<R1, E1, any>, __tsplusTrace?: string) {
1948
+ return <R, A>(self: IO<R, E, A>) =>
1949
+ self.matchCauseIO(
1950
+ (cause) =>
1951
+ cause.failureOrCause.match(
1952
+ (e) => f(e).flatMap(() => IO.failCauseNow(cause)),
1953
+ (_) => IO.failCauseNow(cause),
1954
+ ),
1955
+ IO.succeedNow,
1956
+ );
1957
1957
  }
1958
1958
 
1959
1959
  /**
1960
1960
  * Returns an effect that effectually "peeks" at the cause of the failure of
1961
1961
  * this effect.
1962
1962
  *
1963
- * @tsplus fluent fncts.io.IO tapErrorCause
1963
+ * @tsplus pipeable fncts.io.IO tapErrorCause
1964
1964
  */
1965
- export function tapErrorCause_<R, E, A, R1, E1>(
1966
- self: IO<R, E, A>,
1967
- f: (e: Cause<E>) => IO<R1, E1, any>,
1968
- __tsplusTrace?: string,
1969
- ): IO<R | R1, E | E1, A> {
1970
- return self.matchCauseIO((cause) => f(cause).apSecond(IO.failCauseNow(cause)), IO.succeedNow);
1965
+ export function tapErrorCause<E, R1, E1>(f: (e: Cause<E>) => IO<R1, E1, any>, __tsplusTrace?: string) {
1966
+ return <R, A>(self: IO<R, E, A>): IO<R | R1, E | E1, A> => {
1967
+ return self.matchCauseIO((cause) => f(cause).apSecond(IO.failCauseNow(cause)), IO.succeedNow);
1968
+ };
1971
1969
  }
1972
1970
 
1973
1971
  /**
1974
- * @tsplus fluent fncts.io.IO tryOrElse
1972
+ * @tsplus pipeable fncts.io.IO tryOrElse
1975
1973
  */
1976
- export function tryOrElse_<R, E, A, R1, E1, A1, R2, E2, A2>(
1977
- ma: IO<R, E, A>,
1974
+ export function tryOrElse<A, R1, E1, A1, R2, E2, A2>(
1978
1975
  that: Lazy<IO<R1, E1, A1>>,
1979
1976
  onSuccess: (a: A) => IO<R2, E2, A2>,
1980
1977
  __tsplusTrace?: string,
1981
- ): IO<R | R1 | R2, E1 | E2, A1 | A2> {
1982
- return ma.matchCauseIO((cause) => cause.keepDefects.match(that, IO.failCauseNow), onSuccess);
1978
+ ) {
1979
+ return <R, E>(ma: IO<R, E, A>): IO<R | R1 | R2, E1 | E2, A1 | A2> => {
1980
+ return ma.matchCauseIO((cause) => cause.keepDefects.match(that, IO.failCauseNow), onSuccess);
1981
+ };
1983
1982
  }
1984
1983
 
1985
1984
  /**
@@ -2003,17 +2002,14 @@ export function unjust<R, E, A>(self: IO<R, Maybe<E>, A>, __tsplusTrace?: string
2003
2002
  * Takes some fiber failures and converts them into errors, using the
2004
2003
  * specified function to convert the `E` into an `E1 | E2`.
2005
2004
  *
2006
- * @tsplus fluent fncts.io.IO unrefineWith
2005
+ * @tsplus pipeable fncts.io.IO unrefineWith
2007
2006
  */
2008
- export function unrefineWith_<R, E, A, E1, E2>(
2009
- fa: IO<R, E, A>,
2010
- pf: (u: unknown) => Maybe<E1>,
2011
- f: (e: E) => E2,
2012
- __tsplusTrace?: string,
2013
- ): IO<R, E1 | E2, A> {
2014
- return fa.catchAllCause((cause) =>
2015
- cause.find((c) => (c.isHalt() ? pf(c.value) : Nothing())).match(() => IO.failCauseNow(cause.map(f)), IO.failNow),
2016
- );
2007
+ export function unrefineWith<E, E1, E2>(pf: (u: unknown) => Maybe<E1>, f: (e: E) => E2, __tsplusTrace?: string) {
2008
+ return <R, A>(fa: IO<R, E, A>): IO<R, E1 | E2, A> => {
2009
+ return fa.catchAllCause((cause) =>
2010
+ cause.find((c) => (c.isHalt() ? pf(c.value) : Nothing())).match(() => IO.failCauseNow(cause.map(f)), IO.failNow),
2011
+ );
2012
+ };
2017
2013
  }
2018
2014
 
2019
2015
  /**
@@ -2059,23 +2055,23 @@ export function withFiberContext<R, E, A>(
2059
2055
  export const via: typeof pipe = pipe;
2060
2056
 
2061
2057
  /**
2062
- * @tsplus fluent fncts.io.IO when
2058
+ * @tsplus pipeable fncts.io.IO when
2063
2059
  */
2064
- export function when_<R, E, A>(ma: IO<R, E, A>, b: Lazy<boolean>, __tsplusTrace?: string): IO<R, E, void> {
2065
- return ma.whenIO(IO.succeed(b));
2060
+ export function when(b: Lazy<boolean>, __tsplusTrace?: string) {
2061
+ return <R, E, A>(ma: IO<R, E, A>): IO<R, E, void> => {
2062
+ return ma.whenIO(IO.succeed(b));
2063
+ };
2066
2064
  }
2067
2065
 
2068
2066
  /**
2069
2067
  * The moral equivalent of `if (p) exp` when `p` has side-effects
2070
2068
  *
2071
- * @tsplus fluent fncts.io.IO whenIO
2069
+ * @tsplus pipeable fncts.io.IO whenIO
2072
2070
  */
2073
- export function whenIO_<R, E, A, R1, E1>(
2074
- ma: IO<R, E, A>,
2075
- mb: IO<R1, E1, boolean>,
2076
- __tsplusTrace?: string,
2077
- ): IO<R1 | R, E | E1, void> {
2078
- return mb.flatMap((b) => (b ? ma.asUnit : IO.unit));
2071
+ export function whenIO<R1, E1>(mb: IO<R1, E1, boolean>, __tsplusTrace?: string) {
2072
+ return <R, E, A>(ma: IO<R, E, A>): IO<R1 | R, E | E1, void> => {
2073
+ return mb.flatMap((b) => (b ? ma.asUnit : IO.unit));
2074
+ };
2079
2075
  }
2080
2076
 
2081
2077
  /**
@@ -2088,26 +2084,21 @@ export function whenIO_<R, E, A, R1, E1>(
2088
2084
  export const yieldNow: UIO<void> = new Yield();
2089
2085
 
2090
2086
  /**
2091
- * @tsplus fluent fncts.io.IO zip
2087
+ * @tsplus pipeable fncts.io.IO zip
2092
2088
  */
2093
- export function zip_<R, E, A, R1, E1, B>(
2094
- self: IO<R, E, A>,
2095
- that: IO<R1, E1, B>,
2096
- __tsplusTrace?: string,
2097
- ): IO<R | R1, E | E1, readonly [A, B]> {
2098
- return self.zipWith(that, tuple);
2089
+ export function zip<R1, E1, B>(that: IO<R1, E1, B>, __tsplusTrace?: string) {
2090
+ return <R, E, A>(self: IO<R, E, A>): IO<R | R1, E | E1, readonly [A, B]> => {
2091
+ return self.zipWith(that, tuple);
2092
+ };
2099
2093
  }
2100
2094
 
2101
2095
  /**
2102
- * @tsplus fluent fncts.io.IO zipWith
2096
+ * @tsplus pipeable fncts.io.IO zipWith
2103
2097
  */
2104
- export function zipWith_<R, E, A, R1, E1, B, C>(
2105
- self: IO<R, E, A>,
2106
- that: IO<R1, E1, B>,
2107
- f: (a: A, b: B) => C,
2108
- __tsplusTrace?: string,
2109
- ): IO<R | R1, E | E1, C> {
2110
- return self.flatMap((a) => that.map((b) => f(a, b)));
2098
+ export function zipWith<A, R1, E1, B, C>(that: IO<R1, E1, B>, f: (a: A, b: B) => C, __tsplusTrace?: string) {
2099
+ return <R, E>(self: IO<R, E, A>): IO<R | R1, E | E1, C> => {
2100
+ return self.flatMap((a) => that.map((b) => f(a, b)));
2101
+ };
2111
2102
  }
2112
2103
 
2113
2104
  export class GenIO<R, E, A> {
@@ -2126,22 +2117,6 @@ export class GenIO<R, E, A> {
2126
2117
  * @internal
2127
2118
  */
2128
2119
  export const __adapter = (_: any) => {
2129
- // if (Either.isEither(_)) {
2130
- // return IO.fromEither(_);
2131
- // }
2132
- // if (Maybe.isMaybe(_)) {
2133
- // return __
2134
- // ? _._tag === "Nothing"
2135
- // ? IO.failNow(__())
2136
- // : IO.succeed(_.value)
2137
- // : getOrFail(_);
2138
- // }
2139
- // if (isTag(_)) {
2140
- // return service(_);
2141
- // }
2142
- // if (S.isSync(_)) {
2143
- // return fromSync(_);
2144
- // }
2145
2120
  return _;
2146
2121
  };
2147
2122
 
@@ -2160,8 +2135,7 @@ export function gen<T extends GenIO<any, any, any>, A>(
2160
2135
  return IO.defer(() => {
2161
2136
  const iterator = f(adapter as any);
2162
2137
  const state = iterator.next();
2163
-
2164
- const run = (state: IteratorYieldResult<T> | IteratorReturnResult<A>): IO<any, any, A> => {
2138
+ const run = (state: IteratorYieldResult<T> | IteratorReturnResult<A>): IO<any, any, A> => {
2165
2139
  if (state.done) {
2166
2140
  return IO.succeed(state.value);
2167
2141
  }
@@ -2171,7 +2145,6 @@ export function gen<T extends GenIO<any, any, any>, A>(
2171
2145
  };
2172
2146
  return state.value.effect.flatMap(f);
2173
2147
  };
2174
-
2175
2148
  return run(state);
2176
2149
  });
2177
2150
  }