@fncts/io 0.0.10 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
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
  }