@fncts/io 0.0.10 → 0.0.13

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 (439) hide show
  1. package/Cached/api.d.ts +2 -3
  2. package/Channel/api/interruptWhen.d.ts +1 -1
  3. package/Channel/api/mapOutIOC.d.ts +1 -1
  4. package/Channel/api/mergeAll.d.ts +1 -1
  5. package/Channel/api/mergeAllUnboundedWith.d.ts +1 -1
  6. package/Channel/api/mergeAllWith.d.ts +1 -1
  7. package/Channel/api/mergeMap.d.ts +1 -1
  8. package/Channel/api/mergeWith.d.ts +1 -1
  9. package/Channel/api/runScoped.d.ts +1 -2
  10. package/Channel/api/toPull.d.ts +1 -2
  11. package/Channel/api/zipC.d.ts +3 -3
  12. package/Channel/api.d.ts +48 -49
  13. package/Channel/core-api.d.ts +10 -10
  14. package/Channel/definition.d.ts +12 -12
  15. package/Channel/internal/MergeDecision.d.ts +1 -1
  16. package/Channel/internal/SingleProducerAsyncInput.d.ts +1 -1
  17. package/Clock/api.d.ts +1 -1
  18. package/Fiber/FiberContext.d.ts +3 -3
  19. package/Fiber/api/awaitAll.d.ts +1 -1
  20. package/Fiber/api/evalOnIO.d.ts +1 -1
  21. package/Fiber/api/joinAll.d.ts +1 -1
  22. package/Fiber/definition.d.ts +1 -1
  23. package/FiberRef/api/locallyScoped.d.ts +1 -2
  24. package/FiberRef/api/locallyScopedWith.d.ts +1 -2
  25. package/FiberRef/constructors.d.ts +1 -2
  26. package/FiberRef/unsafe.d.ts +6 -0
  27. package/Future/api.d.ts +1 -1
  28. package/Future/constructors.d.ts +1 -1
  29. package/Hub/api.d.ts +6 -7
  30. package/Hub/definition.d.ts +6 -7
  31. package/Hub/internal.d.ts +0 -1
  32. package/IO/api/acquireRelease.d.ts +1 -2
  33. package/IO/api/acquireReleaseExit.d.ts +1 -2
  34. package/IO/api/acquireReleaseInterruptible.d.ts +1 -2
  35. package/IO/api/acquireReleaseInterruptibleExit.d.ts +1 -2
  36. package/IO/api/addFinalizer.d.ts +1 -2
  37. package/IO/api/addFinalizerExit.d.ts +1 -2
  38. package/IO/api/bracket.d.ts +1 -1
  39. package/IO/api/bracketExit.d.ts +1 -1
  40. package/IO/api/clockWith.d.ts +1 -1
  41. package/IO/api/concurrentFinalizers.d.ts +1 -2
  42. package/IO/api/consoleWith.d.ts +1 -1
  43. package/IO/api/core-scope.d.ts +1 -1
  44. package/IO/api/ensuringChildren.d.ts +1 -1
  45. package/IO/api/environment.d.ts +8 -10
  46. package/IO/api/forkScoped.d.ts +1 -2
  47. package/IO/api/interrupt.d.ts +3 -3
  48. package/IO/api/onExit.d.ts +1 -1
  49. package/IO/api/onTermination.d.ts +1 -1
  50. package/IO/api/provideSomeLayer.d.ts +1 -1
  51. package/IO/api/race.d.ts +1 -1
  52. package/IO/api/raceFirst.d.ts +1 -1
  53. package/IO/api/randomWith.d.ts +1 -1
  54. package/IO/api/repeat.d.ts +3 -3
  55. package/IO/api/retry.d.ts +3 -3
  56. package/IO/api/schedule.d.ts +2 -2
  57. package/IO/api/scope.d.ts +1 -2
  58. package/IO/api/scopeWith.d.ts +1 -2
  59. package/IO/api/scoped.d.ts +2 -3
  60. package/IO/api/sequenceT.d.ts +3 -3
  61. package/IO/api/stateful.d.ts +1 -2
  62. package/IO/api/withEarlyRelease.d.ts +1 -2
  63. package/IO/api/withFinalizer.d.ts +1 -2
  64. package/IO/api/withFinalizerExit.d.ts +1 -2
  65. package/IO/api/zipC.d.ts +2 -2
  66. package/IO/api.d.ts +50 -50
  67. package/IO/definition.d.ts +28 -24
  68. package/IO/runtime.d.ts +23 -10
  69. package/IOEnv/definition.d.ts +2 -3
  70. package/IOEnv/live.d.ts +1 -1
  71. package/IOSpec.d.ts +1 -2
  72. package/Layer/MemoMap.d.ts +2 -3
  73. package/Layer/api.d.ts +30 -32
  74. package/Layer/definition.d.ts +7 -8
  75. package/Queue/api/dimapIO.d.ts +3 -3
  76. package/Queue/api/filterInputIO.d.ts +4 -4
  77. package/Queue/api/filterOutputIO.d.ts +6 -6
  78. package/Queue/api/zipWithIO.d.ts +9 -9
  79. package/Queue/definition.d.ts +7 -7
  80. package/Queue/internal.d.ts +1 -1
  81. package/Random/api.d.ts +4 -4
  82. package/Random/live.d.ts +1 -1
  83. package/Ref/Atomic/Atomic.d.ts +3 -3
  84. package/Ref/Derived.d.ts +3 -3
  85. package/Ref/DerivedAll.d.ts +3 -3
  86. package/Ref/Synchronized/api.d.ts +15 -15
  87. package/Ref/Synchronized/definition.d.ts +2 -2
  88. package/Ref/api/get.d.ts +1 -1
  89. package/Ref/api/modify.d.ts +9 -9
  90. package/Ref/api/set.d.ts +1 -1
  91. package/Ref/definition.d.ts +13 -13
  92. package/STM/api/core-api.d.ts +4 -4
  93. package/STM/api/core-constructors.d.ts +7 -7
  94. package/STM/api.d.ts +27 -39
  95. package/STM/definition.d.ts +9 -8
  96. package/STM/driver.d.ts +1 -1
  97. package/STM/internal/Journal.d.ts +4 -3
  98. package/Schedule/Decision.d.ts +10 -4
  99. package/Schedule/Driver.d.ts +3 -3
  100. package/Schedule/api.d.ts +55 -43
  101. package/Schedule/definition.d.ts +1 -1
  102. package/Scope/Finalizer/definition.d.ts +2 -2
  103. package/Scope/ReleaseMap/api.d.ts +1 -1
  104. package/Scope/ReleaseMap/definition.d.ts +1 -1
  105. package/Scope/api.d.ts +3 -4
  106. package/ScopedRef/api.d.ts +1 -2
  107. package/ScopedRef/definition.d.ts +1 -2
  108. package/Sink/api.d.ts +255 -75
  109. package/State/api.d.ts +1 -2
  110. package/Stream/api/zipAllWith.d.ts +1 -1
  111. package/Stream/api/zipWith.d.ts +1 -1
  112. package/Stream/api/zipWithChunks.d.ts +1 -1
  113. package/Stream/api.d.ts +91 -93
  114. package/Stream/definition.d.ts +3 -3
  115. package/Stream/internal/Take.d.ts +1 -1
  116. package/Supervisor/constructors.d.ts +2 -2
  117. package/TFuture/api.d.ts +1 -1
  118. package/TFuture/definition.d.ts +1 -1
  119. package/TReentrantLock/api.d.ts +2 -3
  120. package/TRef/api.d.ts +11 -11
  121. package/TRef/constructors.d.ts +2 -2
  122. package/TSemaphore/api.d.ts +2 -2
  123. package/TSemaphore/definition.d.ts +1 -1
  124. package/_cjs/Cached/api.cjs.map +1 -1
  125. package/_cjs/Channel/api/mapOutIOC.cjs +1 -1
  126. package/_cjs/Channel/api/mapOutIOC.cjs.map +1 -1
  127. package/_cjs/Channel/api/mergeAllWith.cjs +3 -3
  128. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  129. package/_cjs/Channel/api.cjs.map +1 -1
  130. package/_cjs/Channel/definition.cjs.map +1 -1
  131. package/_cjs/Clock/live.cjs.map +1 -1
  132. package/_cjs/Fiber/FiberContext.cjs +5 -7
  133. package/_cjs/Fiber/FiberContext.cjs.map +1 -1
  134. package/_cjs/FiberRef/unsafe.cjs +9 -1
  135. package/_cjs/FiberRef/unsafe.cjs.map +1 -1
  136. package/_cjs/Future/api.cjs.map +1 -1
  137. package/_cjs/Hub/api.cjs +1 -1
  138. package/_cjs/Hub/api.cjs.map +1 -1
  139. package/_cjs/Hub/internal.cjs +4 -12
  140. package/_cjs/Hub/internal.cjs.map +1 -1
  141. package/_cjs/IO/api/addFinalizerExit.cjs +4 -8
  142. package/_cjs/IO/api/addFinalizerExit.cjs.map +1 -1
  143. package/_cjs/IO/api/ensuringChildren.cjs +1 -1
  144. package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
  145. package/_cjs/IO/api/environment.cjs +2 -3
  146. package/_cjs/IO/api/environment.cjs.map +1 -1
  147. package/_cjs/IO/api/interrupt.cjs +1 -1
  148. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  149. package/_cjs/IO/api/memoize.cjs +4 -8
  150. package/_cjs/IO/api/memoize.cjs.map +1 -1
  151. package/_cjs/IO/api/provideSomeLayer.cjs +1 -2
  152. package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
  153. package/_cjs/IO/api/scope.cjs +1 -1
  154. package/_cjs/IO/api/scope.cjs.map +1 -1
  155. package/_cjs/IO/api/scoped.cjs.map +1 -1
  156. package/_cjs/IO/api/withChildren.cjs +1 -1
  157. package/_cjs/IO/api/withChildren.cjs.map +1 -1
  158. package/_cjs/IO/api.cjs +1 -1
  159. package/_cjs/IO/api.cjs.map +1 -1
  160. package/_cjs/IO/definition.cjs +5 -8
  161. package/_cjs/IO/definition.cjs.map +1 -1
  162. package/_cjs/IO/runtime.cjs +69 -21
  163. package/_cjs/IO/runtime.cjs.map +1 -1
  164. package/_cjs/Layer/MemoMap.cjs +22 -38
  165. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  166. package/_cjs/Layer/api.cjs +6 -4
  167. package/_cjs/Layer/api.cjs.map +1 -1
  168. package/_cjs/Layer/definition.cjs.map +1 -1
  169. package/_cjs/Queue/internal.cjs +2 -2
  170. package/_cjs/Queue/internal.cjs.map +1 -1
  171. package/_cjs/Queue/strategy.cjs +1 -5
  172. package/_cjs/Queue/strategy.cjs.map +1 -1
  173. package/_cjs/Ref/Atomic/Atomic.cjs.map +1 -1
  174. package/_cjs/Ref/Derived.cjs.map +1 -1
  175. package/_cjs/Ref/DerivedAll.cjs.map +1 -1
  176. package/_cjs/Ref/Synchronized/constructors.cjs +7 -11
  177. package/_cjs/Ref/Synchronized/constructors.cjs.map +1 -1
  178. package/_cjs/STM/api/core-constructors.cjs.map +1 -1
  179. package/_cjs/STM/api.cjs +59 -78
  180. package/_cjs/STM/api.cjs.map +1 -1
  181. package/_cjs/STM/definition.cjs.map +1 -1
  182. package/_cjs/STM/driver.cjs +7 -5
  183. package/_cjs/STM/driver.cjs.map +1 -1
  184. package/_cjs/STM/internal/Journal.cjs +20 -22
  185. package/_cjs/STM/internal/Journal.cjs.map +1 -1
  186. package/_cjs/Schedule/Decision.cjs +17 -0
  187. package/_cjs/Schedule/Decision.cjs.map +1 -1
  188. package/_cjs/Schedule/api/driver.cjs +22 -21
  189. package/_cjs/Schedule/api/driver.cjs.map +1 -1
  190. package/_cjs/Schedule/api.cjs +91 -66
  191. package/_cjs/Schedule/api.cjs.map +1 -1
  192. package/_cjs/Scope/Finalizer/definition.cjs +4 -6
  193. package/_cjs/Scope/Finalizer/definition.cjs.map +1 -1
  194. package/_cjs/Scope/ReleaseMap/definition.cjs +2 -4
  195. package/_cjs/Scope/ReleaseMap/definition.cjs.map +1 -1
  196. package/_cjs/Scope/api.cjs +2 -12
  197. package/_cjs/Scope/api.cjs.map +1 -1
  198. package/_cjs/ScopedRef/api.cjs +14 -22
  199. package/_cjs/ScopedRef/api.cjs.map +1 -1
  200. package/_cjs/Sink/api.cjs +424 -131
  201. package/_cjs/Sink/api.cjs.map +1 -1
  202. package/_cjs/Stream/api.cjs +94 -94
  203. package/_cjs/Stream/api.cjs.map +1 -1
  204. package/_cjs/Supervisor/constructors.cjs +14 -8
  205. package/_cjs/Supervisor/constructors.cjs.map +1 -1
  206. package/_cjs/TFuture/definition.cjs +2 -4
  207. package/_cjs/TFuture/definition.cjs.map +1 -1
  208. package/_cjs/TSemaphore/api.cjs +7 -7
  209. package/_cjs/TSemaphore/api.cjs.map +1 -1
  210. package/_cjs/TSemaphore/definition.cjs +2 -4
  211. package/_cjs/TSemaphore/definition.cjs.map +1 -1
  212. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +38 -0
  213. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -0
  214. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +38 -0
  215. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -0
  216. package/_cjs/internal/Scheduler.cjs +64 -14
  217. package/_cjs/internal/Scheduler.cjs.map +1 -1
  218. package/_mjs/Cached/api.mjs.map +1 -1
  219. package/_mjs/Channel/api/mapOutIOC.mjs +1 -1
  220. package/_mjs/Channel/api/mapOutIOC.mjs.map +1 -1
  221. package/_mjs/Channel/api/mergeAllWith.mjs +3 -3
  222. package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
  223. package/_mjs/Channel/api.mjs.map +1 -1
  224. package/_mjs/Channel/definition.mjs.map +1 -1
  225. package/_mjs/Clock/live.mjs.map +1 -1
  226. package/_mjs/Fiber/FiberContext.mjs +5 -6
  227. package/_mjs/Fiber/FiberContext.mjs.map +1 -1
  228. package/_mjs/FiberRef/unsafe.mjs +6 -0
  229. package/_mjs/FiberRef/unsafe.mjs.map +1 -1
  230. package/_mjs/Future/api.mjs.map +1 -1
  231. package/_mjs/Hub/api.mjs +1 -1
  232. package/_mjs/Hub/api.mjs.map +1 -1
  233. package/_mjs/Hub/internal.mjs +4 -12
  234. package/_mjs/Hub/internal.mjs.map +1 -1
  235. package/_mjs/IO/api/addFinalizerExit.mjs +4 -8
  236. package/_mjs/IO/api/addFinalizerExit.mjs.map +1 -1
  237. package/_mjs/IO/api/ensuringChildren.mjs +1 -1
  238. package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
  239. package/_mjs/IO/api/environment.mjs +2 -3
  240. package/_mjs/IO/api/environment.mjs.map +1 -1
  241. package/_mjs/IO/api/interrupt.mjs +1 -1
  242. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  243. package/_mjs/IO/api/memoize.mjs +4 -8
  244. package/_mjs/IO/api/memoize.mjs.map +1 -1
  245. package/_mjs/IO/api/provideSomeLayer.mjs +1 -2
  246. package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
  247. package/_mjs/IO/api/scope.mjs +1 -1
  248. package/_mjs/IO/api/scope.mjs.map +1 -1
  249. package/_mjs/IO/api/scoped.mjs.map +1 -1
  250. package/_mjs/IO/api/withChildren.mjs +1 -1
  251. package/_mjs/IO/api/withChildren.mjs.map +1 -1
  252. package/_mjs/IO/api.mjs +1 -1
  253. package/_mjs/IO/api.mjs.map +1 -1
  254. package/_mjs/IO/definition.mjs +3 -5
  255. package/_mjs/IO/definition.mjs.map +1 -1
  256. package/_mjs/IO/runtime.mjs +61 -18
  257. package/_mjs/IO/runtime.mjs.map +1 -1
  258. package/_mjs/Layer/MemoMap.mjs +22 -38
  259. package/_mjs/Layer/MemoMap.mjs.map +1 -1
  260. package/_mjs/Layer/api.mjs +5 -4
  261. package/_mjs/Layer/api.mjs.map +1 -1
  262. package/_mjs/Layer/definition.mjs.map +1 -1
  263. package/_mjs/Queue/internal.mjs +2 -2
  264. package/_mjs/Queue/internal.mjs.map +1 -1
  265. package/_mjs/Queue/strategy.mjs +1 -5
  266. package/_mjs/Queue/strategy.mjs.map +1 -1
  267. package/_mjs/Ref/Atomic/Atomic.mjs.map +1 -1
  268. package/_mjs/Ref/Derived.mjs.map +1 -1
  269. package/_mjs/Ref/DerivedAll.mjs.map +1 -1
  270. package/_mjs/Ref/Synchronized/constructors.mjs +7 -11
  271. package/_mjs/Ref/Synchronized/constructors.mjs.map +1 -1
  272. package/_mjs/STM/api/core-constructors.mjs.map +1 -1
  273. package/_mjs/STM/api.mjs +52 -72
  274. package/_mjs/STM/api.mjs.map +1 -1
  275. package/_mjs/STM/definition.mjs.map +1 -1
  276. package/_mjs/STM/driver.mjs +6 -5
  277. package/_mjs/STM/driver.mjs.map +1 -1
  278. package/_mjs/STM/internal/Journal.mjs +20 -21
  279. package/_mjs/STM/internal/Journal.mjs.map +1 -1
  280. package/_mjs/Schedule/Decision.mjs +9 -0
  281. package/_mjs/Schedule/Decision.mjs.map +1 -1
  282. package/_mjs/Schedule/api/driver.mjs +20 -20
  283. package/_mjs/Schedule/api/driver.mjs.map +1 -1
  284. package/_mjs/Schedule/api.mjs +84 -63
  285. package/_mjs/Schedule/api.mjs.map +1 -1
  286. package/_mjs/Scope/Finalizer/definition.mjs +4 -5
  287. package/_mjs/Scope/Finalizer/definition.mjs.map +1 -1
  288. package/_mjs/Scope/ReleaseMap/definition.mjs +2 -3
  289. package/_mjs/Scope/ReleaseMap/definition.mjs.map +1 -1
  290. package/_mjs/Scope/api.mjs +2 -12
  291. package/_mjs/Scope/api.mjs.map +1 -1
  292. package/_mjs/ScopedRef/api.mjs +14 -22
  293. package/_mjs/ScopedRef/api.mjs.map +1 -1
  294. package/_mjs/Sink/api.mjs +414 -129
  295. package/_mjs/Sink/api.mjs.map +1 -1
  296. package/_mjs/Stream/api.mjs +94 -94
  297. package/_mjs/Stream/api.mjs.map +1 -1
  298. package/_mjs/Supervisor/constructors.mjs +9 -6
  299. package/_mjs/Supervisor/constructors.mjs.map +1 -1
  300. package/_mjs/TFuture/definition.mjs +2 -3
  301. package/_mjs/TFuture/definition.mjs.map +1 -1
  302. package/_mjs/TSemaphore/api.mjs +4 -4
  303. package/_mjs/TSemaphore/api.mjs.map +1 -1
  304. package/_mjs/TSemaphore/definition.mjs +2 -3
  305. package/_mjs/TSemaphore/definition.mjs.map +1 -1
  306. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +26 -0
  307. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -0
  308. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +26 -0
  309. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -0
  310. package/_mjs/internal/Scheduler.mjs +62 -15
  311. package/_mjs/internal/Scheduler.mjs.map +1 -1
  312. package/_src/Cached/api.ts +3 -3
  313. package/_src/Channel/api/interruptWhen.ts +1 -1
  314. package/_src/Channel/api/mapOutIOC.ts +2 -2
  315. package/_src/Channel/api/mergeAll.ts +1 -1
  316. package/_src/Channel/api/mergeAllUnboundedWith.ts +1 -1
  317. package/_src/Channel/api/mergeAllWith.ts +3 -3
  318. package/_src/Channel/api/mergeMap.ts +1 -1
  319. package/_src/Channel/api/mergeWith.ts +9 -9
  320. package/_src/Channel/api/runScoped.ts +1 -1
  321. package/_src/Channel/api/toPull.ts +1 -1
  322. package/_src/Channel/api/zipC.ts +3 -3
  323. package/_src/Channel/api.ts +69 -69
  324. package/_src/Channel/core-api.ts +11 -11
  325. package/_src/Channel/definition.ts +12 -12
  326. package/_src/Channel/internal/MergeDecision.ts +1 -1
  327. package/_src/Clock/live.ts +1 -1
  328. package/_src/Fiber/FiberContext.ts +10 -8
  329. package/_src/Fiber/api/awaitAll.ts +1 -1
  330. package/_src/Fiber/api/evalOnIO.ts +1 -1
  331. package/_src/Fiber/api/joinAll.ts +1 -1
  332. package/_src/Fiber/definition.ts +1 -1
  333. package/_src/FiberRef/api/locallyScoped.ts +1 -1
  334. package/_src/FiberRef/api/locallyScopedWith.ts +1 -1
  335. package/_src/FiberRef/constructors.ts +2 -2
  336. package/_src/FiberRef/unsafe.ts +7 -0
  337. package/_src/Future/api.ts +3 -3
  338. package/_src/Future/constructors.ts +1 -1
  339. package/_src/Hub/api.ts +11 -11
  340. package/_src/Hub/definition.ts +6 -6
  341. package/_src/Hub/internal.ts +15 -15
  342. package/_src/IO/api/acquireRelease.ts +1 -1
  343. package/_src/IO/api/acquireReleaseExit.ts +1 -1
  344. package/_src/IO/api/acquireReleaseInterruptible.ts +1 -1
  345. package/_src/IO/api/acquireReleaseInterruptibleExit.ts +1 -1
  346. package/_src/IO/api/addFinalizer.ts +1 -1
  347. package/_src/IO/api/addFinalizerExit.ts +5 -7
  348. package/_src/IO/api/bracket.ts +1 -1
  349. package/_src/IO/api/bracketExit.ts +1 -1
  350. package/_src/IO/api/concurrentFinalizers.ts +1 -1
  351. package/_src/IO/api/core-scope.ts +1 -1
  352. package/_src/IO/api/ensuringChildren.ts +2 -2
  353. package/_src/IO/api/environment.ts +9 -11
  354. package/_src/IO/api/forkScoped.ts +1 -1
  355. package/_src/IO/api/interrupt.ts +3 -3
  356. package/_src/IO/api/memoize.ts +3 -3
  357. package/_src/IO/api/onExit.ts +1 -1
  358. package/_src/IO/api/onTermination.ts +1 -1
  359. package/_src/IO/api/provideSomeLayer.ts +1 -2
  360. package/_src/IO/api/race.ts +1 -1
  361. package/_src/IO/api/raceFirst.ts +1 -1
  362. package/_src/IO/api/repeat.ts +4 -4
  363. package/_src/IO/api/retry.ts +4 -4
  364. package/_src/IO/api/schedule.ts +3 -3
  365. package/_src/IO/api/scope.ts +1 -1
  366. package/_src/IO/api/scopeWith.ts +1 -1
  367. package/_src/IO/api/scoped.ts +2 -2
  368. package/_src/IO/api/sequenceT.ts +1 -1
  369. package/_src/IO/api/stateful.ts +1 -1
  370. package/_src/IO/api/withChildren.ts +1 -1
  371. package/_src/IO/api/withEarlyRelease.ts +1 -1
  372. package/_src/IO/api/withFinalizer.ts +1 -1
  373. package/_src/IO/api/withFinalizerExit.ts +1 -1
  374. package/_src/IO/api/zipC.ts +2 -2
  375. package/_src/IO/api.ts +48 -48
  376. package/_src/IO/definition.ts +29 -24
  377. package/_src/IO/runtime.ts +66 -12
  378. package/_src/IOEnv/definition.ts +1 -1
  379. package/_src/Layer/MemoMap.ts +19 -19
  380. package/_src/Layer/api.ts +38 -38
  381. package/_src/Layer/definition.ts +5 -5
  382. package/_src/Queue/api/dimapIO.ts +10 -10
  383. package/_src/Queue/api/filterInputIO.ts +4 -4
  384. package/_src/Queue/api/filterOutputIO.ts +6 -6
  385. package/_src/Queue/api/zipWithIO.ts +10 -10
  386. package/_src/Queue/definition.ts +7 -7
  387. package/_src/Queue/internal.ts +7 -7
  388. package/_src/Queue/strategy.ts +4 -4
  389. package/_src/Random/api.ts +1 -1
  390. package/_src/Ref/Atomic/Atomic.ts +3 -3
  391. package/_src/Ref/Derived.ts +3 -3
  392. package/_src/Ref/DerivedAll.ts +3 -3
  393. package/_src/Ref/Synchronized/api.ts +15 -15
  394. package/_src/Ref/Synchronized/constructors.ts +4 -4
  395. package/_src/Ref/Synchronized/definition.ts +2 -2
  396. package/_src/Ref/api/get.ts +2 -2
  397. package/_src/Ref/api/modify.ts +9 -9
  398. package/_src/Ref/api/set.ts +1 -1
  399. package/_src/Ref/definition.ts +13 -13
  400. package/_src/STM/api/core-api.ts +6 -6
  401. package/_src/STM/api/core-constructors.ts +7 -7
  402. package/_src/STM/api.ts +58 -89
  403. package/_src/STM/definition.ts +6 -6
  404. package/_src/STM/driver.ts +3 -3
  405. package/_src/STM/internal/Journal.ts +25 -16
  406. package/_src/Schedule/Decision.ts +10 -3
  407. package/_src/Schedule/Driver.ts +2 -2
  408. package/_src/Schedule/api/driver.ts +6 -6
  409. package/_src/Schedule/api.ts +97 -77
  410. package/_src/Schedule/definition.ts +1 -1
  411. package/_src/Scope/Finalizer/definition.ts +2 -2
  412. package/_src/Scope/ReleaseMap/api.ts +1 -1
  413. package/_src/Scope/ReleaseMap/definition.ts +1 -1
  414. package/_src/Scope/api.ts +11 -11
  415. package/_src/ScopedRef/api.ts +12 -17
  416. package/_src/ScopedRef/definition.ts +1 -1
  417. package/_src/Sink/api.ts +441 -86
  418. package/_src/State/api.ts +1 -1
  419. package/_src/Stream/api/zipAllWith.ts +2 -2
  420. package/_src/Stream/api/zipWith.ts +1 -1
  421. package/_src/Stream/api/zipWithChunks.ts +2 -2
  422. package/_src/Stream/api.ts +150 -149
  423. package/_src/Stream/definition.ts +3 -3
  424. package/_src/Stream/internal/Take.ts +1 -1
  425. package/_src/Supervisor/constructors.ts +7 -3
  426. package/_src/TFuture/api.ts +1 -1
  427. package/_src/TFuture/definition.ts +1 -1
  428. package/_src/TReentrantLock/api.ts +2 -2
  429. package/_src/TRef/api.ts +11 -11
  430. package/_src/TRef/constructors.ts +2 -2
  431. package/_src/TSemaphore/api.ts +2 -2
  432. package/_src/TSemaphore/definition.ts +1 -1
  433. package/_src/collection/immutable/Conc/dropUntilIO.ts +24 -0
  434. package/_src/collection/immutable/Conc/dropWhileIO.ts +26 -0
  435. package/_src/internal/Scheduler.ts +59 -15
  436. package/collection/immutable/Conc/dropUntilIO.d.ts +7 -0
  437. package/collection/immutable/Conc/dropWhileIO.d.ts +7 -0
  438. package/internal/Scheduler.d.ts +18 -1
  439. package/package.json +3 -3
@@ -26,13 +26,13 @@ export const enum ChannelTag {
26
26
  * @tsplus companion fncts.io.ChannelOps
27
27
  */
28
28
  export abstract class Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> {
29
- readonly _Env!: (_: Env) => void;
30
- readonly _InErr!: (_: InErr) => void;
31
- readonly _InElem!: (_: InElem) => void;
32
- readonly _InDone!: (_: InDone) => void;
33
- readonly _OutErr!: () => OutErr;
34
- readonly _OutElem!: () => OutElem;
35
- readonly _OutDone!: () => OutDone;
29
+ declare _Env: () => Env;
30
+ declare _InErr: (_: InErr) => void;
31
+ declare _InElem: (_: InElem) => void;
32
+ declare _InDone: (_: InDone) => void;
33
+ declare _OutErr: () => OutErr;
34
+ declare _OutElem: () => OutElem;
35
+ declare _OutDone: () => OutDone;
36
36
  }
37
37
 
38
38
  /**
@@ -53,7 +53,7 @@ export function unifyChannel<X extends Channel<any, any, any, any, any, any, any
53
53
  }
54
54
 
55
55
  export abstract class Continuation<Env, InErr, InElem, InDone, OutErr, OutErr2, OutElem, OutDone, OutDone2> {
56
- readonly _Env!: (_: Env) => void;
56
+ readonly _Env!: () => Env;
57
57
  readonly _InErr!: (_: InErr) => void;
58
58
  readonly _InElem!: (_: InElem) => void;
59
59
  readonly _InDone!: (_: InDone) => void;
@@ -170,14 +170,14 @@ export class Read<Env, InErr, InElem, InDone, OutErr, OutErr2, OutElem, OutDone,
170
170
  }
171
171
  }
172
172
 
173
- export class Done<OutDone> extends Channel<unknown, unknown, unknown, unknown, never, never, OutDone> {
173
+ export class Done<OutDone> extends Channel<never, unknown, unknown, unknown, never, never, OutDone> {
174
174
  readonly _tag = ChannelTag.Done;
175
175
  constructor(readonly terminal: () => OutDone) {
176
176
  super();
177
177
  }
178
178
  }
179
179
 
180
- export class Fail<OutErr> extends Channel<unknown, unknown, unknown, unknown, OutErr, never, never> {
180
+ export class Fail<OutErr> extends Channel<never, unknown, unknown, unknown, OutErr, never, never> {
181
181
  readonly _tag = ChannelTag.Halt;
182
182
  constructor(readonly cause: () => Cause<OutErr>) {
183
183
  super();
@@ -257,7 +257,7 @@ export class BracketOut<R, E, Z, OutDone> extends Channel<R, unknown, unknown, u
257
257
  }
258
258
 
259
259
  export class Provide<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> extends Channel<
260
- unknown,
260
+ never,
261
261
  InErr,
262
262
  InElem,
263
263
  InDone,
@@ -274,7 +274,7 @@ export class Provide<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> exten
274
274
  }
275
275
  }
276
276
 
277
- export class Emit<OutElem, OutDone> extends Channel<unknown, unknown, unknown, unknown, never, OutElem, OutDone> {
277
+ export class Emit<OutElem, OutDone> extends Channel<never, unknown, unknown, unknown, never, OutElem, OutDone> {
278
278
  readonly _tag = ChannelTag.Emit;
279
279
  constructor(readonly out: () => OutElem) {
280
280
  super();
@@ -12,7 +12,7 @@ export type MergeDecisionTypeId = typeof MergeDecisionTypeId;
12
12
  */
13
13
  export abstract class MergeDecision<R, E0, Z0, E, Z> {
14
14
  readonly _typeId: MergeDecisionTypeId = MergeDecisionTypeId;
15
- readonly _R!: (_: R) => void;
15
+ readonly _R!: () => R;
16
16
  readonly _E0!: (_: E0) => void;
17
17
  readonly _Z0!: (_: Z0) => void;
18
18
  readonly _E!: () => E;
@@ -2,7 +2,7 @@ class LiveClock extends Clock {
2
2
  currentTime: UIO<number> = IO.succeed(Date.now());
3
3
 
4
4
  sleep(duration: Lazy<Duration>, __tsplusTrace?: string): UIO<void> {
5
- return IO.asyncInterrupt<unknown, never, void>((k) => {
5
+ return IO.asyncInterrupt<never, never, void>((k) => {
6
6
  const handle = setTimeout(() => {
7
7
  k(IO.unit);
8
8
  }, duration().milliseconds);
@@ -34,7 +34,7 @@ export class TracedCont {
34
34
 
35
35
  export class Finalizer {
36
36
  readonly _tag = "Finalizer";
37
- constructor(readonly finalizer: UIO<any>, readonly apply: ErasedCont, readonly trace?: string) {}
37
+ constructor(readonly finalizer: IO<any, never, any>, readonly apply: ErasedCont, readonly trace?: string) {}
38
38
  }
39
39
 
40
40
  export type Frame =
@@ -533,7 +533,7 @@ export class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable, Equata
533
533
  }
534
534
 
535
535
  unsafeRunLater(i0: Instruction) {
536
- defaultScheduler(() => {
536
+ this.unsafeGetRef(FiberRef.currentScheduler).scheduleTask(() => {
537
537
  this.nextIO = i0;
538
538
  this.runUntil(this.runtimeConfig.yieldOpCount);
539
539
  });
@@ -569,7 +569,7 @@ export class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable, Equata
569
569
  this.fiberRefLocals.set(this.fiberRefLocals.get.remove(ref));
570
570
  }
571
571
 
572
- private unsafePoll() {
572
+ unsafePoll() {
573
573
  switch (this.state._tag) {
574
574
  case "Executing": {
575
575
  return Nothing();
@@ -592,7 +592,7 @@ export class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable, Equata
592
592
  }
593
593
  });
594
594
 
595
- private unsafeAddFinalizer(finalizer: UIO<any>): void {
595
+ private unsafeAddFinalizer(finalizer: IO<any, never, any>): void {
596
596
  this.stack.push(
597
597
  new Finalizer(finalizer, (v) => {
598
598
  this.unsafeDisableInterruption();
@@ -929,7 +929,9 @@ export class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable, Equata
929
929
  const childIO = !parentScope.unsafeAdd(childContext) ? IO.interruptAs(parentScope.fiberId) : io;
930
930
 
931
931
  childContext.nextIO = concrete(childIO);
932
- defaultScheduler(() => childContext.runUntil(this.runtimeConfig.yieldOpCount));
932
+ this.unsafeGetRef(FiberRef.currentScheduler).scheduleTask(() =>
933
+ childContext.runUntil(this.runtimeConfig.yieldOpCount),
934
+ );
933
935
 
934
936
  return childContext;
935
937
  }
@@ -968,12 +970,12 @@ export class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable, Equata
968
970
 
969
971
  private unsafeRace<R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>(
970
972
  race: Race<R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>,
971
- ): IO<R & R1 & R2 & R3, E2 | E3, A2 | A3> {
973
+ ): IO<R | R1 | R2 | R3, E2 | E3, A2 | A3> {
972
974
  const raceIndicator = new AtomicReference(true);
973
975
  const left = this.unsafeFork(concrete(race.left), Nothing(), race.trace);
974
976
  const right = this.unsafeFork(concrete(race.right), Nothing(), race.trace);
975
977
 
976
- return IO.async<R & R1 & R2 & R3, E2 | E3, A2 | A3>((cb) => {
978
+ return IO.async<R | R1 | R2 | R3, E2 | E3, A2 | A3>((cb) => {
977
979
  const leftRegister = left.unsafeAddObserver(() => {
978
980
  this.unsafeCompleteRace(left, right, race.leftWins, raceIndicator, cb);
979
981
  });
@@ -995,7 +997,7 @@ export class FiberContext<E, A> implements Fiber.Runtime<E, A>, Hashable, Equata
995
997
  loser: Fiber<any, any>,
996
998
  cont: (fiber0: Fiber<any, any>, fiber1: Fiber<any, any>) => Erased,
997
999
  ab: AtomicReference<boolean>,
998
- cb: (_: IO<R & R1 & R2 & R3, E2 | E3, A2 | A3>) => void,
1000
+ cb: (_: IO<R | R1 | R2 | R3, E2 | E3, A2 | A3>) => void,
999
1001
  ): void {
1000
1002
  if (ab.compareAndSet(true, false)) {
1001
1003
  cb(cont(winner, loser));
@@ -3,6 +3,6 @@
3
3
  *
4
4
  * @tsplus static fncts.io.FiberOps awaitAll
5
5
  */
6
- export function awaitAll<E, A>(as: Iterable<Fiber<E, A>>): IO<unknown, never, Exit<E, Conc<A>>> {
6
+ export function awaitAll<E, A>(as: Iterable<Fiber<E, A>>): IO<never, never, Exit<E, Conc<A>>> {
7
7
  return IO.foreachC(as, (f) => f.await.flatMap(IO.fromExitNow)).result;
8
8
  }
@@ -8,7 +8,7 @@ export function evalOnIO_<E, A, R1, E1, B, R2, E2, C>(
8
8
  fiber: Fiber<E, A>,
9
9
  effect: IO<R1, E1, B>,
10
10
  orElse: IO<R2, E2, C>,
11
- ): IO<R1 & R2, E1 | E2, B | C> {
11
+ ): IO<R1 | R2, E1 | E2, B | C> {
12
12
  return Do((Δ) => {
13
13
  const r = Δ(IO.environment<R1 & R2>());
14
14
  const f = Δ(Future.make<E1 | E2, B | C>());
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * @tsplus static fncts.io.FiberOps joinAll
7
7
  */
8
- export function joinAll<E, A>(as: Iterable<Fiber<E, A>>): IO<unknown, E, Conc<A>> {
8
+ export function joinAll<E, A>(as: Iterable<Fiber<E, A>>): IO<never, E, Conc<A>> {
9
9
  return Fiber.awaitAll(as)
10
10
  .flatMap(IO.fromExitNow)
11
11
  .tap(() => IO.foreach(as, (f) => f.inheritRefs));
@@ -80,7 +80,7 @@ export interface RuntimeFiber<E, A> extends FiberCommon<E, A> {
80
80
  readonly evalOnIO: <R1, E1, B, R2, E2, C>(
81
81
  effect: IO<R1, E1, B>,
82
82
  orElse: IO<R2, E2, C>,
83
- ) => IO<R1 & R2, E1 | E2, B | C>;
83
+ ) => IO<R1 | R2, E1 | E2, B | C>;
84
84
 
85
85
  /**
86
86
  * The status of the fiber.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @tsplus fluent fncts.io.FiberRef locallyScoped
3
3
  */
4
- export function locallyScoped_<A>(ref: FiberRef<A>, a: A): IO<Has<Scope>, never, void> {
4
+ export function locallyScoped_<A>(ref: FiberRef<A>, a: A): IO<Scope, never, void> {
5
5
  return IO.acquireRelease(
6
6
  ref.get.flatMap((old) => ref.set(a).as(old)),
7
7
  (a) => ref.set(a),
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @tsplus fluent fncts.io.FiberRef locallyScopedWith
3
3
  */
4
- export function locallyScopedWith<A>(self: FiberRef<A>, f: (a: A) => A): IO<Has<Scope>, never, void> {
4
+ export function locallyScopedWith<A>(self: FiberRef<A>, f: (a: A) => A): IO<Scope, never, void> {
5
5
  return self.getWith((a) => self.locallyScoped(f(a)));
6
6
  }
@@ -2,7 +2,7 @@ import { identity } from "@fncts/base/data/function";
2
2
 
3
3
  function makeWith<Value, Patch>(
4
4
  ref: Lazy<FiberRef.WithPatch<Value, Patch>>,
5
- ): IO<Has<Scope>, never, FiberRef.WithPatch<Value, Patch>> {
5
+ ): IO<Scope, never, FiberRef.WithPatch<Value, Patch>> {
6
6
  return IO.acquireRelease(
7
7
  IO.succeed(ref).tap((ref) => ref.update(identity)),
8
8
  (ref) => ref.remove,
@@ -16,6 +16,6 @@ export function make<A>(
16
16
  initial: A,
17
17
  fork: (a: A) => A = identity,
18
18
  join: (a: A, a1: A) => A = (_, a) => a,
19
- ): IO<Has<Scope>, never, FiberRef<A>> {
19
+ ): IO<Scope, never, FiberRef<A>> {
20
20
  return makeWith(FiberRef.unsafeMake(initial, fork, join));
21
21
  }
@@ -1,7 +1,9 @@
1
1
  import type { LogSpan } from "../LogSpan.js";
2
+ import type { Scheduler } from "@fncts/io/internal/Scheduler.js";
2
3
 
3
4
  import { identity } from "@fncts/base/data/function";
4
5
  import { Patch } from "@fncts/base/data/Patch";
6
+ import { defaultScheduler } from "@fncts/io/internal/Scheduler";
5
7
 
6
8
  import { FiberRefInternal } from "./definition.js";
7
9
 
@@ -77,3 +79,8 @@ export const currentLogSpan = FiberRef.unsafeMake<List<LogSpan>>(Nil());
77
79
  * @tsplus static fncts.io.FiberRefOps currentLogAnnotations
78
80
  */
79
81
  export const currentLogAnnotations = FiberRef.unsafeMake<HashMap<string, string>>(HashMap.makeDefault());
82
+
83
+ /**
84
+ * @tsplus static fncts.io.FiberRefOps currentScheduler
85
+ */
86
+ export const currentScheduler = FiberRef.unsafeMake<Scheduler>(defaultScheduler);
@@ -175,8 +175,8 @@ export function unsafeSucceed_<A>(future: Future<never, A>, a: A): void {
175
175
  *
176
176
  * @tsplus getter fncts.io.Future await
177
177
  */
178
- export function wait<E, A>(future: Future<E, A>): IO<unknown, E, A> {
179
- return IO.asyncInterrupt<unknown, E, A>((k) => {
178
+ export function wait<E, A>(future: Future<E, A>): IO<never, E, A> {
179
+ return IO.asyncInterrupt<never, E, A>((k) => {
180
180
  switch (future.state._tag) {
181
181
  case FutureStateTag.Done: {
182
182
  return Either.right(future.state.value);
@@ -189,7 +189,7 @@ export function wait<E, A>(future: Future<E, A>): IO<unknown, E, A> {
189
189
  }, future.blockingOn);
190
190
  }
191
191
 
192
- function interruptJoiner<E, A>(future: Future<E, A>, joiner: (a: FIO<E, A>) => void): Canceler<unknown> {
192
+ function interruptJoiner<E, A>(future: Future<E, A>, joiner: (a: FIO<E, A>) => void): Canceler<never> {
193
193
  return IO.succeed(() => {
194
194
  switch (future.state._tag) {
195
195
  case FutureStateTag.Pending: {
@@ -5,7 +5,7 @@ import { Future, Pending } from "@fncts/io/Future/definition";
5
5
  *
6
6
  * @tsplus static fncts.io.FutureOps make
7
7
  */
8
- export function make<E, A>(): IO<unknown, never, Future<E, A>> {
8
+ export function make<E, A>(): IO<never, never, Future<E, A>> {
9
9
  return IO.fiberId.flatMap((id) => Future.makeAs<E, A>(id));
10
10
  }
11
11
 
package/_src/Hub/api.ts CHANGED
@@ -40,13 +40,13 @@ export function capacity<RA, RB, EA, EB, A, B>(self: PHub<RA, RB, EA, EB, A, B>)
40
40
  export function contramapIO_<RA, RB, RC, EA, EB, EC, A, B, C>(
41
41
  self: PHub<RA, RB, EA, EB, A, B>,
42
42
  f: (c: C) => IO<RC, EC, A>,
43
- ): PHub<RC & RA, RB, EA | EC, EB, C, B> {
43
+ ): PHub<RC | RA, RB, EA | EC, EB, C, B> {
44
44
  return self.dimapIO(f, IO.succeedNow);
45
45
  }
46
46
 
47
47
  class DimapIO<RA, RB, RC, RD, EA, EB, EC, ED, A, B, C, D> extends PHubInternal<
48
- RC & RA,
49
- RD & RB,
48
+ RC | RA,
49
+ RD | RB,
50
50
  EA | EC,
51
51
  EB | ED,
52
52
  C,
@@ -96,12 +96,12 @@ export function dimapIO_<RA, RB, RC, RD, EA, EB, EC, ED, A, B, C, D>(
96
96
  source: PHub<RA, RB, EA, EB, A, B>,
97
97
  f: (c: C) => IO<RC, EC, A>,
98
98
  g: (b: B) => IO<RD, ED, D>,
99
- ): PHub<RC & RA, RD & RB, EA | EC, EB | ED, C, D> {
99
+ ): PHub<RC | RA, RD | RB, EA | EC, EB | ED, C, D> {
100
100
  concrete(source);
101
101
  return new DimapIO(source, f, g);
102
102
  }
103
103
 
104
- class FilterInputIO<RA, RA1, RB, EA, EA1, EB, A, B> extends PHubInternal<RA & RA1, RB, EA | EA1, EB, A, B> {
104
+ class FilterInputIO<RA, RA1, RB, EA, EA1, EB, A, B> extends PHubInternal<RA | RA1, RB, EA | EA1, EB, A, B> {
105
105
  constructor(readonly source: PHubInternal<RA, RB, EA, EB, A, B>, readonly f: (a: A) => IO<RA1, EA1, boolean>) {
106
106
  super();
107
107
  }
@@ -125,7 +125,7 @@ class FilterInputIO<RA, RA1, RB, EA, EA1, EB, A, B> extends PHubInternal<RA & RA
125
125
  export function filterInputIO_<RA, RA1, RB, EA, EA1, EB, A, B>(
126
126
  source: PHub<RA, RB, EA, EB, A, B>,
127
127
  f: (a: A) => IO<RA1, EA1, boolean>,
128
- ): PHub<RA & RA1, RB, EA | EA1, EB, A, B> {
128
+ ): PHub<RA | RA1, RB, EA | EA1, EB, A, B> {
129
129
  concrete(source);
130
130
  return new FilterInputIO(source, f);
131
131
  }
@@ -139,7 +139,7 @@ export function filterInput_<RA, RB, EA, EB, A, B>(self: PHub<RA, RB, EA, EB, A,
139
139
  return self.filterInputIO((a) => IO.succeedNow(f(a)));
140
140
  }
141
141
 
142
- class FilterOutputIO<RA, RB, RB1, EA, EB, EB1, A, B> extends PHubInternal<RA, RB & RB1, EA, EB | EB1, A, B> {
142
+ class FilterOutputIO<RA, RB, RB1, EA, EB, EB1, A, B> extends PHubInternal<RA, RB | RB1, EA, EB | EB1, A, B> {
143
143
  constructor(readonly source: PHubInternal<RA, RB, EA, EB, A, B>, readonly f: (a: B) => IO<RB1, EB1, boolean>) {
144
144
  super();
145
145
  }
@@ -162,7 +162,7 @@ class FilterOutputIO<RA, RB, RB1, EA, EB, EB1, A, B> extends PHubInternal<RA, RB
162
162
  export function filterOutputIO_<RA, RB, RB1, EA, EB, EB1, A, B>(
163
163
  source: PHub<RA, RB, EA, EB, A, B>,
164
164
  f: (a: B) => IO<RB1, EB1, boolean>,
165
- ): PHub<RA, RB & RB1, EA, EB | EB1, A, B> {
165
+ ): PHub<RA, RB | RB1, EA, EB | EB1, A, B> {
166
166
  concrete(source);
167
167
  return new FilterOutputIO(source, f);
168
168
  }
@@ -262,7 +262,7 @@ export function map_<RA, RB, EA, EB, A, B, C>(
262
262
  export function mapIO_<RA, RB, RC, EA, EB, EC, A, B, C>(
263
263
  self: PHub<RA, RB, EA, EB, A, B>,
264
264
  f: (b: B) => IO<RC, EC, C>,
265
- ): PHub<RA, RC & RB, EA, EB | EC, A, C> {
265
+ ): PHub<RA, RC | RB, EA, EB | EC, A, C> {
266
266
  return self.dimapIO(IO.succeedNow, f);
267
267
  }
268
268
 
@@ -279,7 +279,7 @@ class ToQueue<RA, RB, EA, EB, A, B> extends QueueInternal<RA, never, EA, unknown
279
279
  takeAll = IO.succeedNow(Conc.empty<never>());
280
280
  offer = (a: A): IO<RA, EA, boolean> => this.source.publish(a);
281
281
  offerAll = (as: Iterable<A>): IO<RA, EA, boolean> => this.source.publishAll(as);
282
- takeUpTo = (): IO<unknown, never, Conc<never>> => IO.succeedNow(Conc.empty());
282
+ takeUpTo = (): IO<never, never, Conc<never>> => IO.succeedNow(Conc.empty());
283
283
  }
284
284
 
285
285
  /**
@@ -326,7 +326,7 @@ export function shutdown<RA, RB, EA, EB, A, B>(self: PHub<RA, RB, EA, EB, A, B>)
326
326
  */
327
327
  export function subscribe<RA, RB, EA, EB, A, B>(
328
328
  self: PHub<RA, RB, EA, EB, A, B>,
329
- ): IO<Has<Scope>, never, Hub.Dequeue<RB, EB, B>> {
329
+ ): IO<Scope, never, Hub.Dequeue<RB, EB, B>> {
330
330
  concrete(self);
331
331
  return self.subscribe;
332
332
  }
@@ -13,8 +13,8 @@ export type HubTypeId = typeof HubTypeId;
13
13
  */
14
14
  export interface PHub<RA, RB, EA, EB, A, B> {
15
15
  readonly _typeId: HubTypeId;
16
- readonly _RA: (_: RA) => void;
17
- readonly _RB: (_: RB) => void;
16
+ readonly _RA: () => RA;
17
+ readonly _RB: () => RB;
18
18
  readonly _EA: () => EA;
19
19
  readonly _EB: () => EB;
20
20
  readonly _A: (_: A) => void;
@@ -24,7 +24,7 @@ export interface PHub<RA, RB, EA, EB, A, B> {
24
24
  /**
25
25
  * @tsplus type fncts.io.Hub
26
26
  */
27
- export interface Hub<A> extends PHub<unknown, unknown, never, never, A, A> {}
27
+ export interface Hub<A> extends PHub<never, never, never, never, A, A> {}
28
28
 
29
29
  /**
30
30
  * @tsplus type fncts.io.HubOps
@@ -40,8 +40,8 @@ export declare namespace Hub {
40
40
 
41
41
  export abstract class PHubInternal<RA, RB, EA, EB, A, B> implements PHub<RA, RB, EA, EB, A, B> {
42
42
  _typeId: HubTypeId = HubTypeId;
43
- readonly _RA!: (_: RA) => void;
44
- readonly _RB!: (_: RB) => void;
43
+ readonly _RA!: () => RA;
44
+ readonly _RB!: () => RB;
45
45
  readonly _EA!: () => EA;
46
46
  readonly _EB!: () => EB;
47
47
  readonly _A!: (_: A) => void;
@@ -89,7 +89,7 @@ export abstract class PHubInternal<RA, RB, EA, EB, A, B> implements PHub<RA, RB,
89
89
  * can be evaluated multiple times within the scope of the managed to take a
90
90
  * message from the hub each time.
91
91
  */
92
- abstract subscribe: IO<Has<Scope>, never, Hub.Dequeue<RB, EB, B>>;
92
+ abstract subscribe: IO<Scope, never, Hub.Dequeue<RB, EB, B>>;
93
93
  }
94
94
 
95
95
  /**
@@ -125,10 +125,10 @@ export class BackPressure<A> extends Strategy<A> {
125
125
  get shutdown(): UIO<void> {
126
126
  // eslint-disable-next-line @typescript-eslint/no-this-alias
127
127
  const self = this;
128
- return IO.gen(function* (_) {
129
- const fiberId = yield* _(IO.fiberId);
130
- const publishers = yield* _(IO.succeed(self.publishers.unsafeDequeueAll));
131
- yield* _(IO.foreachC(publishers, ([_, future, last]) => (last ? future.interruptAs(fiberId) : IO.unit)));
128
+ return Do((_) => {
129
+ const fiberId = _(IO.fiberId);
130
+ const publishers = _(IO.succeed(self.publishers.unsafeDequeueAll));
131
+ _(IO.foreachC(publishers, ([_, future, last]) => (last ? future.interruptAs(fiberId) : IO.unit)));
132
132
  });
133
133
  }
134
134
 
@@ -254,7 +254,7 @@ export class Sliding<A> extends Strategy<A> {
254
254
  }
255
255
  }
256
256
 
257
- class UnsafeSubscription<A> extends QueueInternal<never, unknown, unknown, never, never, A> {
257
+ class UnsafeSubscription<A> extends QueueInternal<never, never, unknown, never, never, A> {
258
258
  constructor(
259
259
  readonly hub: HubInternal<A>,
260
260
  readonly subscribers: HashSet<HashedPair<HubInternal.Subscription<A>, MutableQueue<Future<never, A>>>>,
@@ -294,7 +294,7 @@ class UnsafeSubscription<A> extends QueueInternal<never, unknown, unknown, never
294
294
 
295
295
  offerAll = (_: Iterable<never>): IO<never, unknown, boolean> => IO.succeedNow(false);
296
296
 
297
- take: IO<unknown, never, A> = IO.fiberId.flatMap((fiberId) =>
297
+ take: IO<never, never, A> = IO.fiberId.flatMap((fiberId) =>
298
298
  IO.defer(() => {
299
299
  if (this.shutdownFlag.get) {
300
300
  return IO.interrupt;
@@ -327,7 +327,7 @@ class UnsafeSubscription<A> extends QueueInternal<never, unknown, unknown, never
327
327
  }),
328
328
  );
329
329
 
330
- takeAll: IO<unknown, never, Conc<A>> = IO.defer(() => {
330
+ takeAll: IO<never, never, Conc<A>> = IO.defer(() => {
331
331
  if (this.shutdownFlag.get) {
332
332
  return IO.interrupt;
333
333
  }
@@ -339,7 +339,7 @@ class UnsafeSubscription<A> extends QueueInternal<never, unknown, unknown, never
339
339
  return IO.succeedNow(as);
340
340
  });
341
341
 
342
- takeUpTo = (n: number): IO<unknown, never, Conc<A>> => {
342
+ takeUpTo = (n: number): IO<never, never, Conc<A>> => {
343
343
  return IO.defer(() => {
344
344
  if (this.shutdownFlag.get) {
345
345
  return IO.interrupt;
@@ -395,7 +395,7 @@ export function subscribersHashSet<A>(): HashSet<
395
395
  return HashSet.empty<HashedPair<HubInternal.Subscription<A>, MutableQueue<Future<never, A>>>>();
396
396
  }
397
397
 
398
- class UnsafeHub<A> extends PHubInternal<unknown, unknown, never, never, A, A> {
398
+ class UnsafeHub<A> extends PHubInternal<never, never, never, never, A, A> {
399
399
  constructor(
400
400
  readonly hub: HubInternal<A>,
401
401
  readonly subscribers: HashSet<HashedPair<HubInternal.Subscription<A>, MutableQueue<Future<never, A>>>>,
@@ -431,14 +431,14 @@ class UnsafeHub<A> extends PHubInternal<unknown, unknown, never, never, A, A> {
431
431
  return IO.succeed(this.hub.size());
432
432
  });
433
433
 
434
- subscribe: IO<Has<Scope>, never, Queue.Dequeue<A>> = IO.acquireRelease(
434
+ subscribe: IO<Scope, never, Queue.Dequeue<A>> = IO.acquireRelease(
435
435
  makeSubscription(this.hub, this.subscribers, this.strategy).tap((dequeue) =>
436
436
  this.scope.addFinalizer(dequeue.shutdown),
437
437
  ),
438
438
  (dequeue) => dequeue.shutdown,
439
439
  );
440
440
 
441
- publish = (a: A): IO<unknown, never, boolean> =>
441
+ publish = (a: A): IO<never, never, boolean> =>
442
442
  IO.defer(() => {
443
443
  if (this.shutdownFlag.get) {
444
444
  return IO.interrupt;
@@ -452,7 +452,7 @@ class UnsafeHub<A> extends PHubInternal<unknown, unknown, never, never, A, A> {
452
452
  return this.strategy.handleSurplus(this.hub, this.subscribers, Conc.single(a), this.shutdownFlag);
453
453
  });
454
454
 
455
- publishAll = (as: Iterable<A>): IO<unknown, never, boolean> =>
455
+ publishAll = (as: Iterable<A>): IO<never, never, boolean> =>
456
456
  IO.defer(() => {
457
457
  if (this.shutdownFlag.get) {
458
458
  return IO.interrupt;
@@ -485,9 +485,9 @@ export function unsafeMakeHub<A>(
485
485
  }
486
486
 
487
487
  export function makeHubInternal<A>(hub: HubInternal<A>, strategy: Strategy<A>): UIO<Hub<A>> {
488
- return IO.gen(function* (_) {
489
- const scope = yield* _(Scope.make);
490
- const future = yield* _(Future.make<never, void>());
488
+ return Do((_) => {
489
+ const scope = _(Scope.make);
490
+ const future = _(Future.make<never, void>());
491
491
  return unsafeMakeHub(hub, subscribersHashSet(), scope, future, new AtomicBoolean(false), strategy);
492
492
  });
493
493
  }
@@ -5,6 +5,6 @@
5
5
  export function acquireRelease<R, E, A, R1>(
6
6
  acquire: Lazy<IO<R, E, A>>,
7
7
  release: (a: A) => IO<R1, never, any>,
8
- ): IO<R & R1 & Has<Scope>, E, A> {
8
+ ): IO<R | R1 | Scope, E, A> {
9
9
  return IO.acquireReleaseExit(acquire, (a, _) => release(a));
10
10
  }
@@ -6,6 +6,6 @@ export function acquireReleaseExit<R, E, A, R1>(
6
6
  acquire: Lazy<IO<R, E, A>>,
7
7
  release: (a: A, exit: Exit<any, any>) => IO<R1, never, any>,
8
8
  __tsplusTrace?: string,
9
- ): IO<R & R1 & Has<Scope>, E, A> {
9
+ ): IO<R | R1 | Scope, E, A> {
10
10
  return IO.uninterruptible(IO.defer(acquire).tap((a) => IO.addFinalizerExit((exit) => release(a, exit))));
11
11
  }
@@ -5,6 +5,6 @@ export function acquireReleaseInterruptible<R, E, A, R1>(
5
5
  acquire: Lazy<IO<R, E, A>>,
6
6
  release: IO<R1, never, any>,
7
7
  __tsplusTrace?: string,
8
- ): IO<R & R1 & Has<Scope>, E, A> {
8
+ ): IO<R | R1 | Scope, E, A> {
9
9
  return IO.acquireReleaseInterruptibleExit(acquire, () => release);
10
10
  }
@@ -5,6 +5,6 @@ export function acquireReleaseInterruptibleExit<R, E, A, R1>(
5
5
  acquire: Lazy<IO<R, E, A>>,
6
6
  release: (exit: Exit<any, any>) => IO<R1, never, any>,
7
7
  __tsplusTrace?: string,
8
- ): IO<R & R1 & Has<Scope>, E, A> {
8
+ ): IO<R | R1 | Scope, E, A> {
9
9
  return IO.defer(acquire).ensuring(IO.addFinalizerExit(release));
10
10
  }
@@ -4,6 +4,6 @@
4
4
  export function addFinalizer<R>(
5
5
  finalizer: Lazy<URIO<R, any>>,
6
6
  __tsplusTrace?: string,
7
- ): IO<R & Has<Scope>, never, void> {
7
+ ): IO<R | Scope, never, void> {
8
8
  return IO.addFinalizerExit(() => finalizer());
9
9
  }
@@ -1,12 +1,10 @@
1
1
  /**
2
2
  * @tsplus static fncts.io.IOOps addFinalizerExit
3
3
  */
4
- export function addFinalizerExit<R>(
5
- finalizer: (exit: Exit<any, any>) => URIO<R, any>,
6
- ): IO<R & Has<Scope>, never, void> {
7
- return IO.gen(function* (_) {
8
- const environment = yield* _(IO.environment<R>());
9
- const scope = yield* _(IO.scope);
10
- yield* _(scope.addFinalizerExit(Finalizer.get((exit) => finalizer(exit).provideEnvironment(environment))));
4
+ export function addFinalizerExit<R>(finalizer: (exit: Exit<any, any>) => URIO<R, any>): IO<R | Scope, never, void> {
5
+ return Do((_) => {
6
+ const environment = _(IO.environment<R>());
7
+ const scope = _(IO.scope);
8
+ _(scope.addFinalizerExit(Finalizer.get((exit) => finalizer(exit).provideEnvironment(environment))));
11
9
  });
12
10
  }
@@ -25,6 +25,6 @@ export function bracket_<R, E, A, R1, E1, A1, R2, E2, A2>(
25
25
  acquire: Lazy<IO<R, E, A>>,
26
26
  use: (a: A) => IO<R1, E1, A1>,
27
27
  release: (a: A) => IO<R2, E2, A2>,
28
- ): IO<R & R1 & R2, E | E1 | E2, A1> {
28
+ ): IO<R | R1 | R2, E | E1 | E2, A1> {
29
29
  return IO.bracketExit(acquire, use, release);
30
30
  }
@@ -12,7 +12,7 @@ export function bracketExit_<R, E, A, E1, R1, A1, R2, E2>(
12
12
  acquire: Lazy<IO<R, E, A>>,
13
13
  use: (a: A) => IO<R1, E1, A1>,
14
14
  release: (a: A, e: Exit<E1, A1>) => IO<R2, E2, any>,
15
- ): IO<R & R1 & R2, E | E1 | E2, A1> {
15
+ ): IO<R | R1 | R2, E | E1 | E2, A1> {
16
16
  return IO.uninterruptibleMask(({ restore }) =>
17
17
  acquire().flatMap((a) =>
18
18
  IO.defer(restore(use(a))).result.flatMap((exit) =>
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @tsplus getter fncts.io.IO concurrentFinalizers
3
3
  */
4
- export function concurrentFinalizers<R, E, A>(io: IO<R, E, A>): IO<R & Has<Scope>, E, A> {
4
+ export function concurrentFinalizers<R, E, A>(io: IO<R, E, A>): IO<R | Scope, E, A> {
5
5
  return Do((Δ) => {
6
6
  const outerScope = Δ(IO.scope);
7
7
  const innerScope = Δ(Scope.concurrent);
@@ -62,7 +62,7 @@ export function raceWith_<R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>(
62
62
  leftWins: (exit: Exit<E, A>, fiber: Fiber<E1, A1>) => IO<R2, E2, A2>,
63
63
  rightWins: (exit: Exit<E1, A1>, fiber: Fiber<E, A>) => IO<R3, E3, A3>,
64
64
  __tsplusTrace?: string,
65
- ): IO<R & R1 & R2 & R3, E2 | E3, A2 | A3> {
65
+ ): IO<R | R1 | R2 | R3, E2 | E3, A2 | A3> {
66
66
  return IO.defer(
67
67
  () =>
68
68
  new Race(
@@ -4,8 +4,8 @@
4
4
  export function ensuringChildren<R, E, A, R1>(
5
5
  self: IO<R, E, A>,
6
6
  children: (_: Conc<Fiber.Runtime<any, any>>) => IO<R1, never, void>,
7
- ): IO<R & R1, E, A> {
8
- return Supervisor.track.flatMap((supervisor) =>
7
+ ): IO<R | R1, E, A> {
8
+ return Supervisor.track(true).flatMap((supervisor) =>
9
9
  self.supervised(supervisor).ensuring(supervisor.value.flatMap(children)),
10
10
  );
11
11
  }