@fncts/io 0.0.11 → 0.0.14

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 (1041) hide show
  1. package/Cached/api.d.ts +3 -4
  2. package/Channel/UpstreamPullStrategy/definition.d.ts +1 -1
  3. package/Channel/api/interruptWhen.d.ts +1 -1
  4. package/Channel/api/mapOutIOC.d.ts +2 -2
  5. package/Channel/api/mergeAll.d.ts +1 -1
  6. package/Channel/api/mergeAllUnboundedWith.d.ts +1 -1
  7. package/Channel/api/mergeAllWith.d.ts +3 -3
  8. package/Channel/api/mergeMap.d.ts +1 -1
  9. package/Channel/api/mergeWith.d.ts +3 -3
  10. package/Channel/api/runScoped.d.ts +1 -2
  11. package/Channel/api/toPull.d.ts +2 -3
  12. package/Channel/api/zipC.d.ts +3 -3
  13. package/Channel/api.d.ts +56 -57
  14. package/Channel/core-api.d.ts +12 -12
  15. package/Channel/definition.d.ts +36 -22
  16. package/Channel/internal/AsyncInputConsumer.d.ts +1 -1
  17. package/Channel/internal/AsyncInputProducer.d.ts +1 -1
  18. package/Channel/internal/ChannelExecutor.d.ts +5 -5
  19. package/Channel/internal/ChannelState.d.ts +1 -1
  20. package/Channel/internal/MergeDecision.d.ts +2 -2
  21. package/Channel/internal/MergeState.d.ts +2 -2
  22. package/Channel/internal/SingleProducerAsyncInput.d.ts +5 -5
  23. package/Clock/api.d.ts +3 -3
  24. package/Clock/definition.d.ts +2 -2
  25. package/Clock/live.d.ts +3 -3
  26. package/Console/api.d.ts +1 -1
  27. package/Fiber/FiberContext.d.ts +12 -12
  28. package/Fiber/api/await.d.ts +2 -2
  29. package/Fiber/api/awaitAll.d.ts +2 -2
  30. package/Fiber/api/children.d.ts +1 -1
  31. package/Fiber/api/collectAll.d.ts +3 -3
  32. package/Fiber/api/evalOn.d.ts +1 -1
  33. package/Fiber/api/evalOnIO.d.ts +1 -1
  34. package/Fiber/api/fromIO.d.ts +1 -1
  35. package/Fiber/api/id.d.ts +2 -2
  36. package/Fiber/api/inheritRefs.d.ts +1 -1
  37. package/Fiber/api/interrupt.d.ts +2 -2
  38. package/Fiber/api/interruptAll.d.ts +3 -3
  39. package/Fiber/api/interruptAs.d.ts +3 -3
  40. package/Fiber/api/join.d.ts +1 -1
  41. package/Fiber/api/joinAll.d.ts +1 -1
  42. package/Fiber/api/mapFiber.d.ts +1 -1
  43. package/Fiber/api/mapIO.d.ts +2 -2
  44. package/Fiber/api/poll.d.ts +3 -3
  45. package/Fiber/api/zipWith.d.ts +1 -1
  46. package/Fiber/constructors.d.ts +8 -8
  47. package/Fiber/definition.d.ts +4 -4
  48. package/FiberRef/api/locallyScoped.d.ts +1 -2
  49. package/FiberRef/api/locallyScopedWith.d.ts +1 -2
  50. package/FiberRef/api.d.ts +8 -8
  51. package/FiberRef/constructors.d.ts +2 -3
  52. package/FiberRef/unsafe.d.ts +11 -5
  53. package/FiberRefs/api.d.ts +4 -4
  54. package/FiberRefs/definition.d.ts +3 -3
  55. package/FiberRefs/join.d.ts +2 -2
  56. package/FiberScope/constructors.d.ts +1 -1
  57. package/FiberScope/definition.d.ts +1 -1
  58. package/FiberState/api.d.ts +1 -1
  59. package/FiberState/constructors.d.ts +3 -3
  60. package/FiberState/definition.d.ts +3 -3
  61. package/FiberStatus/constructors.d.ts +1 -1
  62. package/FiberStatus/definition.d.ts +1 -1
  63. package/Future/api.d.ts +18 -18
  64. package/Future/constructors.d.ts +3 -3
  65. package/Future/definition.d.ts +2 -2
  66. package/Hub/api.d.ts +22 -23
  67. package/Hub/definition.d.ts +6 -7
  68. package/Hub/internal.d.ts +1 -2
  69. package/IO/api/acquireRelease.d.ts +2 -3
  70. package/IO/api/acquireReleaseExit.d.ts +3 -4
  71. package/IO/api/acquireReleaseInterruptible.d.ts +2 -3
  72. package/IO/api/acquireReleaseInterruptibleExit.d.ts +3 -4
  73. package/IO/api/addFinalizer.d.ts +2 -3
  74. package/IO/api/addFinalizerExit.d.ts +2 -3
  75. package/IO/api/asyncIO.d.ts +1 -1
  76. package/IO/api/bracket.d.ts +2 -2
  77. package/IO/api/bracketExit.d.ts +3 -3
  78. package/IO/api/clockWith.d.ts +1 -1
  79. package/IO/api/concurrency.d.ts +4 -4
  80. package/IO/api/concurrentFinalizers.d.ts +1 -2
  81. package/IO/api/consoleWith.d.ts +2 -2
  82. package/IO/api/core-scope.d.ts +4 -4
  83. package/IO/api/ensuringChildren.d.ts +1 -1
  84. package/IO/api/environment.d.ts +10 -12
  85. package/IO/api/foreachC.d.ts +2 -2
  86. package/IO/api/foreachExec.d.ts +1 -1
  87. package/IO/api/forkScoped.d.ts +1 -2
  88. package/IO/api/fulfill.d.ts +1 -1
  89. package/IO/api/interrupt.d.ts +8 -8
  90. package/IO/api/onExit.d.ts +2 -2
  91. package/IO/api/onTermination.d.ts +4 -4
  92. package/IO/api/provideLayer.d.ts +1 -1
  93. package/IO/api/provideSomeLayer.d.ts +1 -1
  94. package/IO/api/race.d.ts +1 -1
  95. package/IO/api/raceFirst.d.ts +1 -1
  96. package/IO/api/randomWith.d.ts +2 -2
  97. package/IO/api/repeat.d.ts +6 -6
  98. package/IO/api/retry.d.ts +5 -5
  99. package/IO/api/schedule.d.ts +3 -3
  100. package/IO/api/scope.d.ts +1 -2
  101. package/IO/api/scopeWith.d.ts +1 -2
  102. package/IO/api/scoped.d.ts +3 -4
  103. package/IO/api/sequenceT.d.ts +4 -4
  104. package/IO/api/sleep.d.ts +2 -2
  105. package/IO/api/stateful.d.ts +3 -4
  106. package/IO/api/timeout.d.ts +4 -4
  107. package/IO/api/withEarlyRelease.d.ts +1 -2
  108. package/IO/api/withFinalizer.d.ts +1 -2
  109. package/IO/api/withFinalizerExit.d.ts +2 -3
  110. package/IO/api/withRuntimeConfig.d.ts +2 -2
  111. package/IO/api/zipC.d.ts +4 -4
  112. package/IO/api.d.ts +94 -94
  113. package/IO/definition.d.ts +44 -34
  114. package/IO/runtime.d.ts +29 -16
  115. package/IOEnv/definition.d.ts +2 -3
  116. package/IOEnv/live.d.ts +1 -1
  117. package/IOEnv/services.d.ts +1 -1
  118. package/IOSpec.d.ts +7 -8
  119. package/Layer/MemoMap.d.ts +8 -9
  120. package/Layer/api.d.ts +41 -43
  121. package/Layer/definition.d.ts +22 -16
  122. package/Logger/api.d.ts +2 -2
  123. package/Logger/definition.d.ts +4 -4
  124. package/Queue/api/dimapIO.d.ts +6 -6
  125. package/Queue/api/filterInputIO.d.ts +6 -6
  126. package/Queue/api/filterOutputIO.d.ts +8 -8
  127. package/Queue/api/operations.d.ts +10 -10
  128. package/Queue/api/poll.d.ts +2 -2
  129. package/Queue/api/takeBetween.d.ts +1 -1
  130. package/Queue/api/zipWithIO.d.ts +9 -9
  131. package/Queue/constructors.d.ts +4 -4
  132. package/Queue/definition.d.ts +10 -10
  133. package/Queue/internal.d.ts +1 -1
  134. package/Queue/strategy.d.ts +10 -10
  135. package/Random/api.d.ts +8 -8
  136. package/Random/definition.d.ts +5 -5
  137. package/Random/live.d.ts +5 -5
  138. package/Ref/Atomic/Atomic.d.ts +4 -4
  139. package/Ref/Atomic/api.d.ts +11 -11
  140. package/Ref/Derived.d.ts +4 -4
  141. package/Ref/DerivedAll.d.ts +4 -4
  142. package/Ref/Synchronized/api.d.ts +16 -16
  143. package/Ref/Synchronized/constructors.d.ts +2 -2
  144. package/Ref/Synchronized/definition.d.ts +3 -3
  145. package/Ref/api/collect.d.ts +2 -2
  146. package/Ref/api/dimap.d.ts +8 -8
  147. package/Ref/api/filter.d.ts +3 -3
  148. package/Ref/api/get.d.ts +1 -1
  149. package/Ref/api/match.d.ts +1 -1
  150. package/Ref/api/matchAll.d.ts +1 -1
  151. package/Ref/api/modify.d.ts +10 -10
  152. package/Ref/api/set.d.ts +1 -1
  153. package/Ref/constructors.d.ts +3 -3
  154. package/Ref/definition.d.ts +15 -15
  155. package/RuntimeConfig.d.ts +2 -2
  156. package/STM/api/core-api.d.ts +5 -5
  157. package/STM/api/core-constructors.d.ts +9 -9
  158. package/STM/api.d.ts +60 -72
  159. package/STM/definition.d.ts +10 -9
  160. package/STM/driver.d.ts +2 -2
  161. package/STM/internal/CommitState.d.ts +1 -1
  162. package/STM/internal/Journal.d.ts +7 -6
  163. package/STM/internal/TryCommit.d.ts +1 -1
  164. package/Schedule/Decision.d.ts +10 -4
  165. package/Schedule/Driver.d.ts +4 -4
  166. package/Schedule/api/driver.d.ts +1 -1
  167. package/Schedule/api.d.ts +85 -73
  168. package/Schedule/definition.d.ts +1 -1
  169. package/Scope/Finalizer/definition.d.ts +3 -3
  170. package/Scope/ReleaseMap/api/releaseAll.d.ts +2 -2
  171. package/Scope/ReleaseMap/api.d.ts +7 -7
  172. package/Scope/ReleaseMap/definition.d.ts +3 -3
  173. package/Scope/api.d.ts +9 -10
  174. package/Scope/definition.d.ts +2 -2
  175. package/ScopedRef/api.d.ts +2 -3
  176. package/ScopedRef/definition.d.ts +1 -2
  177. package/Sink/api.d.ts +73 -74
  178. package/State/api.d.ts +2 -3
  179. package/Stream/api/zipAllWith.d.ts +3 -3
  180. package/Stream/api/zipWith.d.ts +1 -1
  181. package/Stream/api/zipWithChunks.d.ts +4 -4
  182. package/Stream/api.d.ts +171 -166
  183. package/Stream/definition.d.ts +3 -3
  184. package/Stream/internal/Handoff.d.ts +2 -2
  185. package/Stream/internal/Pull.d.ts +2 -2
  186. package/Stream/internal/Take.d.ts +4 -4
  187. package/Stream/internal/util.d.ts +1 -1
  188. package/Supervisor/api.d.ts +3 -3
  189. package/Supervisor/constructors.d.ts +6 -6
  190. package/Supervisor/definition.d.ts +3 -3
  191. package/TExit/constructors.d.ts +1 -1
  192. package/TExit/definition.d.ts +1 -1
  193. package/TFuture/api.d.ts +7 -7
  194. package/TFuture/constructors.d.ts +4 -4
  195. package/TFuture/definition.d.ts +3 -3
  196. package/TReentrantLock/api.d.ts +18 -19
  197. package/TReentrantLock/definition.d.ts +2 -2
  198. package/TRef/api.d.ts +15 -15
  199. package/TRef/constructors.d.ts +5 -5
  200. package/TRef/definition.d.ts +2 -2
  201. package/TSemaphore/api.d.ts +7 -7
  202. package/TSemaphore/constructors.d.ts +1 -1
  203. package/TSemaphore/definition.d.ts +1 -1
  204. package/_cjs/Cached/api.cjs +5 -5
  205. package/_cjs/Cached/api.cjs.map +1 -1
  206. package/_cjs/Channel/api/interruptWhen.cjs +1 -1
  207. package/_cjs/Channel/api/interruptWhen.cjs.map +1 -1
  208. package/_cjs/Channel/api/mapOutIOC.cjs +2 -2
  209. package/_cjs/Channel/api/mapOutIOC.cjs.map +1 -1
  210. package/_cjs/Channel/api/mergeAllWith.cjs +11 -11
  211. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  212. package/_cjs/Channel/api/mergeWith.cjs +5 -5
  213. package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
  214. package/_cjs/Channel/api/run.cjs +3 -1
  215. package/_cjs/Channel/api/run.cjs.map +1 -1
  216. package/_cjs/Channel/api.cjs +7 -7
  217. package/_cjs/Channel/api.cjs.map +1 -1
  218. package/_cjs/Channel/core-api.cjs.map +1 -1
  219. package/_cjs/Channel/definition.cjs.map +1 -1
  220. package/_cjs/Channel/internal/ChannelExecutor.cjs +6 -6
  221. package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
  222. package/_cjs/Channel/internal/ChannelState.cjs +2 -1
  223. package/_cjs/Channel/internal/ChannelState.cjs.map +1 -1
  224. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +16 -16
  225. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
  226. package/_cjs/Clock/live.cjs.map +1 -1
  227. package/_cjs/Console/api.cjs +5 -3
  228. package/_cjs/Console/api.cjs.map +1 -1
  229. package/_cjs/Fiber/FiberContext.cjs +8 -10
  230. package/_cjs/Fiber/FiberContext.cjs.map +1 -1
  231. package/_cjs/Fiber/api/await.cjs +1 -1
  232. package/_cjs/Fiber/api/await.cjs.map +1 -1
  233. package/_cjs/Fiber/api/awaitAll.cjs +2 -4
  234. package/_cjs/Fiber/api/awaitAll.cjs.map +1 -1
  235. package/_cjs/Fiber/api/children.cjs +1 -1
  236. package/_cjs/Fiber/api/children.cjs.map +1 -1
  237. package/_cjs/Fiber/api/collectAll.cjs +2 -4
  238. package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
  239. package/_cjs/Fiber/api/evalOn.cjs +1 -1
  240. package/_cjs/Fiber/api/evalOn.cjs.map +1 -1
  241. package/_cjs/Fiber/api/evalOnIO.cjs +2 -4
  242. package/_cjs/Fiber/api/evalOnIO.cjs.map +1 -1
  243. package/_cjs/Fiber/api/fromIO.cjs +2 -4
  244. package/_cjs/Fiber/api/fromIO.cjs.map +1 -1
  245. package/_cjs/Fiber/api/id.cjs +1 -1
  246. package/_cjs/Fiber/api/id.cjs.map +1 -1
  247. package/_cjs/Fiber/api/inheritRefs.cjs +1 -1
  248. package/_cjs/Fiber/api/inheritRefs.cjs.map +1 -1
  249. package/_cjs/Fiber/api/interrupt.cjs +2 -4
  250. package/_cjs/Fiber/api/interrupt.cjs.map +1 -1
  251. package/_cjs/Fiber/api/interruptAll.cjs +4 -5
  252. package/_cjs/Fiber/api/interruptAll.cjs.map +1 -1
  253. package/_cjs/Fiber/api/interruptAs.cjs +1 -1
  254. package/_cjs/Fiber/api/interruptAs.cjs.map +1 -1
  255. package/_cjs/Fiber/api/interruptFork.cjs +1 -1
  256. package/_cjs/Fiber/api/interruptFork.cjs.map +1 -1
  257. package/_cjs/Fiber/api/join.cjs +2 -4
  258. package/_cjs/Fiber/api/join.cjs.map +1 -1
  259. package/_cjs/Fiber/api/joinAll.cjs +2 -4
  260. package/_cjs/Fiber/api/joinAll.cjs.map +1 -1
  261. package/_cjs/Fiber/api/mapFiber.cjs +2 -4
  262. package/_cjs/Fiber/api/mapFiber.cjs.map +1 -1
  263. package/_cjs/Fiber/api/mapIO.cjs +4 -5
  264. package/_cjs/Fiber/api/mapIO.cjs.map +1 -1
  265. package/_cjs/Fiber/api/poll.cjs +1 -1
  266. package/_cjs/Fiber/api/poll.cjs.map +1 -1
  267. package/_cjs/Fiber/api/zipWith.cjs +2 -4
  268. package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
  269. package/_cjs/Fiber/constructors.cjs +10 -11
  270. package/_cjs/Fiber/constructors.cjs.map +1 -1
  271. package/_cjs/FiberRef/api/locallyScoped.cjs +2 -4
  272. package/_cjs/FiberRef/api/locallyScoped.cjs.map +1 -1
  273. package/_cjs/FiberRef/api/locallyScopedWith.cjs +2 -4
  274. package/_cjs/FiberRef/api/locallyScopedWith.cjs.map +1 -1
  275. package/_cjs/FiberRef/api.cjs +13 -14
  276. package/_cjs/FiberRef/api.cjs.map +1 -1
  277. package/_cjs/FiberRef/constructors.cjs +4 -6
  278. package/_cjs/FiberRef/constructors.cjs.map +1 -1
  279. package/_cjs/FiberRef/unsafe.cjs +9 -1
  280. package/_cjs/FiberRef/unsafe.cjs.map +1 -1
  281. package/_cjs/Future/api.cjs +30 -31
  282. package/_cjs/Future/api.cjs.map +1 -1
  283. package/_cjs/Future/constructors.cjs +4 -5
  284. package/_cjs/Future/constructors.cjs.map +1 -1
  285. package/_cjs/Hub/api.cjs +44 -44
  286. package/_cjs/Hub/api.cjs.map +1 -1
  287. package/_cjs/Hub/internal.cjs +16 -24
  288. package/_cjs/Hub/internal.cjs.map +1 -1
  289. package/_cjs/IO/api/acquireRelease.cjs +2 -4
  290. package/_cjs/IO/api/acquireRelease.cjs.map +1 -1
  291. package/_cjs/IO/api/acquireReleaseExit.cjs +1 -1
  292. package/_cjs/IO/api/acquireReleaseExit.cjs.map +1 -1
  293. package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs +1 -1
  294. package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs.map +1 -1
  295. package/_cjs/IO/api/addFinalizer.cjs +1 -1
  296. package/_cjs/IO/api/addFinalizer.cjs.map +1 -1
  297. package/_cjs/IO/api/addFinalizerExit.cjs +5 -11
  298. package/_cjs/IO/api/addFinalizerExit.cjs.map +1 -1
  299. package/_cjs/IO/api/asyncIO.cjs +5 -7
  300. package/_cjs/IO/api/asyncIO.cjs.map +1 -1
  301. package/_cjs/IO/api/bracket.cjs +2 -2
  302. package/_cjs/IO/api/bracket.cjs.map +1 -1
  303. package/_cjs/IO/api/bracketExit.cjs +2 -4
  304. package/_cjs/IO/api/bracketExit.cjs.map +1 -1
  305. package/_cjs/IO/api/concurrency.cjs +7 -7
  306. package/_cjs/IO/api/concurrency.cjs.map +1 -1
  307. package/_cjs/IO/api/concurrentFinalizers.cjs +2 -4
  308. package/_cjs/IO/api/concurrentFinalizers.cjs.map +1 -1
  309. package/_cjs/IO/api/consoleWith.cjs +3 -3
  310. package/_cjs/IO/api/consoleWith.cjs.map +1 -1
  311. package/_cjs/IO/api/core-scope.cjs +4 -4
  312. package/_cjs/IO/api/core-scope.cjs.map +1 -1
  313. package/_cjs/IO/api/ensuringChildren.cjs +2 -4
  314. package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
  315. package/_cjs/IO/api/environment.cjs +6 -8
  316. package/_cjs/IO/api/environment.cjs.map +1 -1
  317. package/_cjs/IO/api/foreachC.cjs +25 -27
  318. package/_cjs/IO/api/foreachC.cjs.map +1 -1
  319. package/_cjs/IO/api/foreachExec.cjs +2 -4
  320. package/_cjs/IO/api/foreachExec.cjs.map +1 -1
  321. package/_cjs/IO/api/forkIn.cjs +1 -1
  322. package/_cjs/IO/api/forkIn.cjs.map +1 -1
  323. package/_cjs/IO/api/forkScoped.cjs +1 -1
  324. package/_cjs/IO/api/forkScoped.cjs.map +1 -1
  325. package/_cjs/IO/api/fulfill.cjs +2 -4
  326. package/_cjs/IO/api/fulfill.cjs.map +1 -1
  327. package/_cjs/IO/api/interrupt.cjs +13 -13
  328. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  329. package/_cjs/IO/api/memoize.cjs +4 -8
  330. package/_cjs/IO/api/memoize.cjs.map +1 -1
  331. package/_cjs/IO/api/onExit.cjs +2 -2
  332. package/_cjs/IO/api/onExit.cjs.map +1 -1
  333. package/_cjs/IO/api/onTermination.cjs +2 -2
  334. package/_cjs/IO/api/onTermination.cjs.map +1 -1
  335. package/_cjs/IO/api/once.cjs +1 -1
  336. package/_cjs/IO/api/once.cjs.map +1 -1
  337. package/_cjs/IO/api/provideLayer.cjs +2 -4
  338. package/_cjs/IO/api/provideLayer.cjs.map +1 -1
  339. package/_cjs/IO/api/provideSomeLayer.cjs +2 -3
  340. package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
  341. package/_cjs/IO/api/race.cjs +4 -6
  342. package/_cjs/IO/api/race.cjs.map +1 -1
  343. package/_cjs/IO/api/raceFirst.cjs +2 -4
  344. package/_cjs/IO/api/raceFirst.cjs.map +1 -1
  345. package/_cjs/IO/api/randomWith.cjs +3 -3
  346. package/_cjs/IO/api/randomWith.cjs.map +1 -1
  347. package/_cjs/IO/api/repeat.cjs +10 -11
  348. package/_cjs/IO/api/repeat.cjs.map +1 -1
  349. package/_cjs/IO/api/retry.cjs +8 -9
  350. package/_cjs/IO/api/retry.cjs.map +1 -1
  351. package/_cjs/IO/api/schedule.cjs +6 -7
  352. package/_cjs/IO/api/schedule.cjs.map +1 -1
  353. package/_cjs/IO/api/scope.cjs +1 -1
  354. package/_cjs/IO/api/scope.cjs.map +1 -1
  355. package/_cjs/IO/api/scopeWith.cjs +2 -4
  356. package/_cjs/IO/api/scopeWith.cjs.map +1 -1
  357. package/_cjs/IO/api/scoped.cjs +4 -5
  358. package/_cjs/IO/api/scoped.cjs.map +1 -1
  359. package/_cjs/IO/api/stateful.cjs +1 -1
  360. package/_cjs/IO/api/stateful.cjs.map +1 -1
  361. package/_cjs/IO/api/timeout.cjs +3 -4
  362. package/_cjs/IO/api/timeout.cjs.map +1 -1
  363. package/_cjs/IO/api/withChildren.cjs +1 -1
  364. package/_cjs/IO/api/withChildren.cjs.map +1 -1
  365. package/_cjs/IO/api/withEarlyRelease.cjs +2 -4
  366. package/_cjs/IO/api/withEarlyRelease.cjs.map +1 -1
  367. package/_cjs/IO/api/withFinalizer.cjs +2 -2
  368. package/_cjs/IO/api/withFinalizer.cjs.map +1 -1
  369. package/_cjs/IO/api/withFinalizerExit.cjs +2 -4
  370. package/_cjs/IO/api/withFinalizerExit.cjs.map +1 -1
  371. package/_cjs/IO/api/withRuntimeConfig.cjs +2 -4
  372. package/_cjs/IO/api/withRuntimeConfig.cjs.map +1 -1
  373. package/_cjs/IO/api/zipC.cjs +5 -6
  374. package/_cjs/IO/api/zipC.cjs.map +1 -1
  375. package/_cjs/IO/api.cjs +112 -112
  376. package/_cjs/IO/api.cjs.map +1 -1
  377. package/_cjs/IO/definition.cjs +5 -8
  378. package/_cjs/IO/definition.cjs.map +1 -1
  379. package/_cjs/IO/runtime.cjs +69 -21
  380. package/_cjs/IO/runtime.cjs.map +1 -1
  381. package/_cjs/IOEnv/live.cjs +3 -1
  382. package/_cjs/IOEnv/live.cjs.map +1 -1
  383. package/_cjs/Layer/MemoMap.cjs +45 -62
  384. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  385. package/_cjs/Layer/api.cjs +84 -83
  386. package/_cjs/Layer/api.cjs.map +1 -1
  387. package/_cjs/Layer/definition.cjs +14 -7
  388. package/_cjs/Layer/definition.cjs.map +1 -1
  389. package/_cjs/Queue/api/dimapIO.cjs +14 -14
  390. package/_cjs/Queue/api/dimapIO.cjs.map +1 -1
  391. package/_cjs/Queue/api/filterInputIO.cjs +6 -6
  392. package/_cjs/Queue/api/filterInputIO.cjs.map +1 -1
  393. package/_cjs/Queue/api/filterOutputIO.cjs +6 -6
  394. package/_cjs/Queue/api/filterOutputIO.cjs.map +1 -1
  395. package/_cjs/Queue/api/operations.cjs +13 -13
  396. package/_cjs/Queue/api/operations.cjs.map +1 -1
  397. package/_cjs/Queue/api/poll.cjs +2 -4
  398. package/_cjs/Queue/api/poll.cjs.map +1 -1
  399. package/_cjs/Queue/api/takeBetween.cjs +10 -12
  400. package/_cjs/Queue/api/takeBetween.cjs.map +1 -1
  401. package/_cjs/Queue/api/zipWithIO.cjs +12 -12
  402. package/_cjs/Queue/api/zipWithIO.cjs.map +1 -1
  403. package/_cjs/Queue/constructors.cjs +8 -10
  404. package/_cjs/Queue/constructors.cjs.map +1 -1
  405. package/_cjs/Queue/internal.cjs +17 -17
  406. package/_cjs/Queue/internal.cjs.map +1 -1
  407. package/_cjs/Queue/strategy.cjs +16 -20
  408. package/_cjs/Queue/strategy.cjs.map +1 -1
  409. package/_cjs/Random/api.cjs +15 -13
  410. package/_cjs/Random/api.cjs.map +1 -1
  411. package/_cjs/Random/live.cjs +4 -4
  412. package/_cjs/Random/live.cjs.map +1 -1
  413. package/_cjs/Ref/Atomic/Atomic.cjs.map +1 -1
  414. package/_cjs/Ref/Atomic/api.cjs +19 -21
  415. package/_cjs/Ref/Atomic/api.cjs.map +1 -1
  416. package/_cjs/Ref/Derived.cjs.map +1 -1
  417. package/_cjs/Ref/DerivedAll.cjs +1 -1
  418. package/_cjs/Ref/DerivedAll.cjs.map +1 -1
  419. package/_cjs/Ref/Synchronized/api.cjs +25 -26
  420. package/_cjs/Ref/Synchronized/api.cjs.map +1 -1
  421. package/_cjs/Ref/Synchronized/constructors.cjs +8 -14
  422. package/_cjs/Ref/Synchronized/constructors.cjs.map +1 -1
  423. package/_cjs/Ref/Synchronized/definition.cjs +1 -1
  424. package/_cjs/Ref/Synchronized/definition.cjs.map +1 -1
  425. package/_cjs/Ref/api/collect.cjs +1 -1
  426. package/_cjs/Ref/api/collect.cjs.map +1 -1
  427. package/_cjs/Ref/api/dimap.cjs +12 -12
  428. package/_cjs/Ref/api/dimap.cjs.map +1 -1
  429. package/_cjs/Ref/api/filter.cjs +2 -2
  430. package/_cjs/Ref/api/filter.cjs.map +1 -1
  431. package/_cjs/Ref/api/get.cjs +1 -1
  432. package/_cjs/Ref/api/get.cjs.map +1 -1
  433. package/_cjs/Ref/api/modify.cjs +29 -30
  434. package/_cjs/Ref/api/modify.cjs.map +1 -1
  435. package/_cjs/Ref/api/set.cjs +1 -1
  436. package/_cjs/Ref/api/set.cjs.map +1 -1
  437. package/_cjs/Ref/constructors.cjs +3 -4
  438. package/_cjs/Ref/constructors.cjs.map +1 -1
  439. package/_cjs/STM/api/core-api.cjs +8 -8
  440. package/_cjs/STM/api/core-api.cjs.map +1 -1
  441. package/_cjs/STM/api/core-constructors.cjs +6 -6
  442. package/_cjs/STM/api/core-constructors.cjs.map +1 -1
  443. package/_cjs/STM/api.cjs +129 -148
  444. package/_cjs/STM/api.cjs.map +1 -1
  445. package/_cjs/STM/definition.cjs.map +1 -1
  446. package/_cjs/STM/driver.cjs +10 -6
  447. package/_cjs/STM/driver.cjs.map +1 -1
  448. package/_cjs/STM/internal/Journal.cjs +20 -22
  449. package/_cjs/STM/internal/Journal.cjs.map +1 -1
  450. package/_cjs/Schedule/Decision.cjs +17 -0
  451. package/_cjs/Schedule/Decision.cjs.map +1 -1
  452. package/_cjs/Schedule/api/driver.cjs +18 -21
  453. package/_cjs/Schedule/api/driver.cjs.map +1 -1
  454. package/_cjs/Schedule/api.cjs +205 -180
  455. package/_cjs/Schedule/api.cjs.map +1 -1
  456. package/_cjs/Scope/Finalizer/definition.cjs +4 -6
  457. package/_cjs/Scope/Finalizer/definition.cjs.map +1 -1
  458. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +3 -5
  459. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
  460. package/_cjs/Scope/ReleaseMap/api.cjs +14 -15
  461. package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
  462. package/_cjs/Scope/ReleaseMap/constructors.cjs +1 -1
  463. package/_cjs/Scope/ReleaseMap/constructors.cjs.map +1 -1
  464. package/_cjs/Scope/ReleaseMap/definition.cjs +2 -4
  465. package/_cjs/Scope/ReleaseMap/definition.cjs.map +1 -1
  466. package/_cjs/Scope/api.cjs +20 -30
  467. package/_cjs/Scope/api.cjs.map +1 -1
  468. package/_cjs/ScopedRef/api.cjs +14 -22
  469. package/_cjs/ScopedRef/api.cjs.map +1 -1
  470. package/_cjs/Sink/api.cjs +92 -88
  471. package/_cjs/Sink/api.cjs.map +1 -1
  472. package/_cjs/State/api.cjs +5 -7
  473. package/_cjs/State/api.cjs.map +1 -1
  474. package/_cjs/Stream/api/zipAllWith.cjs +22 -24
  475. package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
  476. package/_cjs/Stream/api/zipWith.cjs +2 -2
  477. package/_cjs/Stream/api/zipWith.cjs.map +1 -1
  478. package/_cjs/Stream/api/zipWithChunks.cjs +20 -22
  479. package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
  480. package/_cjs/Stream/api.cjs +436 -419
  481. package/_cjs/Stream/api.cjs.map +1 -1
  482. package/_cjs/Stream/internal/Handoff.cjs +12 -12
  483. package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
  484. package/_cjs/Stream/internal/Pull.cjs +1 -1
  485. package/_cjs/Stream/internal/Pull.cjs.map +1 -1
  486. package/_cjs/Stream/internal/Take.cjs +1 -1
  487. package/_cjs/Stream/internal/Take.cjs.map +1 -1
  488. package/_cjs/Supervisor/api.cjs +3 -1
  489. package/_cjs/Supervisor/api.cjs.map +1 -1
  490. package/_cjs/Supervisor/constructors.cjs +14 -8
  491. package/_cjs/Supervisor/constructors.cjs.map +1 -1
  492. package/_cjs/TFuture/api.cjs +10 -10
  493. package/_cjs/TFuture/api.cjs.map +1 -1
  494. package/_cjs/TFuture/constructors.cjs +4 -4
  495. package/_cjs/TFuture/constructors.cjs.map +1 -1
  496. package/_cjs/TFuture/definition.cjs +2 -4
  497. package/_cjs/TFuture/definition.cjs.map +1 -1
  498. package/_cjs/TReentrantLock/api.cjs +41 -42
  499. package/_cjs/TReentrantLock/api.cjs.map +1 -1
  500. package/_cjs/TRef/api.cjs +40 -40
  501. package/_cjs/TRef/api.cjs.map +1 -1
  502. package/_cjs/TRef/constructors.cjs +6 -6
  503. package/_cjs/TRef/constructors.cjs.map +1 -1
  504. package/_cjs/TSemaphore/api.cjs +20 -21
  505. package/_cjs/TSemaphore/api.cjs.map +1 -1
  506. package/_cjs/TSemaphore/constructors.cjs +2 -2
  507. package/_cjs/TSemaphore/constructors.cjs.map +1 -1
  508. package/_cjs/TSemaphore/definition.cjs +2 -4
  509. package/_cjs/TSemaphore/definition.cjs.map +1 -1
  510. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +1 -1
  511. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -1
  512. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +1 -1
  513. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -1
  514. package/_cjs/collection/immutable/Conc/filterIO.cjs +5 -7
  515. package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -1
  516. package/_cjs/collection/immutable/Conc/findIO.cjs +7 -9
  517. package/_cjs/collection/immutable/Conc/findIO.cjs.map +1 -1
  518. package/_cjs/collection/immutable/Conc/mapIO.cjs +3 -5
  519. package/_cjs/collection/immutable/Conc/mapIO.cjs.map +1 -1
  520. package/_cjs/collection/immutable/Conc/takeWhileIO.cjs +7 -9
  521. package/_cjs/collection/immutable/Conc/takeWhileIO.cjs.map +1 -1
  522. package/_cjs/collection/immutable/Conc.cjs +26 -0
  523. package/_cjs/collection/immutable/Conc.cjs.map +1 -1
  524. package/_cjs/data/Exit/foreachIO.cjs +2 -4
  525. package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
  526. package/_cjs/global.cjs +6 -0
  527. package/_cjs/global.cjs.map +1 -0
  528. package/_cjs/index.cjs +6 -0
  529. package/_cjs/index.cjs.map +1 -0
  530. package/_cjs/internal/Scheduler.cjs +64 -14
  531. package/_cjs/internal/Scheduler.cjs.map +1 -1
  532. package/_mjs/Cached/api.mjs +5 -5
  533. package/_mjs/Cached/api.mjs.map +1 -1
  534. package/_mjs/Channel/api/interruptWhen.mjs +1 -1
  535. package/_mjs/Channel/api/interruptWhen.mjs.map +1 -1
  536. package/_mjs/Channel/api/mapOutIOC.mjs +2 -2
  537. package/_mjs/Channel/api/mapOutIOC.mjs.map +1 -1
  538. package/_mjs/Channel/api/mergeAllWith.mjs +11 -11
  539. package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
  540. package/_mjs/Channel/api/mergeWith.mjs +6 -5
  541. package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
  542. package/_mjs/Channel/api/run.mjs +2 -1
  543. package/_mjs/Channel/api/run.mjs.map +1 -1
  544. package/_mjs/Channel/api.mjs +7 -7
  545. package/_mjs/Channel/api.mjs.map +1 -1
  546. package/_mjs/Channel/core-api.mjs.map +1 -1
  547. package/_mjs/Channel/definition.mjs.map +1 -1
  548. package/_mjs/Channel/internal/ChannelExecutor.mjs +6 -6
  549. package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
  550. package/_mjs/Channel/internal/ChannelState.mjs +2 -1
  551. package/_mjs/Channel/internal/ChannelState.mjs.map +1 -1
  552. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +16 -16
  553. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
  554. package/_mjs/Clock/live.mjs.map +1 -1
  555. package/_mjs/Console/api.mjs +4 -3
  556. package/_mjs/Console/api.mjs.map +1 -1
  557. package/_mjs/Fiber/FiberContext.mjs +9 -9
  558. package/_mjs/Fiber/FiberContext.mjs.map +1 -1
  559. package/_mjs/Fiber/api/await.mjs +1 -1
  560. package/_mjs/Fiber/api/await.mjs.map +1 -1
  561. package/_mjs/Fiber/api/awaitAll.mjs +2 -3
  562. package/_mjs/Fiber/api/awaitAll.mjs.map +1 -1
  563. package/_mjs/Fiber/api/children.mjs +1 -1
  564. package/_mjs/Fiber/api/children.mjs.map +1 -1
  565. package/_mjs/Fiber/api/collectAll.mjs +2 -3
  566. package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
  567. package/_mjs/Fiber/api/evalOn.mjs +1 -1
  568. package/_mjs/Fiber/api/evalOn.mjs.map +1 -1
  569. package/_mjs/Fiber/api/evalOnIO.mjs +2 -3
  570. package/_mjs/Fiber/api/evalOnIO.mjs.map +1 -1
  571. package/_mjs/Fiber/api/fromIO.mjs +2 -3
  572. package/_mjs/Fiber/api/fromIO.mjs.map +1 -1
  573. package/_mjs/Fiber/api/id.mjs +1 -1
  574. package/_mjs/Fiber/api/id.mjs.map +1 -1
  575. package/_mjs/Fiber/api/inheritRefs.mjs +1 -1
  576. package/_mjs/Fiber/api/inheritRefs.mjs.map +1 -1
  577. package/_mjs/Fiber/api/interrupt.mjs +2 -3
  578. package/_mjs/Fiber/api/interrupt.mjs.map +1 -1
  579. package/_mjs/Fiber/api/interruptAll.mjs +4 -5
  580. package/_mjs/Fiber/api/interruptAll.mjs.map +1 -1
  581. package/_mjs/Fiber/api/interruptAs.mjs +1 -1
  582. package/_mjs/Fiber/api/interruptAs.mjs.map +1 -1
  583. package/_mjs/Fiber/api/interruptFork.mjs +1 -1
  584. package/_mjs/Fiber/api/interruptFork.mjs.map +1 -1
  585. package/_mjs/Fiber/api/join.mjs +2 -3
  586. package/_mjs/Fiber/api/join.mjs.map +1 -1
  587. package/_mjs/Fiber/api/joinAll.mjs +2 -3
  588. package/_mjs/Fiber/api/joinAll.mjs.map +1 -1
  589. package/_mjs/Fiber/api/mapFiber.mjs +2 -3
  590. package/_mjs/Fiber/api/mapFiber.mjs.map +1 -1
  591. package/_mjs/Fiber/api/mapIO.mjs +4 -5
  592. package/_mjs/Fiber/api/mapIO.mjs.map +1 -1
  593. package/_mjs/Fiber/api/poll.mjs +1 -1
  594. package/_mjs/Fiber/api/poll.mjs.map +1 -1
  595. package/_mjs/Fiber/api/zipWith.mjs +2 -3
  596. package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
  597. package/_mjs/Fiber/constructors.mjs +10 -11
  598. package/_mjs/Fiber/constructors.mjs.map +1 -1
  599. package/_mjs/FiberRef/api/locallyScoped.mjs +2 -3
  600. package/_mjs/FiberRef/api/locallyScoped.mjs.map +1 -1
  601. package/_mjs/FiberRef/api/locallyScopedWith.mjs +2 -3
  602. package/_mjs/FiberRef/api/locallyScopedWith.mjs.map +1 -1
  603. package/_mjs/FiberRef/api.mjs +13 -14
  604. package/_mjs/FiberRef/api.mjs.map +1 -1
  605. package/_mjs/FiberRef/constructors.mjs +4 -5
  606. package/_mjs/FiberRef/constructors.mjs.map +1 -1
  607. package/_mjs/FiberRef/unsafe.mjs +6 -0
  608. package/_mjs/FiberRef/unsafe.mjs.map +1 -1
  609. package/_mjs/Future/api.mjs +30 -31
  610. package/_mjs/Future/api.mjs.map +1 -1
  611. package/_mjs/Future/constructors.mjs +4 -5
  612. package/_mjs/Future/constructors.mjs.map +1 -1
  613. package/_mjs/Hub/api.mjs +44 -44
  614. package/_mjs/Hub/api.mjs.map +1 -1
  615. package/_mjs/Hub/internal.mjs +16 -24
  616. package/_mjs/Hub/internal.mjs.map +1 -1
  617. package/_mjs/IO/api/acquireRelease.mjs +2 -3
  618. package/_mjs/IO/api/acquireRelease.mjs.map +1 -1
  619. package/_mjs/IO/api/acquireReleaseExit.mjs +1 -1
  620. package/_mjs/IO/api/acquireReleaseExit.mjs.map +1 -1
  621. package/_mjs/IO/api/acquireReleaseInterruptibleExit.mjs +1 -1
  622. package/_mjs/IO/api/acquireReleaseInterruptibleExit.mjs.map +1 -1
  623. package/_mjs/IO/api/addFinalizer.mjs +1 -1
  624. package/_mjs/IO/api/addFinalizer.mjs.map +1 -1
  625. package/_mjs/IO/api/addFinalizerExit.mjs +5 -10
  626. package/_mjs/IO/api/addFinalizerExit.mjs.map +1 -1
  627. package/_mjs/IO/api/asyncIO.mjs +5 -6
  628. package/_mjs/IO/api/asyncIO.mjs.map +1 -1
  629. package/_mjs/IO/api/bracket.mjs +2 -2
  630. package/_mjs/IO/api/bracket.mjs.map +1 -1
  631. package/_mjs/IO/api/bracketExit.mjs +2 -3
  632. package/_mjs/IO/api/bracketExit.mjs.map +1 -1
  633. package/_mjs/IO/api/concurrency.mjs +7 -7
  634. package/_mjs/IO/api/concurrency.mjs.map +1 -1
  635. package/_mjs/IO/api/concurrentFinalizers.mjs +2 -3
  636. package/_mjs/IO/api/concurrentFinalizers.mjs.map +1 -1
  637. package/_mjs/IO/api/consoleWith.mjs +3 -3
  638. package/_mjs/IO/api/consoleWith.mjs.map +1 -1
  639. package/_mjs/IO/api/core-scope.mjs +4 -4
  640. package/_mjs/IO/api/core-scope.mjs.map +1 -1
  641. package/_mjs/IO/api/ensuringChildren.mjs +2 -3
  642. package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
  643. package/_mjs/IO/api/environment.mjs +6 -8
  644. package/_mjs/IO/api/environment.mjs.map +1 -1
  645. package/_mjs/IO/api/foreachC.mjs +25 -26
  646. package/_mjs/IO/api/foreachC.mjs.map +1 -1
  647. package/_mjs/IO/api/foreachExec.mjs +2 -3
  648. package/_mjs/IO/api/foreachExec.mjs.map +1 -1
  649. package/_mjs/IO/api/forkIn.mjs +1 -1
  650. package/_mjs/IO/api/forkIn.mjs.map +1 -1
  651. package/_mjs/IO/api/forkScoped.mjs +1 -1
  652. package/_mjs/IO/api/forkScoped.mjs.map +1 -1
  653. package/_mjs/IO/api/fulfill.mjs +2 -3
  654. package/_mjs/IO/api/fulfill.mjs.map +1 -1
  655. package/_mjs/IO/api/interrupt.mjs +13 -13
  656. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  657. package/_mjs/IO/api/memoize.mjs +4 -8
  658. package/_mjs/IO/api/memoize.mjs.map +1 -1
  659. package/_mjs/IO/api/onExit.mjs +2 -2
  660. package/_mjs/IO/api/onExit.mjs.map +1 -1
  661. package/_mjs/IO/api/onTermination.mjs +2 -2
  662. package/_mjs/IO/api/onTermination.mjs.map +1 -1
  663. package/_mjs/IO/api/once.mjs +1 -1
  664. package/_mjs/IO/api/once.mjs.map +1 -1
  665. package/_mjs/IO/api/provideLayer.mjs +2 -3
  666. package/_mjs/IO/api/provideLayer.mjs.map +1 -1
  667. package/_mjs/IO/api/provideSomeLayer.mjs +2 -3
  668. package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
  669. package/_mjs/IO/api/race.mjs +4 -5
  670. package/_mjs/IO/api/race.mjs.map +1 -1
  671. package/_mjs/IO/api/raceFirst.mjs +2 -3
  672. package/_mjs/IO/api/raceFirst.mjs.map +1 -1
  673. package/_mjs/IO/api/randomWith.mjs +3 -3
  674. package/_mjs/IO/api/randomWith.mjs.map +1 -1
  675. package/_mjs/IO/api/repeat.mjs +10 -11
  676. package/_mjs/IO/api/repeat.mjs.map +1 -1
  677. package/_mjs/IO/api/retry.mjs +8 -9
  678. package/_mjs/IO/api/retry.mjs.map +1 -1
  679. package/_mjs/IO/api/schedule.mjs +6 -7
  680. package/_mjs/IO/api/schedule.mjs.map +1 -1
  681. package/_mjs/IO/api/scope.mjs +1 -1
  682. package/_mjs/IO/api/scope.mjs.map +1 -1
  683. package/_mjs/IO/api/scopeWith.mjs +2 -3
  684. package/_mjs/IO/api/scopeWith.mjs.map +1 -1
  685. package/_mjs/IO/api/scoped.mjs +4 -5
  686. package/_mjs/IO/api/scoped.mjs.map +1 -1
  687. package/_mjs/IO/api/stateful.mjs +1 -1
  688. package/_mjs/IO/api/stateful.mjs.map +1 -1
  689. package/_mjs/IO/api/timeout.mjs +3 -4
  690. package/_mjs/IO/api/timeout.mjs.map +1 -1
  691. package/_mjs/IO/api/withChildren.mjs +1 -1
  692. package/_mjs/IO/api/withChildren.mjs.map +1 -1
  693. package/_mjs/IO/api/withEarlyRelease.mjs +2 -3
  694. package/_mjs/IO/api/withEarlyRelease.mjs.map +1 -1
  695. package/_mjs/IO/api/withFinalizer.mjs +2 -2
  696. package/_mjs/IO/api/withFinalizer.mjs.map +1 -1
  697. package/_mjs/IO/api/withFinalizerExit.mjs +2 -3
  698. package/_mjs/IO/api/withFinalizerExit.mjs.map +1 -1
  699. package/_mjs/IO/api/withRuntimeConfig.mjs +2 -3
  700. package/_mjs/IO/api/withRuntimeConfig.mjs.map +1 -1
  701. package/_mjs/IO/api/zipC.mjs +5 -6
  702. package/_mjs/IO/api/zipC.mjs.map +1 -1
  703. package/_mjs/IO/api.mjs +112 -112
  704. package/_mjs/IO/api.mjs.map +1 -1
  705. package/_mjs/IO/definition.mjs +3 -5
  706. package/_mjs/IO/definition.mjs.map +1 -1
  707. package/_mjs/IO/runtime.mjs +61 -18
  708. package/_mjs/IO/runtime.mjs.map +1 -1
  709. package/_mjs/IOEnv/live.mjs +2 -1
  710. package/_mjs/IOEnv/live.mjs.map +1 -1
  711. package/_mjs/Layer/MemoMap.mjs +43 -60
  712. package/_mjs/Layer/MemoMap.mjs.map +1 -1
  713. package/_mjs/Layer/api.mjs +84 -84
  714. package/_mjs/Layer/api.mjs.map +1 -1
  715. package/_mjs/Layer/definition.mjs +14 -7
  716. package/_mjs/Layer/definition.mjs.map +1 -1
  717. package/_mjs/Queue/api/dimapIO.mjs +14 -14
  718. package/_mjs/Queue/api/dimapIO.mjs.map +1 -1
  719. package/_mjs/Queue/api/filterInputIO.mjs +6 -6
  720. package/_mjs/Queue/api/filterInputIO.mjs.map +1 -1
  721. package/_mjs/Queue/api/filterOutputIO.mjs +6 -6
  722. package/_mjs/Queue/api/filterOutputIO.mjs.map +1 -1
  723. package/_mjs/Queue/api/operations.mjs +13 -13
  724. package/_mjs/Queue/api/operations.mjs.map +1 -1
  725. package/_mjs/Queue/api/poll.mjs +2 -3
  726. package/_mjs/Queue/api/poll.mjs.map +1 -1
  727. package/_mjs/Queue/api/takeBetween.mjs +10 -11
  728. package/_mjs/Queue/api/takeBetween.mjs.map +1 -1
  729. package/_mjs/Queue/api/zipWithIO.mjs +12 -12
  730. package/_mjs/Queue/api/zipWithIO.mjs.map +1 -1
  731. package/_mjs/Queue/constructors.mjs +8 -9
  732. package/_mjs/Queue/constructors.mjs.map +1 -1
  733. package/_mjs/Queue/internal.mjs +17 -17
  734. package/_mjs/Queue/internal.mjs.map +1 -1
  735. package/_mjs/Queue/strategy.mjs +16 -20
  736. package/_mjs/Queue/strategy.mjs.map +1 -1
  737. package/_mjs/Random/api.mjs +14 -13
  738. package/_mjs/Random/api.mjs.map +1 -1
  739. package/_mjs/Random/live.mjs +4 -4
  740. package/_mjs/Random/live.mjs.map +1 -1
  741. package/_mjs/Ref/Atomic/Atomic.mjs.map +1 -1
  742. package/_mjs/Ref/Atomic/api.mjs +19 -20
  743. package/_mjs/Ref/Atomic/api.mjs.map +1 -1
  744. package/_mjs/Ref/Derived.mjs.map +1 -1
  745. package/_mjs/Ref/DerivedAll.mjs +1 -1
  746. package/_mjs/Ref/DerivedAll.mjs.map +1 -1
  747. package/_mjs/Ref/Synchronized/api.mjs +25 -26
  748. package/_mjs/Ref/Synchronized/api.mjs.map +1 -1
  749. package/_mjs/Ref/Synchronized/constructors.mjs +8 -13
  750. package/_mjs/Ref/Synchronized/constructors.mjs.map +1 -1
  751. package/_mjs/Ref/Synchronized/definition.mjs +1 -1
  752. package/_mjs/Ref/Synchronized/definition.mjs.map +1 -1
  753. package/_mjs/Ref/api/collect.mjs +1 -1
  754. package/_mjs/Ref/api/collect.mjs.map +1 -1
  755. package/_mjs/Ref/api/dimap.mjs +12 -12
  756. package/_mjs/Ref/api/dimap.mjs.map +1 -1
  757. package/_mjs/Ref/api/filter.mjs +2 -2
  758. package/_mjs/Ref/api/filter.mjs.map +1 -1
  759. package/_mjs/Ref/api/get.mjs +1 -1
  760. package/_mjs/Ref/api/get.mjs.map +1 -1
  761. package/_mjs/Ref/api/modify.mjs +29 -30
  762. package/_mjs/Ref/api/modify.mjs.map +1 -1
  763. package/_mjs/Ref/api/set.mjs +1 -1
  764. package/_mjs/Ref/api/set.mjs.map +1 -1
  765. package/_mjs/Ref/constructors.mjs +3 -4
  766. package/_mjs/Ref/constructors.mjs.map +1 -1
  767. package/_mjs/STM/api/core-api.mjs +8 -8
  768. package/_mjs/STM/api/core-api.mjs.map +1 -1
  769. package/_mjs/STM/api/core-constructors.mjs +6 -6
  770. package/_mjs/STM/api/core-constructors.mjs.map +1 -1
  771. package/_mjs/STM/api.mjs +122 -142
  772. package/_mjs/STM/api.mjs.map +1 -1
  773. package/_mjs/STM/definition.mjs.map +1 -1
  774. package/_mjs/STM/driver.mjs +9 -6
  775. package/_mjs/STM/driver.mjs.map +1 -1
  776. package/_mjs/STM/internal/Journal.mjs +20 -21
  777. package/_mjs/STM/internal/Journal.mjs.map +1 -1
  778. package/_mjs/Schedule/Decision.mjs +9 -0
  779. package/_mjs/Schedule/Decision.mjs.map +1 -1
  780. package/_mjs/Schedule/api/driver.mjs +17 -20
  781. package/_mjs/Schedule/api/driver.mjs.map +1 -1
  782. package/_mjs/Schedule/api.mjs +198 -177
  783. package/_mjs/Schedule/api.mjs.map +1 -1
  784. package/_mjs/Scope/Finalizer/definition.mjs +4 -5
  785. package/_mjs/Scope/Finalizer/definition.mjs.map +1 -1
  786. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +3 -4
  787. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
  788. package/_mjs/Scope/ReleaseMap/api.mjs +14 -15
  789. package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
  790. package/_mjs/Scope/ReleaseMap/constructors.mjs +1 -1
  791. package/_mjs/Scope/ReleaseMap/constructors.mjs.map +1 -1
  792. package/_mjs/Scope/ReleaseMap/definition.mjs +2 -3
  793. package/_mjs/Scope/ReleaseMap/definition.mjs.map +1 -1
  794. package/_mjs/Scope/api.mjs +20 -30
  795. package/_mjs/Scope/api.mjs.map +1 -1
  796. package/_mjs/ScopedRef/api.mjs +14 -22
  797. package/_mjs/ScopedRef/api.mjs.map +1 -1
  798. package/_mjs/Sink/api.mjs +92 -88
  799. package/_mjs/Sink/api.mjs.map +1 -1
  800. package/_mjs/State/api.mjs +5 -6
  801. package/_mjs/State/api.mjs.map +1 -1
  802. package/_mjs/Stream/api/zipAllWith.mjs +22 -23
  803. package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
  804. package/_mjs/Stream/api/zipWith.mjs +2 -2
  805. package/_mjs/Stream/api/zipWith.mjs.map +1 -1
  806. package/_mjs/Stream/api/zipWithChunks.mjs +20 -21
  807. package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
  808. package/_mjs/Stream/api.mjs +430 -417
  809. package/_mjs/Stream/api.mjs.map +1 -1
  810. package/_mjs/Stream/internal/Handoff.mjs +12 -12
  811. package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
  812. package/_mjs/Stream/internal/Pull.mjs +1 -1
  813. package/_mjs/Stream/internal/Pull.mjs.map +1 -1
  814. package/_mjs/Stream/internal/Take.mjs +1 -1
  815. package/_mjs/Stream/internal/Take.mjs.map +1 -1
  816. package/_mjs/Supervisor/api.mjs +2 -1
  817. package/_mjs/Supervisor/api.mjs.map +1 -1
  818. package/_mjs/Supervisor/constructors.mjs +9 -6
  819. package/_mjs/Supervisor/constructors.mjs.map +1 -1
  820. package/_mjs/TFuture/api.mjs +10 -10
  821. package/_mjs/TFuture/api.mjs.map +1 -1
  822. package/_mjs/TFuture/constructors.mjs +4 -4
  823. package/_mjs/TFuture/constructors.mjs.map +1 -1
  824. package/_mjs/TFuture/definition.mjs +2 -3
  825. package/_mjs/TFuture/definition.mjs.map +1 -1
  826. package/_mjs/TReentrantLock/api.mjs +41 -42
  827. package/_mjs/TReentrantLock/api.mjs.map +1 -1
  828. package/_mjs/TRef/api.mjs +40 -40
  829. package/_mjs/TRef/api.mjs.map +1 -1
  830. package/_mjs/TRef/constructors.mjs +6 -6
  831. package/_mjs/TRef/constructors.mjs.map +1 -1
  832. package/_mjs/TSemaphore/api.mjs +17 -18
  833. package/_mjs/TSemaphore/api.mjs.map +1 -1
  834. package/_mjs/TSemaphore/constructors.mjs +2 -2
  835. package/_mjs/TSemaphore/constructors.mjs.map +1 -1
  836. package/_mjs/TSemaphore/definition.mjs +2 -3
  837. package/_mjs/TSemaphore/definition.mjs.map +1 -1
  838. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +1 -1
  839. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -1
  840. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +1 -1
  841. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -1
  842. package/_mjs/collection/immutable/Conc/filterIO.mjs +5 -6
  843. package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -1
  844. package/_mjs/collection/immutable/Conc/findIO.mjs +7 -8
  845. package/_mjs/collection/immutable/Conc/findIO.mjs.map +1 -1
  846. package/_mjs/collection/immutable/Conc/mapIO.mjs +3 -4
  847. package/_mjs/collection/immutable/Conc/mapIO.mjs.map +1 -1
  848. package/_mjs/collection/immutable/Conc/takeWhileIO.mjs +7 -8
  849. package/_mjs/collection/immutable/Conc/takeWhileIO.mjs.map +1 -1
  850. package/_mjs/collection/immutable/Conc.mjs +2 -0
  851. package/_mjs/collection/immutable/Conc.mjs.map +1 -1
  852. package/_mjs/data/Exit/foreachIO.mjs +2 -3
  853. package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
  854. package/_mjs/global.mjs +2 -0
  855. package/_mjs/global.mjs.map +1 -0
  856. package/_mjs/index.mjs +2 -0
  857. package/_mjs/index.mjs.map +1 -0
  858. package/_mjs/internal/Scheduler.mjs +62 -15
  859. package/_mjs/internal/Scheduler.mjs.map +1 -1
  860. package/_src/Cached/api.ts +4 -3
  861. package/_src/Channel/api/interruptWhen.ts +1 -1
  862. package/_src/Channel/api/mapOutIOC.ts +2 -2
  863. package/_src/Channel/api/mergeAll.ts +1 -1
  864. package/_src/Channel/api/mergeAllUnboundedWith.ts +1 -1
  865. package/_src/Channel/api/mergeAllWith.ts +3 -3
  866. package/_src/Channel/api/mergeMap.ts +1 -1
  867. package/_src/Channel/api/mergeWith.ts +9 -9
  868. package/_src/Channel/api/runScoped.ts +1 -1
  869. package/_src/Channel/api/toPull.ts +1 -1
  870. package/_src/Channel/api/zipC.ts +3 -3
  871. package/_src/Channel/api.ts +73 -73
  872. package/_src/Channel/core-api.ts +11 -13
  873. package/_src/Channel/definition.ts +19 -19
  874. package/_src/Channel/internal/MergeDecision.ts +1 -1
  875. package/_src/Clock/live.ts +1 -1
  876. package/_src/Console/api.ts +1 -1
  877. package/_src/Fiber/FiberContext.ts +10 -8
  878. package/_src/Fiber/api/await.ts +1 -1
  879. package/_src/Fiber/api/awaitAll.ts +1 -1
  880. package/_src/Fiber/api/children.ts +1 -1
  881. package/_src/Fiber/api/collectAll.ts +4 -1
  882. package/_src/Fiber/api/evalOn.ts +6 -1
  883. package/_src/Fiber/api/evalOnIO.ts +2 -1
  884. package/_src/Fiber/api/fromIO.ts +1 -1
  885. package/_src/Fiber/api/id.ts +1 -1
  886. package/_src/Fiber/api/inheritRefs.ts +1 -1
  887. package/_src/Fiber/api/interrupt.ts +1 -1
  888. package/_src/Fiber/api/interruptAll.ts +2 -2
  889. package/_src/Fiber/api/interruptAs.ts +1 -1
  890. package/_src/Fiber/api/join.ts +1 -1
  891. package/_src/Fiber/api/joinAll.ts +1 -1
  892. package/_src/Fiber/api/mapFiber.ts +5 -1
  893. package/_src/Fiber/api/mapIO.ts +6 -2
  894. package/_src/Fiber/api/poll.ts +1 -1
  895. package/_src/Fiber/api/zipWith.ts +1 -0
  896. package/_src/Fiber/constructors.ts +5 -5
  897. package/_src/Fiber/definition.ts +1 -1
  898. package/_src/FiberRef/api/locallyScoped.ts +1 -1
  899. package/_src/FiberRef/api/locallyScopedWith.ts +5 -1
  900. package/_src/FiberRef/api.ts +7 -7
  901. package/_src/FiberRef/constructors.ts +4 -2
  902. package/_src/FiberRef/unsafe.ts +7 -0
  903. package/_src/Future/api.ts +24 -16
  904. package/_src/Future/constructors.ts +2 -2
  905. package/_src/Hub/api.ts +50 -23
  906. package/_src/Hub/definition.ts +6 -6
  907. package/_src/Hub/internal.ts +15 -15
  908. package/_src/IO/api/acquireRelease.ts +2 -1
  909. package/_src/IO/api/acquireReleaseExit.ts +1 -1
  910. package/_src/IO/api/acquireReleaseInterruptible.ts +1 -1
  911. package/_src/IO/api/acquireReleaseInterruptibleExit.ts +1 -1
  912. package/_src/IO/api/addFinalizer.ts +1 -4
  913. package/_src/IO/api/addFinalizerExit.ts +6 -5
  914. package/_src/IO/api/asyncIO.ts +4 -1
  915. package/_src/IO/api/bracket.ts +2 -1
  916. package/_src/IO/api/bracketExit.ts +2 -1
  917. package/_src/IO/api/concurrency.ts +6 -3
  918. package/_src/IO/api/concurrentFinalizers.ts +1 -1
  919. package/_src/IO/api/consoleWith.ts +1 -1
  920. package/_src/IO/api/core-scope.ts +1 -1
  921. package/_src/IO/api/ensuringChildren.ts +3 -2
  922. package/_src/IO/api/environment.ts +9 -11
  923. package/_src/IO/api/foreachC.ts +33 -6
  924. package/_src/IO/api/foreachExec.ts +1 -0
  925. package/_src/IO/api/forkScoped.ts +1 -1
  926. package/_src/IO/api/fulfill.ts +1 -1
  927. package/_src/IO/api/interrupt.ts +13 -5
  928. package/_src/IO/api/memoize.ts +3 -3
  929. package/_src/IO/api/onExit.ts +2 -1
  930. package/_src/IO/api/onTermination.ts +2 -2
  931. package/_src/IO/api/provideLayer.ts +1 -0
  932. package/_src/IO/api/provideSomeLayer.ts +1 -3
  933. package/_src/IO/api/race.ts +6 -2
  934. package/_src/IO/api/raceFirst.ts +6 -2
  935. package/_src/IO/api/randomWith.ts +1 -1
  936. package/_src/IO/api/repeat.ts +7 -7
  937. package/_src/IO/api/retry.ts +7 -7
  938. package/_src/IO/api/schedule.ts +4 -3
  939. package/_src/IO/api/scope.ts +1 -1
  940. package/_src/IO/api/scopeWith.ts +1 -1
  941. package/_src/IO/api/scoped.ts +2 -2
  942. package/_src/IO/api/sequenceT.ts +1 -1
  943. package/_src/IO/api/stateful.ts +1 -1
  944. package/_src/IO/api/timeout.ts +5 -1
  945. package/_src/IO/api/withChildren.ts +1 -1
  946. package/_src/IO/api/withEarlyRelease.ts +4 -1
  947. package/_src/IO/api/withFinalizer.ts +2 -1
  948. package/_src/IO/api/withFinalizerExit.ts +2 -1
  949. package/_src/IO/api/withRuntimeConfig.ts +5 -1
  950. package/_src/IO/api/zipC.ts +7 -2
  951. package/_src/IO/api.ts +125 -75
  952. package/_src/IO/definition.ts +32 -27
  953. package/_src/IO/runtime.ts +66 -12
  954. package/_src/IOEnv/definition.ts +1 -1
  955. package/_src/Layer/MemoMap.ts +41 -34
  956. package/_src/Layer/api.ts +82 -49
  957. package/_src/Layer/definition.ts +11 -8
  958. package/_src/Queue/api/dimapIO.ts +21 -11
  959. package/_src/Queue/api/filterInputIO.ts +6 -4
  960. package/_src/Queue/api/filterOutputIO.ts +8 -6
  961. package/_src/Queue/api/operations.ts +28 -10
  962. package/_src/Queue/api/poll.ts +4 -1
  963. package/_src/Queue/api/takeBetween.ts +6 -1
  964. package/_src/Queue/api/zipWithIO.ts +13 -10
  965. package/_src/Queue/constructors.ts +4 -4
  966. package/_src/Queue/definition.ts +10 -10
  967. package/_src/Queue/internal.ts +7 -7
  968. package/_src/Queue/strategy.ts +18 -10
  969. package/_src/Random/api.ts +5 -5
  970. package/_src/Random/definition.ts +5 -5
  971. package/_src/Random/live.ts +4 -4
  972. package/_src/Ref/Atomic/Atomic.ts +3 -3
  973. package/_src/Ref/Atomic/api.ts +10 -10
  974. package/_src/Ref/Derived.ts +3 -3
  975. package/_src/Ref/DerivedAll.ts +3 -3
  976. package/_src/Ref/Synchronized/api.ts +33 -18
  977. package/_src/Ref/Synchronized/constructors.ts +5 -5
  978. package/_src/Ref/Synchronized/definition.ts +2 -2
  979. package/_src/Ref/api/collect.ts +1 -0
  980. package/_src/Ref/api/dimap.ts +7 -0
  981. package/_src/Ref/api/filter.ts +2 -0
  982. package/_src/Ref/api/get.ts +5 -2
  983. package/_src/Ref/api/modify.ts +21 -9
  984. package/_src/Ref/api/set.ts +5 -1
  985. package/_src/Ref/constructors.ts +2 -2
  986. package/_src/Ref/definition.ts +14 -14
  987. package/_src/STM/api/core-api.ts +20 -7
  988. package/_src/STM/api/core-constructors.ts +7 -7
  989. package/_src/STM/api.ts +150 -116
  990. package/_src/STM/definition.ts +6 -6
  991. package/_src/STM/driver.ts +3 -3
  992. package/_src/STM/internal/Journal.ts +25 -16
  993. package/_src/Schedule/Decision.ts +10 -3
  994. package/_src/Schedule/Driver.ts +2 -2
  995. package/_src/Schedule/api/driver.ts +6 -6
  996. package/_src/Schedule/api.ts +182 -82
  997. package/_src/Schedule/definition.ts +1 -1
  998. package/_src/Scope/Finalizer/definition.ts +2 -2
  999. package/_src/Scope/ReleaseMap/api/releaseAll.ts +6 -1
  1000. package/_src/Scope/ReleaseMap/api.ts +15 -5
  1001. package/_src/Scope/ReleaseMap/definition.ts +1 -1
  1002. package/_src/Scope/api.ts +23 -15
  1003. package/_src/ScopedRef/api.ts +12 -17
  1004. package/_src/ScopedRef/definition.ts +1 -1
  1005. package/_src/Sink/api.ts +111 -85
  1006. package/_src/State/api.ts +1 -1
  1007. package/_src/Stream/api/zipAllWith.ts +5 -2
  1008. package/_src/Stream/api/zipWith.ts +2 -1
  1009. package/_src/Stream/api/zipWithChunks.ts +5 -2
  1010. package/_src/Stream/api.ts +484 -216
  1011. package/_src/Stream/definition.ts +3 -3
  1012. package/_src/Stream/internal/Take.ts +1 -1
  1013. package/_src/Supervisor/constructors.ts +7 -3
  1014. package/_src/TFuture/api.ts +5 -5
  1015. package/_src/TFuture/constructors.ts +2 -2
  1016. package/_src/TFuture/definition.ts +1 -1
  1017. package/_src/TReentrantLock/api.ts +18 -18
  1018. package/_src/TRef/api.ts +36 -14
  1019. package/_src/TRef/constructors.ts +4 -4
  1020. package/_src/TSemaphore/api.ts +7 -7
  1021. package/_src/TSemaphore/constructors.ts +1 -1
  1022. package/_src/TSemaphore/definition.ts +1 -1
  1023. package/_src/collection/immutable/Conc/filterIO.ts +5 -1
  1024. package/_src/collection/immutable/Conc/findIO.ts +6 -1
  1025. package/_src/collection/immutable/Conc/mapIO.ts +1 -1
  1026. package/_src/collection/immutable/Conc/takeWhileIO.ts +5 -1
  1027. package/_src/collection/immutable/Conc.ts +2 -0
  1028. package/_src/data/Exit/foreachIO.ts +1 -0
  1029. package/_src/global.ts +149 -0
  1030. package/_src/index.ts +42 -0
  1031. package/_src/internal/Scheduler.ts +59 -15
  1032. package/collection/immutable/Conc/filterIO.d.ts +1 -1
  1033. package/collection/immutable/Conc/findIO.d.ts +2 -2
  1034. package/collection/immutable/Conc/mapIO.d.ts +1 -1
  1035. package/collection/immutable/Conc/takeWhileIO.d.ts +1 -1
  1036. package/collection/immutable/Conc.d.ts +2 -0
  1037. package/data/Exit/foreachIO.d.ts +2 -2
  1038. package/global.d.ts +149 -0
  1039. package/index.d.ts +40 -0
  1040. package/internal/Scheduler.d.ts +18 -1
  1041. package/package.json +3 -3
@@ -21,7 +21,7 @@ import { Take } from "./internal/Take.js";
21
21
  *
22
22
  * @tsplus getter fncts.io.Stream absolve
23
23
  */
24
- export function absolve<R, E, E2, A>(self: Stream<R, E, Either<E2, A>>): Stream<R, E | E2, A> {
24
+ export function absolve<R, E, E2, A>(self: Stream<R, E, Either<E2, A>>, __tsplusTrace?: string): Stream<R, E | E2, A> {
25
25
  return self.mapIO((either) => IO.fromEither(either));
26
26
  }
27
27
 
@@ -42,7 +42,8 @@ export function absolve<R, E, E2, A>(self: Stream<R, E, Either<E2, A>>): Stream<
42
42
  export function aggregateAsync_<R, E, A extends A1, R1, E1, A1, B>(
43
43
  stream: Stream<R, E, A>,
44
44
  sink: Sink<R1, E1, A1, A1, B>,
45
- ): Stream<R & R1, E | E1, B> {
45
+ __tsplusTrace?: string,
46
+ ): Stream<R | R1, E | E1, B> {
46
47
  return stream.aggregateAsyncWithin(sink, Schedule.forever);
47
48
  }
48
49
 
@@ -55,7 +56,8 @@ export function aggregateAsyncWithin_<R, E, A extends A1, R1, E1, A1, B, R2, C>(
55
56
  stream: Stream<R, E, A>,
56
57
  sink: Sink<R1, E1, A1, A1, B>,
57
58
  schedule: Schedule<R2, Maybe<B>, C>,
58
- ): Stream<R & R1 & R2, E | E1, B> {
59
+ __tsplusTrace?: string,
60
+ ): Stream<R | R1 | R2, E | E1, B> {
59
61
  return stream.aggregateAsyncWithinEither(sink, schedule).filterMap((cb) => cb.match(() => Nothing(), Maybe.just));
60
62
  }
61
63
 
@@ -77,7 +79,8 @@ export function aggregateAsyncWithinEither_<R, E, A extends A1, R1, E1, A1, B, R
77
79
  stream: Stream<R, E, A>,
78
80
  sink: Sink<R1, E1, A1, A1, B>,
79
81
  schedule: Schedule<R2, Maybe<B>, C>,
80
- ): Stream<R & R1 & R2, E | E1, Either<C, B>> {
82
+ __tsplusTrace?: string,
83
+ ): Stream<R | R1 | R2, E | E1, Either<C, B>> {
81
84
  type LocalHandoffSignal = HandoffSignal<E | E1, A1>;
82
85
 
83
86
  const deps = IO.sequenceT(
@@ -89,13 +92,13 @@ export function aggregateAsyncWithinEither_<R, E, A extends A1, R1, E1, A1, B, R
89
92
  );
90
93
 
91
94
  return Stream.fromIO(deps).flatMap(([handoff, sinkEndReason, sinkLeftovers, scheduleDriver, consumed]) => {
92
- const handoffProducer: Channel<unknown, E | E1, Conc<A1>, unknown, never, never, any> = Channel.readWithCause(
95
+ const handoffProducer: Channel<never, E | E1, Conc<A1>, unknown, never, never, any> = Channel.readWithCause(
93
96
  (_in: Conc<A1>) => Channel.fromIO(handoff.offer(HandoffSignal.Emit(_in))).apSecond(handoffProducer),
94
97
  (cause: Cause<E | E1>) => Channel.fromIO(handoff.offer(HandoffSignal.Halt(cause))),
95
98
  (_: any) => Channel.fromIO(handoff.offer(HandoffSignal.End(new UpstreamEnd()))),
96
99
  );
97
100
 
98
- const handoffConsumer: Channel<unknown, unknown, unknown, unknown, E | E1, Conc<A1>, void> = Channel.unwrap(
101
+ const handoffConsumer: Channel<never, unknown, unknown, unknown, E | E1, Conc<A1>, void> = Channel.unwrap(
99
102
  sinkLeftovers.getAndSet(Conc.empty<A>()).flatMap((leftovers) => {
100
103
  if (leftovers.isNonEmpty) {
101
104
  return consumed.set(true) > IO.succeedNow(Channel.writeNow(leftovers) > handoffConsumer);
@@ -123,18 +126,18 @@ export function aggregateAsyncWithinEither_<R, E, A extends A1, R1, E1, A1, B, R
123
126
  }),
124
127
  );
125
128
 
126
- function timeout(lastB: Maybe<B>): IO<R2, Nothing, C> {
129
+ function timeout(lastB: Maybe<B>, __tsplusTrace?: string): IO<R2, Nothing, C> {
127
130
  return scheduleDriver.next(lastB);
128
131
  }
129
132
 
130
133
  const scheduledAggregator = (
131
134
  sinkFiber: Fiber.Runtime<E | E1, readonly [Conc<Conc<A1>>, B]>,
132
135
  scheduleFiber: Fiber.Runtime<Nothing, C>,
133
- ): Channel<R1 & R2, unknown, unknown, unknown, E | E1, Conc<Either<C, B>>, any> => {
136
+ ): Channel<R1 | R2, unknown, unknown, unknown, E | E1, Conc<Either<C, B>>, any> => {
134
137
  const forkSink =
135
138
  consumed.set(false) > handoffConsumer.pipeToOrFail(sink.channel).doneCollect.runScoped.forkScoped;
136
139
 
137
- function handleSide(leftovers: Conc<Conc<A1>>, b: B, c: Maybe<C>) {
140
+ function handleSide(leftovers: Conc<Conc<A1>>, b: B, c: Maybe<C>, __tsplusTrace?: string) {
138
141
  return Channel.unwrap(
139
142
  sinkLeftovers.set(leftovers.flatten) >
140
143
  sinkEndReason.get.map((reason) =>
@@ -207,7 +210,8 @@ export function aggregateAsyncWithinEither_<R, E, A extends A1, R1, E1, A1, B, R
207
210
  export function apFirst_<R, R1, E, E1, A, A1>(
208
211
  stream: Stream<R, E, A>,
209
212
  that: Stream<R1, E1, A1>,
210
- ): Stream<R & R1, E | E1, A> {
213
+ __tsplusTrace?: string,
214
+ ): Stream<R | R1, E | E1, A> {
211
215
  return stream.crossWith(that, (a, _) => a);
212
216
  }
213
217
 
@@ -221,7 +225,8 @@ export function apFirst_<R, R1, E, E1, A, A1>(
221
225
  export function apSecond_<R, R1, E, E1, A, A1>(
222
226
  stream: Stream<R, E, A>,
223
227
  that: Stream<R1, E1, A1>,
224
- ): Stream<R & R1, E | E1, A1> {
228
+ __tsplusTrace?: string,
229
+ ): Stream<R | R1, E | E1, A1> {
225
230
  return stream.crossWith(that, (_, b) => b);
226
231
  }
227
232
 
@@ -230,7 +235,7 @@ export function apSecond_<R, R1, E, E1, A, A1>(
230
235
  *
231
236
  * @tsplus fluent fncts.io.Stream as
232
237
  */
233
- export function as_<R, E, A, B>(stream: Stream<R, E, A>, b: Lazy<B>): Stream<R, E, B> {
238
+ export function as_<R, E, A, B>(stream: Stream<R, E, A>, b: Lazy<B>, __tsplusTrace?: string): Stream<R, E, B> {
234
239
  return stream.map(() => b());
235
240
  }
236
241
 
@@ -242,6 +247,7 @@ export function asyncInterrupt<R, E, A>(
242
247
  resolve: (next: IO<R, Maybe<E>, Conc<A>>, offerCb?: (e: Exit<never, boolean>) => void) => void,
243
248
  ) => Either<Canceler<R>, Stream<R, E, A>>,
244
249
  outputBuffer = 16,
250
+ __tsplusTrace?: string,
245
251
  ): Stream<R, E, A> {
246
252
  return Stream.unwrapScoped(
247
253
  Do((Δ) => {
@@ -257,7 +263,7 @@ export function asyncInterrupt<R, E, A>(
257
263
  );
258
264
  return eitherStream.match(
259
265
  (canceler) => {
260
- const loop: Channel<unknown, unknown, unknown, unknown, E, Conc<A>, void> = Channel.unwrap(
266
+ const loop: Channel<never, unknown, unknown, unknown, E, Conc<A>, void> = Channel.unwrap(
261
267
  output.take
262
268
  .flatMap((take) => take.done)
263
269
  .match(
@@ -286,6 +292,7 @@ export function asyncMaybe<R, E, A>(
286
292
  resolve: (next: IO<R, Maybe<E>, Conc<A>>, offerCb?: (e: Exit<never, boolean>) => void) => void,
287
293
  ) => Maybe<Stream<R, E, A>>,
288
294
  outputBuffer = 16,
295
+ __tsplusTrace?: string,
289
296
  ): Stream<R, E, A> {
290
297
  return Stream.asyncInterrupt((k) => register(k).match(() => Either.left(IO.unit), Either.right), outputBuffer);
291
298
  }
@@ -296,6 +303,7 @@ export function asyncMaybe<R, E, A>(
296
303
  export function async<R, E, A>(
297
304
  register: (resolve: (next: IO<R, Maybe<E>, Conc<A>>, offerCb?: (e: Exit<never, boolean>) => void) => void) => void,
298
305
  outputBuffer = 16,
306
+ __tsplusTrace?: string,
299
307
  ): Stream<R, E, A> {
300
308
  return Stream.asyncMaybe((cb) => {
301
309
  register(cb);
@@ -311,7 +319,8 @@ export function asyncIO<R, E, A, R1 = R, E1 = E>(
311
319
  resolve: (next: IO<R, Maybe<E>, Conc<A>>, offerCb?: (e: Exit<never, boolean>) => void) => void,
312
320
  ) => IO<R1, E1, unknown>,
313
321
  outputBuffer = 16,
314
- ): Stream<R & R1, E | E1, A> {
322
+ __tsplusTrace?: string,
323
+ ): Stream<R | R1, E | E1, A> {
315
324
  return new Stream(
316
325
  Channel.unwrapScoped(
317
326
  Do((Δ) => {
@@ -325,7 +334,7 @@ export function asyncIO<R, E, A, R1 = R, E1 = E>(
325
334
  ),
326
335
  ),
327
336
  );
328
- const loop: Channel<unknown, unknown, unknown, unknown, E, Conc<A>, void> = Channel.unwrap(
337
+ const loop: Channel<never, unknown, unknown, unknown, E, Conc<A>, void> = Channel.unwrap(
329
338
  output.take
330
339
  .flatMap((take) => take.done)
331
340
  .matchCauseIO(
@@ -349,7 +358,12 @@ export function asyncIO<R, E, A, R1 = R, E1 = E>(
349
358
  * Returns a stream whose failure and success channels have been mapped by
350
359
  * the specified pair of functions, `f` and `g`.
351
360
  */
352
- export function bimap_<R, E, E1, A, A1>(stream: Stream<R, E, A>, f: (e: E) => E1, g: (a: A) => A1): Stream<R, E1, A1> {
361
+ export function bimap_<R, E, E1, A, A1>(
362
+ stream: Stream<R, E, A>,
363
+ f: (e: E) => E1,
364
+ g: (a: A) => A1,
365
+ __tsplusTrace?: string,
366
+ ): Stream<R, E1, A1> {
353
367
  return stream.mapError(f).map(g);
354
368
  }
355
369
 
@@ -362,7 +376,8 @@ export function bimap_<R, E, E1, A, A1>(stream: Stream<R, E, A>, f: (e: E) => E1
362
376
  export function acquireRelease_<R, E, A, R1>(
363
377
  acquire: IO<R, E, A>,
364
378
  release: (a: A) => IO<R1, never, unknown>,
365
- ): Stream<R & R1, E, A> {
379
+ __tsplusTrace?: string,
380
+ ): Stream<R | R1, E, A> {
366
381
  return Stream.scoped(IO.acquireRelease(acquire, release));
367
382
  }
368
383
 
@@ -375,7 +390,8 @@ export function acquireRelease_<R, E, A, R1>(
375
390
  export function acquireReleaseExit_<R, E, A, R1>(
376
391
  acquire: IO<R, E, A>,
377
392
  release: (a: A, exit: Exit<any, any>) => IO<R1, never, unknown>,
378
- ): Stream<R & R1, E, A> {
393
+ __tsplusTrace?: string,
394
+ ): Stream<R | R1, E, A> {
379
395
  return Stream.scoped(IO.acquireReleaseExit(acquire, release));
380
396
  }
381
397
 
@@ -390,7 +406,8 @@ export function broadcast_<R, E, A>(
390
406
  stream: Stream<R, E, A>,
391
407
  n: number,
392
408
  maximumLag: number,
393
- ): IO<R & Has<Scope>, never, Conc<Stream<unknown, E, A>>> {
409
+ __tsplusTrace?: string,
410
+ ): IO<R | Scope, never, Conc<Stream<unknown, E, A>>> {
394
411
  return stream
395
412
  .broadcastedQueues(n, maximumLag)
396
413
  .map((c) => c.map((hub) => Stream.fromQueueWithShutdown(hub).flattenTake));
@@ -406,7 +423,8 @@ export function broadcast_<R, E, A>(
406
423
  export function broadcastDynamic_<R, E, A>(
407
424
  stream: Stream<R, E, A>,
408
425
  maximumLag: number,
409
- ): IO<R & Has<Scope>, never, Stream<unknown, E, A>> {
426
+ __tsplusTrace?: string,
427
+ ): IO<R | Scope, never, Stream<unknown, E, A>> {
410
428
  return stream
411
429
  .broadcastedQueuesDynamic(maximumLag)
412
430
  .map((scoped) => Stream.scoped(scoped).flatMap(Stream.fromQueue).flattenTake);
@@ -424,7 +442,8 @@ export function broadcastedQueues_<R, E, A>(
424
442
  stream: Stream<R, E, A>,
425
443
  n: number,
426
444
  maximumLag: number,
427
- ): IO<R & Has<Scope>, never, Conc<Hub.Dequeue<unknown, never, Take<E, A>>>> {
445
+ __tsplusTrace?: string,
446
+ ): IO<R | Scope, never, Conc<Hub.Dequeue<unknown, never, Take<E, A>>>> {
428
447
  return Do((Δ) => {
429
448
  const hub = Δ(Hub.makeBounded<Take<E, A>>(maximumLag));
430
449
  const queues = Δ(IO.sequenceIterable(Conc.replicate(n, hub.subscribe)));
@@ -444,7 +463,8 @@ export function broadcastedQueues_<R, E, A>(
444
463
  export function broadcastedQueuesDynamic_<R, E, A>(
445
464
  stream: Stream<R, E, A>,
446
465
  maximumLag: number,
447
- ): IO<R & Has<Scope>, never, IO<Has<Scope>, never, Hub.Dequeue<unknown, never, Take<E, A>>>> {
466
+ __tsplusTrace?: string,
467
+ ): IO<R | Scope, never, IO<Scope, never, Hub.Dequeue<never, never, Take<E, A>>>> {
448
468
  return stream.toHub(maximumLag).map((hub) => hub.subscribe);
449
469
  }
450
470
 
@@ -454,18 +474,17 @@ export function broadcastedQueuesDynamic_<R, E, A>(
454
474
  *
455
475
  * @tsplus fluent fncts.io.Stream buffer
456
476
  */
457
- export function buffer_<R, E, A>(stream: Stream<R, E, A>, capacity: number): Stream<R, E, A> {
477
+ export function buffer_<R, E, A>(stream: Stream<R, E, A>, capacity: number, __tsplusTrace?: string): Stream<R, E, A> {
458
478
  const queue = toQueueOfElements_(stream, capacity);
459
479
  return new Stream(
460
480
  Channel.unwrapScoped(
461
481
  queue.map((queue) => {
462
- const process: Channel<unknown, unknown, unknown, unknown, E, Conc<A>, void> = Channel.fromIO(
463
- queue.take,
464
- ).flatMap((exit: Exit<Maybe<E>, A>) =>
465
- exit.match(
466
- (cause) => cause.flipCauseMaybe.match(() => Channel.endNow(undefined), Channel.failCauseNow),
467
- (value) => Channel.writeNow(Conc.single(value)).apSecond(process),
468
- ),
482
+ const process: Channel<never, unknown, unknown, unknown, E, Conc<A>, void> = Channel.fromIO(queue.take).flatMap(
483
+ (exit: Exit<Maybe<E>, A>) =>
484
+ exit.match(
485
+ (cause) => cause.flipCauseMaybe.match(() => Channel.endNow(undefined), Channel.failCauseNow),
486
+ (value) => Channel.writeNow(Conc.single(value)).apSecond(process),
487
+ ),
469
488
  );
470
489
  return process;
471
490
  }),
@@ -476,17 +495,20 @@ export function buffer_<R, E, A>(stream: Stream<R, E, A>, capacity: number): Str
476
495
  /**
477
496
  * @tsplus fluent fncts.io.Stream bufferChunks
478
497
  */
479
- export function bufferChunks_<R, E, A>(stream: Stream<R, E, A>, capacity: number): Stream<R, E, A> {
498
+ export function bufferChunks_<R, E, A>(
499
+ stream: Stream<R, E, A>,
500
+ capacity: number,
501
+ __tsplusTrace?: string,
502
+ ): Stream<R, E, A> {
480
503
  const queue = stream.toQueue(capacity);
481
504
  return new Stream(
482
505
  Channel.unwrapScoped(
483
506
  queue.map((queue) => {
484
- const process: Channel<unknown, unknown, unknown, unknown, E, Conc<A>, void> = Channel.fromIO(
485
- queue.take,
486
- ).flatMap((take: Take<E, A>) =>
487
- take.match(Channel.endNow(undefined), Channel.failCauseNow, (value) =>
488
- Channel.writeNow(value).apSecond(process),
489
- ),
507
+ const process: Channel<never, unknown, unknown, unknown, E, Conc<A>, void> = Channel.fromIO(queue.take).flatMap(
508
+ (take: Take<E, A>) =>
509
+ take.match(Channel.endNow(undefined), Channel.failCauseNow, (value) =>
510
+ Channel.writeNow(value).apSecond(process),
511
+ ),
490
512
  );
491
513
  return process;
492
514
  }),
@@ -500,18 +522,17 @@ export function bufferChunks_<R, E, A>(stream: Stream<R, E, A>, capacity: number
500
522
  *
501
523
  * @tsplus getter fncts.io.Stream bufferUnbounded
502
524
  */
503
- export function bufferUnbounded<R, E, A>(stream: Stream<R, E, A>): Stream<R, E, A> {
525
+ export function bufferUnbounded<R, E, A>(stream: Stream<R, E, A>, __tsplusTrace?: string): Stream<R, E, A> {
504
526
  const queue = stream.toQueueUnbounded;
505
527
 
506
528
  return new Stream(
507
529
  Channel.unwrapScoped(
508
530
  queue.map((queue) => {
509
- const process: Channel<unknown, unknown, unknown, unknown, E, Conc<A>, void> = Channel.fromIO(
510
- queue.take,
511
- ).flatMap((take) =>
512
- take.match(Channel.endNow(undefined), Channel.failCauseNow, (value) =>
513
- Channel.writeNow(value).apSecond(process),
514
- ),
531
+ const process: Channel<never, unknown, unknown, unknown, E, Conc<A>, void> = Channel.fromIO(queue.take).flatMap(
532
+ (take) =>
533
+ take.match(Channel.endNow(undefined), Channel.failCauseNow, (value) =>
534
+ Channel.writeNow(value).apSecond(process),
535
+ ),
515
536
  );
516
537
 
517
538
  return process;
@@ -520,11 +541,12 @@ export function bufferUnbounded<R, E, A>(stream: Stream<R, E, A>): Stream<R, E,
520
541
  );
521
542
  }
522
543
 
523
- function bufferSignalProducer<R, E, A>(
544
+ function bufferSignalProducer<E, A>(
524
545
  queue: Queue<readonly [Take<E, A>, Future<never, void>]>,
525
546
  ref: Ref<Future<never, void>>,
526
- ): Channel<R, E, Conc<A>, unknown, never, never, unknown> {
527
- const terminate = (take: Take<E, A>): Channel<R, E, Conc<A>, unknown, never, never, unknown> =>
547
+ __tsplusTrace?: string,
548
+ ): Channel<never, E, Conc<A>, unknown, never, never, unknown> {
549
+ const terminate = (take: Take<E, A>): Channel<never, E, Conc<A>, unknown, never, never, unknown> =>
528
550
  Channel.fromIO(
529
551
  Do((Δ) => {
530
552
  const latch = Δ(ref.get);
@@ -551,8 +573,9 @@ function bufferSignalProducer<R, E, A>(
551
573
 
552
574
  function bufferSignalConsumer<R, E, A>(
553
575
  queue: Queue<readonly [Take<E, A>, Future<never, void>]>,
576
+ __tsplusTrace?: string,
554
577
  ): Channel<R, unknown, unknown, unknown, E, Conc<A>, void> {
555
- const process: Channel<unknown, unknown, unknown, unknown, E, Conc<A>, void> = Channel.fromIO(queue.take).flatMap(
578
+ const process: Channel<never, unknown, unknown, unknown, E, Conc<A>, void> = Channel.fromIO(queue.take).flatMap(
556
579
  ([take, promise]) =>
557
580
  Channel.fromIO(promise.succeed(undefined)).apSecond(
558
581
  take.match(Channel.endNow(undefined), Channel.failCauseNow, (value) =>
@@ -572,7 +595,8 @@ function bufferSignalConsumer<R, E, A>(
572
595
  export function catchAll_<R, R1, E, E1, A, A1>(
573
596
  stream: Stream<R, E, A>,
574
597
  f: (e: E) => Stream<R1, E1, A1>,
575
- ): Stream<R & R1, E1, A | A1> {
598
+ __tsplusTrace?: string,
599
+ ): Stream<R | R1, E1, A | A1> {
576
600
  return stream.catchAllCause((cause) => cause.failureOrCause.match(f, Stream.failCauseNow));
577
601
  }
578
602
 
@@ -586,8 +610,9 @@ export function catchAll_<R, R1, E, E1, A, A1>(
586
610
  export function catchAllCause_<R, R1, E, E1, A, A1>(
587
611
  stream: Stream<R, E, A>,
588
612
  f: (cause: Cause<E>) => Stream<R1, E1, A1>,
589
- ): Stream<R & R1, E1, A | A1> {
590
- const channel: Channel<R & R1, unknown, unknown, unknown, E1, Conc<A | A1>, unknown> = stream.channel.catchAllCause(
613
+ __tsplusTrace?: string,
614
+ ): Stream<R | R1, E1, A | A1> {
615
+ const channel: Channel<R | R1, unknown, unknown, unknown, E1, Conc<A | A1>, unknown> = stream.channel.catchAllCause(
591
616
  (cause) => f(cause).channel,
592
617
  );
593
618
  return new Stream(channel);
@@ -602,7 +627,8 @@ export function catchAllCause_<R, R1, E, E1, A, A1>(
602
627
  export function catchJust_<R, R1, E, E1, A, A1>(
603
628
  stream: Stream<R, E, A>,
604
629
  pf: (e: E) => Maybe<Stream<R1, E1, A1>>,
605
- ): Stream<R & R1, E | E1, A | A1> {
630
+ __tsplusTrace?: string,
631
+ ): Stream<R | R1, E | E1, A | A1> {
606
632
  return stream.catchAll((e) => pf(e).getOrElse(Stream.failNow(e)));
607
633
  }
608
634
 
@@ -616,7 +642,8 @@ export function catchJust_<R, R1, E, E1, A, A1>(
616
642
  export function catchJustCause_<R, R1, E, E1, A, A1>(
617
643
  stream: Stream<R, E, A>,
618
644
  pf: (e: Cause<E>) => Maybe<Stream<R1, E1, A1>>,
619
- ): Stream<R & R1, E | E1, A | A1> {
645
+ __tsplusTrace?: string,
646
+ ): Stream<R | R1, E | E1, A | A1> {
620
647
  return stream.catchAllCause((cause) => pf(cause).getOrElse(Stream.failCauseNow(cause)));
621
648
  }
622
649
 
@@ -629,7 +656,8 @@ export function catchJustCause_<R, R1, E, E1, A, A1>(
629
656
  export function flatMap_<R, E, A, R1, E1, B>(
630
657
  stream: Stream<R, E, A>,
631
658
  f: (a: A) => Stream<R1, E1, B>,
632
- ): Stream<R & R1, E | E1, B> {
659
+ __tsplusTrace?: string,
660
+ ): Stream<R | R1, E | E1, B> {
633
661
  return new Stream(
634
662
  stream.channel.concatMap((as) =>
635
663
  as
@@ -646,13 +674,28 @@ export function flatMap_<R, E, A, R1, E1, B>(
646
674
  *
647
675
  * @tsplus getter fncts.io.Stream chunks
648
676
  */
649
- export function chunks<R, E, A>(stream: Stream<R, E, A>): Stream<R, E, Conc<A>> {
677
+ export function chunks<R, E, A>(stream: Stream<R, E, A>, __tsplusTrace?: string): Stream<R, E, Conc<A>> {
650
678
  return stream.mapChunks(Conc.single);
651
679
  }
652
680
 
681
+ /**
682
+ * Performs the specified stream transformation with the chunk structure of
683
+ * the stream exposed.
684
+ *
685
+ * @tsplus fluent fncts.io.Stream chunksWith
686
+ */
687
+ export function chunksWith<R, E, A, R1, E1, B>(
688
+ self: Stream<R, E, A>,
689
+ f: (_: Stream<R, E, Conc<A>>) => Stream<R1, E1, Conc<B>>,
690
+ __tsplusTrace?: string,
691
+ ): Stream<R1, E1, B> {
692
+ return f(self.chunks).flattenChunks;
693
+ }
694
+
653
695
  function changesWithWriter<R, E, A>(
654
696
  f: (x: A, y: A) => boolean,
655
697
  last: Maybe<A>,
698
+ __tsplusTrace?: string,
656
699
  ): Channel<R, E, Conc<A>, unknown, E, Conc<A>, void> {
657
700
  return Channel.readWithCause(
658
701
  (chunk: Conc<A>) => {
@@ -676,7 +719,11 @@ function changesWithWriter<R, E, A>(
676
719
  *
677
720
  * @tsplus fluent fncts.io.Stream changesWith
678
721
  */
679
- export function changesWith_<R, E, A>(stream: Stream<R, E, A>, f: (x: A, y: A) => boolean): Stream<R, E, A> {
722
+ export function changesWith_<R, E, A>(
723
+ stream: Stream<R, E, A>,
724
+ f: (x: A, y: A) => boolean,
725
+ __tsplusTrace?: string,
726
+ ): Stream<R, E, A> {
680
727
  return new Stream(stream.channel.pipeTo(changesWithWriter<R, E, A>(f, Nothing())));
681
728
  }
682
729
 
@@ -685,7 +732,11 @@ export function changesWith_<R, E, A>(stream: Stream<R, E, A>, f: (x: A, y: A) =
685
732
  *
686
733
  * @tsplus fluent fncts.io.Stream collectWhile
687
734
  */
688
- export function collectWhile_<R, E, A, A1>(stream: Stream<R, E, A>, pf: (a: A) => Maybe<A1>): Stream<R, E, A1> {
735
+ export function collectWhile_<R, E, A, A1>(
736
+ stream: Stream<R, E, A>,
737
+ pf: (a: A) => Maybe<A1>,
738
+ __tsplusTrace?: string,
739
+ ): Stream<R, E, A1> {
689
740
  const loop: Channel<R, E, Conc<A>, unknown, E, Conc<A1>, any> = Channel.readWith(
690
741
  (inp) => {
691
742
  const mapped = inp.collectWhile(pf);
@@ -709,14 +760,16 @@ export function collectWhile_<R, E, A, A1>(stream: Stream<R, E, A>, pf: (a: A) =
709
760
  export function collectWhileIO_<R, E, A, R1, E1, B>(
710
761
  stream: Stream<R, E, A>,
711
762
  pf: (a: A) => Maybe<IO<R1, E1, B>>,
712
- ): Stream<R & R1, E | E1, B> {
763
+ __tsplusTrace?: string,
764
+ ): Stream<R | R1, E | E1, B> {
713
765
  return new Stream(stream.channel.pipeTo(collectWhileIOLoop(Iterable.empty<A>()[Symbol.iterator](), pf)));
714
766
  }
715
767
 
716
768
  function collectWhileIOLoop<R, E, A, R1, E1, B>(
717
769
  iterator: Iterator<A>,
718
770
  pf: (a: A) => Maybe<IO<R1, E1, B>>,
719
- ): Channel<R & R1, E, Conc<A>, unknown, E | E1, Conc<B>, unknown> {
771
+ __tsplusTrace?: string,
772
+ ): Channel<R | R1, E, Conc<A>, unknown, E | E1, Conc<B>, unknown> {
720
773
  const next = iterator.next();
721
774
  if (next.done) {
722
775
  return Channel.readWithCause(
@@ -737,7 +790,8 @@ function collectWhileIOLoop<R, E, A, R1, E1, B>(
737
790
  function combineProducer<Err, Elem>(
738
791
  handoff: Handoff<Exit<Maybe<Err>, Elem>>,
739
792
  latch: Handoff<void>,
740
- ): Channel<unknown, Err, Elem, unknown, never, never, any> {
793
+ __tsplusTrace?: string,
794
+ ): Channel<never, Err, Elem, unknown, never, never, any> {
741
795
  return Channel.fromIO(latch.take).apSecond(
742
796
  Channel.readWithCause(
743
797
  (value) => Channel.fromIO(handoff.offer(Exit.succeed(value))).apSecond(combineProducer(handoff, latch)),
@@ -766,7 +820,8 @@ export function combine_<R, E, A, R1, E1, A1, S, R2, A2>(
766
820
  eff1: IO<R, Maybe<E>, A>,
767
821
  eff2: IO<R1, Maybe<E1>, A1>,
768
822
  ) => IO<R2, never, Exit<Maybe<E | E1>, readonly [A2, S]>>,
769
- ): Stream<R & R1 & R2, E | E1, A2> {
823
+ __tsplusTrace?: string,
824
+ ): Stream<R | R1 | R2, E | E1, A2> {
770
825
  return new Stream(
771
826
  Channel.unwrapScoped(
772
827
  Do((Δ) => {
@@ -790,7 +845,8 @@ export function combine_<R, E, A, R1, E1, A1, S, R2, A2>(
790
845
  function combineChunksProducer<Err, Elem>(
791
846
  handoff: Handoff<Take<Err, Elem>>,
792
847
  latch: Handoff<void>,
793
- ): Channel<unknown, Err, Conc<Elem>, unknown, never, never, any> {
848
+ __tsplusTrace?: string,
849
+ ): Channel<never, Err, Conc<Elem>, unknown, never, never, any> {
794
850
  return Channel.fromIO(latch.take).apSecond(
795
851
  Channel.readWithCause(
796
852
  (chunk) => Channel.fromIO(handoff.offer(Take.chunk(chunk))).apSecond(combineChunksProducer(handoff, latch)),
@@ -817,7 +873,8 @@ export function combineChunks_<R, E, A, R1, E1, A1, S, R2, A2>(
817
873
  l: IO<R, Maybe<E>, Conc<A>>,
818
874
  r: IO<R1, Maybe<E1>, Conc<A1>>,
819
875
  ) => IO<R2, never, Exit<Maybe<E | E1>, readonly [Conc<A2>, S]>>,
820
- ): Stream<R1 & R & R2, E | E1, A2> {
876
+ __tsplusTrace?: string,
877
+ ): Stream<R1 | R | R2, E | E1, A2> {
821
878
  return new Stream(
822
879
  Channel.unwrapScoped(
823
880
  Do((Δ) => {
@@ -853,8 +910,9 @@ export function combineChunks_<R, E, A, R1, E1, A1, S, R2, A2>(
853
910
  export function concat_<R, R1, E, E1, A, A1>(
854
911
  stream: Stream<R, E, A>,
855
912
  that: Stream<R1, E1, A1>,
856
- ): Stream<R & R1, E | E1, A | A1> {
857
- return new Stream<R & R1, E | E1, A | A1>(stream.channel.apSecond(that.channel));
913
+ __tsplusTrace?: string,
914
+ ): Stream<R | R1, E | E1, A | A1> {
915
+ return new Stream<R | R1, E | E1, A | A1>(stream.channel.apSecond(that.channel));
858
916
  }
859
917
 
860
918
  /**
@@ -866,7 +924,8 @@ export function concat_<R, R1, E, E1, A, A1>(
866
924
  export function cross_<R, E, A, R1, E1, B>(
867
925
  stream: Stream<R, E, A>,
868
926
  that: Stream<R1, E1, B>,
869
- ): Stream<R & R1, E | E1, readonly [A, B]> {
927
+ __tsplusTrace?: string,
928
+ ): Stream<R | R1, E | E1, readonly [A, B]> {
870
929
  return new Stream(
871
930
  stream.channel.concatMap((as) => that.channel.mapOut((bs) => as.flatMap((a) => bs.map((b) => tuple(a, b))))),
872
931
  );
@@ -883,7 +942,8 @@ export function crossWith_<R, E, A, R1, E1, B, C>(
883
942
  fa: Stream<R, E, A>,
884
943
  fb: Stream<R1, E1, B>,
885
944
  f: (a: A, b: B) => C,
886
- ): Stream<R & R1, E | E1, C> {
945
+ __tsplusTrace?: string,
946
+ ): Stream<R | R1, E | E1, C> {
887
947
  return fa.flatMap((a) => fb.map((b) => f(a, b)));
888
948
  }
889
949
 
@@ -896,6 +956,7 @@ export function crossWith_<R, E, A, R1, E1, B, C>(
896
956
  export function contramapEnvironment_<R, E, A, R0>(
897
957
  ra: Stream<R, E, A>,
898
958
  f: (r0: Environment<R0>) => Environment<R>,
959
+ __tsplusTrace?: string,
899
960
  ): Stream<R0, E, A> {
900
961
  return Stream.environment<R0>().flatMap((r0) => ra.provideEnvironment(f(r0)));
901
962
  }
@@ -903,12 +964,16 @@ export function contramapEnvironment_<R, E, A, R0>(
903
964
  /**
904
965
  * @tsplus fluent fncts.io.Stream debounce
905
966
  */
906
- export function debounce_<R, E, A>(stream: Stream<R, E, A>, duration: Lazy<Duration>): Stream<R, E, A> {
967
+ export function debounce_<R, E, A>(
968
+ stream: Stream<R, E, A>,
969
+ duration: Lazy<Duration>,
970
+ __tsplusTrace?: string,
971
+ ): Stream<R, E, A> {
907
972
  return Stream.unwrap(
908
973
  IO.transplant((grafter) =>
909
974
  Do((Δ) => {
910
975
  const handoff = Δ(Handoff<HandoffSignal<E, A>>());
911
- function enqueue(last: Conc<A>) {
976
+ function enqueue(last: Conc<A>, __tsplusTrace?: string) {
912
977
  return grafter(Clock.sleep(duration).as(last).fork).map((f) => consumer(DebounceState.Previous(f)));
913
978
  }
914
979
  const producer: Channel<R, E, Conc<A>, unknown, E, never, unknown> = Channel.readWithCause(
@@ -920,7 +985,10 @@ export function debounce_<R, E, A>(stream: Stream<R, E, A>, duration: Lazy<Durat
920
985
  (cause: Cause<E>) => Channel.fromIO(handoff.offer(HandoffSignal.Halt(cause))),
921
986
  () => Channel.fromIO(handoff.offer(HandoffSignal.End(new UpstreamEnd()))),
922
987
  );
923
- function consumer(state: DebounceState<E, A>): Channel<R, unknown, unknown, unknown, E, Conc<A>, unknown> {
988
+ function consumer(
989
+ state: DebounceState<E, A>,
990
+ __tsplusTrace?: string,
991
+ ): Channel<R, unknown, unknown, unknown, E, Conc<A>, unknown> {
924
992
  return Channel.unwrap(
925
993
  state.match({
926
994
  NotStarted: () =>
@@ -973,7 +1041,8 @@ export function debounce_<R, E, A>(stream: Stream<R, E, A>, duration: Lazy<Durat
973
1041
 
974
1042
  function defaultIfEmptyWriter<R, E, A, R1, E1, B>(
975
1043
  fb: Stream<R1, E1, B>,
976
- ): Channel<R & R1, E, Conc<A>, unknown, E | E1, Conc<A | B>, unknown> {
1044
+ __tsplusTrace?: string,
1045
+ ): Channel<R | R1, E, Conc<A>, unknown, E | E1, Conc<A | B>, unknown> {
977
1046
  return Channel.readWith(
978
1047
  (i: Conc<A>) =>
979
1048
  i.isEmpty ? defaultIfEmptyWriter(fb) : Channel.writeNow(i).apSecond(Channel.id<E, Conc<A>, unknown>()),
@@ -990,7 +1059,8 @@ function defaultIfEmptyWriter<R, E, A, R1, E1, B>(
990
1059
  export function defaultIfEmpty_<R, E, A, R1, E1, B>(
991
1060
  fa: Stream<R, E, A>,
992
1061
  fb: Stream<R1, E1, B>,
993
- ): Stream<R & R1, E | E1, A | B> {
1062
+ __tsplusTrace?: string,
1063
+ ): Stream<R | R1, E | E1, A | B> {
994
1064
  return new Stream(fa.channel.pipeTo(defaultIfEmptyWriter(fb)));
995
1065
  }
996
1066
 
@@ -1006,7 +1076,8 @@ export function distributedWith_<R, E, A>(
1006
1076
  n: number,
1007
1077
  maximumLag: number,
1008
1078
  decide: (_: A) => UIO<(_: number) => boolean>,
1009
- ): IO<R & Has<Scope>, never, Conc<Queue.Dequeue<Exit<Maybe<E>, A>>>> {
1079
+ __tsplusTrace?: string,
1080
+ ): IO<R | Scope, never, Conc<Queue.Dequeue<Exit<Maybe<E>, A>>>> {
1010
1081
  return Future.make<never, (a: A) => UIO<(_: symbol) => boolean>>().flatMap((p) =>
1011
1082
  self
1012
1083
  .distributedWithDynamic(
@@ -1043,7 +1114,8 @@ export function distributedWithDynamic_<R, E, A>(
1043
1114
  maximumLag: number,
1044
1115
  decide: (a: A) => UIO<(_: symbol) => boolean>,
1045
1116
  done: (exit: Exit<Maybe<E>, never>) => UIO<any> = () => IO.unit,
1046
- ): IO<R & Has<Scope>, never, UIO<readonly [symbol, Queue.Dequeue<Exit<Maybe<E>, A>>]>> {
1117
+ __tsplusTrace?: string,
1118
+ ): IO<R | Scope, never, UIO<readonly [symbol, Queue.Dequeue<Exit<Maybe<E>, A>>]>> {
1047
1119
  const offer = (queuesRef: Ref<HashMap<symbol, Queue<Exit<Maybe<E>, A>>>>) => (a: A) =>
1048
1120
  Do((Δ) => {
1049
1121
  const shouldProcess = Δ(decide(a));
@@ -1130,11 +1202,11 @@ export function distributedWithDynamic_<R, E, A>(
1130
1202
  *
1131
1203
  * @tsplus getter fncts.io.Stream drain
1132
1204
  */
1133
- export function drain<R, E, A>(fa: Stream<R, E, A>): Stream<R, E, void> {
1205
+ export function drain<R, E, A>(fa: Stream<R, E, A>, __tsplusTrace?: string): Stream<R, E, void> {
1134
1206
  return new Stream(fa.channel.drain);
1135
1207
  }
1136
1208
 
1137
- function dropLoop<R, E, A>(r: number): Channel<R, E, Conc<A>, unknown, E, Conc<A>, unknown> {
1209
+ function dropLoop<R, E, A>(r: number, __tsplusTrace?: string): Channel<R, E, Conc<A>, unknown, E, Conc<A>, unknown> {
1138
1210
  return Channel.readWith(
1139
1211
  (inp: Conc<A>) => {
1140
1212
  const dropped = inp.drop(r);
@@ -1152,7 +1224,7 @@ function dropLoop<R, E, A>(r: number): Channel<R, E, Conc<A>, unknown, E, Conc<A
1152
1224
  *
1153
1225
  * @tsplus fluent fncts.io.Stream drop
1154
1226
  */
1155
- export function drop_<R, E, A>(stream: Stream<R, E, A>, n: number): Stream<R, E, A> {
1227
+ export function drop_<R, E, A>(stream: Stream<R, E, A>, n: number, __tsplusTrace?: string): Stream<R, E, A> {
1156
1228
  return new Stream(stream.channel.pipeTo(dropLoop(n)));
1157
1229
  }
1158
1230
 
@@ -1162,7 +1234,7 @@ export function drop_<R, E, A>(stream: Stream<R, E, A>, n: number): Stream<R, E,
1162
1234
  *
1163
1235
  * @tsplus fluent fncts.io.Stream dropWhile
1164
1236
  */
1165
- export function dropWhile_<R, E, A>(stream: Stream<R, E, A>, p: Predicate<A>): Stream<R, E, A> {
1237
+ export function dropWhile_<R, E, A>(stream: Stream<R, E, A>, p: Predicate<A>, __tsplusTrace?: string): Stream<R, E, A> {
1166
1238
  return stream.pipeThrough(Sink.dropWhile(p));
1167
1239
  }
1168
1240
 
@@ -1172,7 +1244,7 @@ export function dropWhile_<R, E, A>(stream: Stream<R, E, A>, p: Predicate<A>): S
1172
1244
  *
1173
1245
  * @tsplus fluent fncts.io.Stream dropUntil
1174
1246
  */
1175
- export function dropUntil_<R, E, A>(stream: Stream<R, E, A>, p: Predicate<A>): Stream<R, E, A> {
1247
+ export function dropUntil_<R, E, A>(stream: Stream<R, E, A>, p: Predicate<A>, __tsplusTrace?: string): Stream<R, E, A> {
1176
1248
  return stream.dropWhile(p.invert).drop(1);
1177
1249
  }
1178
1250
 
@@ -1185,24 +1257,25 @@ export function dropUntil_<R, E, A>(stream: Stream<R, E, A>, p: Predicate<A>): S
1185
1257
  *
1186
1258
  * @tsplus getter fncts.io.Stream either
1187
1259
  */
1188
- export function either<R, E, A>(stream: Stream<R, E, A>): Stream<R, never, Either<E, A>> {
1260
+ export function either<R, E, A>(stream: Stream<R, E, A>, __tsplusTrace?: string): Stream<R, never, Either<E, A>> {
1189
1261
  return stream.map(Either.right).catchAll((e) => Stream.succeedNow(Either.left(e)));
1190
1262
  }
1191
1263
 
1192
1264
  /**
1193
1265
  * @tsplus static fncts.io.StreamOps empty
1194
1266
  */
1195
- export const empty: Stream<unknown, never, never> = Stream.fromChunkNow(Conc.empty<never>());
1267
+ export const empty: Stream<never, never, never> = Stream.fromChunkNow(Conc.empty<never>());
1196
1268
 
1197
1269
  function endWhenWriter<E, A, E1>(
1198
1270
  fiber: Fiber<E1, any>,
1199
- ): Channel<unknown, E | E1, Conc<A>, unknown, E | E1, Conc<A>, void> {
1271
+ __tsplusTrace?: string,
1272
+ ): Channel<never, E | E1, Conc<A>, unknown, E | E1, Conc<A>, void> {
1200
1273
  return Channel.unwrap(
1201
1274
  fiber.poll.map((maybeExit) =>
1202
1275
  maybeExit.match(
1203
1276
  () =>
1204
1277
  Channel.readWith(
1205
- (inp: Conc<A>) => Channel.writeNow(inp).apSecond(endWhenWriter(fiber)),
1278
+ (inp: Conc<A>) => Channel.writeNow(inp).apSecond(endWhenWriter<E, A, E1>(fiber)),
1206
1279
  Channel.failNow,
1207
1280
  () => Channel.unit,
1208
1281
  ),
@@ -1223,21 +1296,29 @@ function endWhenWriter<E, A, E1>(
1223
1296
  *
1224
1297
  * @tsplus fluent fncts.io.Stream endWhen
1225
1298
  */
1226
- export function endWhen_<R, E, A, R1, E1>(stream: Stream<R, E, A>, io: IO<R1, E1, any>): Stream<R & R1, E | E1, A> {
1299
+ export function endWhen_<R, E, A, R1, E1>(
1300
+ stream: Stream<R, E, A>,
1301
+ io: IO<R1, E1, any>,
1302
+ __tsplusTrace?: string,
1303
+ ): Stream<R | R1, E | E1, A> {
1227
1304
  return new Stream(Channel.unwrapScoped(io.forkScoped.map((fiber) => stream.channel.pipeTo(endWhenWriter(fiber)))));
1228
1305
  }
1229
1306
 
1230
1307
  /**
1231
1308
  * @tsplus fluent fncts.io.Stream ensuring
1232
1309
  */
1233
- export function ensuring_<R, E, A, R1>(self: Stream<R, E, A>, finalizer: IO<R1, never, any>): Stream<R & R1, E, A> {
1310
+ export function ensuring_<R, E, A, R1>(
1311
+ self: Stream<R, E, A>,
1312
+ finalizer: IO<R1, never, any>,
1313
+ __tsplusTrace?: string,
1314
+ ): Stream<R | R1, E, A> {
1234
1315
  return new Stream(self.channel.ensuring(finalizer));
1235
1316
  }
1236
1317
 
1237
1318
  /**
1238
1319
  * @tsplus static fncts.io.StreamOps environment
1239
1320
  */
1240
- export function environment<R>(): Stream<R, never, Environment<R>> {
1321
+ export function environment<R>(__tsplusTrace?: string): Stream<R, never, Environment<R>> {
1241
1322
  return Stream.fromIO(IO.environment<R>());
1242
1323
  }
1243
1324
 
@@ -1246,7 +1327,7 @@ export function environment<R>(): Stream<R, never, Environment<R>> {
1246
1327
  *
1247
1328
  * @tsplus static fncts.io.StreamOps environmentWith
1248
1329
  */
1249
- export function environmentWith<R, A>(f: (r: Environment<R>) => A): Stream<R, never, A> {
1330
+ export function environmentWith<R, A>(f: (r: Environment<R>) => A, __tsplusTrace?: string): Stream<R, never, A> {
1250
1331
  return Stream.environment<R>().map(f);
1251
1332
  }
1252
1333
 
@@ -1255,7 +1336,10 @@ export function environmentWith<R, A>(f: (r: Environment<R>) => A): Stream<R, ne
1255
1336
  *
1256
1337
  * @tsplus static fncts.io.StreamOps environmentWithIO
1257
1338
  */
1258
- export function environmentWithIO<R0, R, E, A>(f: (r0: Environment<R0>) => IO<R, E, A>): Stream<R0 & R, E, A> {
1339
+ export function environmentWithIO<R0, R, E, A>(
1340
+ f: (r0: Environment<R0>) => IO<R, E, A>,
1341
+ __tsplusTrace?: string,
1342
+ ): Stream<R0 | R, E, A> {
1259
1343
  return Stream.environment<R0>().mapIO(f);
1260
1344
  }
1261
1345
 
@@ -1264,7 +1348,10 @@ export function environmentWithIO<R0, R, E, A>(f: (r0: Environment<R0>) => IO<R,
1264
1348
  *
1265
1349
  * @tsplus static fncts.io.StreamOps environmentWithStream
1266
1350
  */
1267
- export function environmentWithStream<R0, R, E, A>(f: (r0: Environment<R0>) => Stream<R, E, A>): Stream<R0 & R, E, A> {
1351
+ export function environmentWithStream<R0, R, E, A>(
1352
+ f: (r0: Environment<R0>) => Stream<R, E, A>,
1353
+ __tsplusTrace?: string,
1354
+ ): Stream<R0 | R, E, A> {
1268
1355
  return Stream.environment<R0>().flatMap(f);
1269
1356
  }
1270
1357
 
@@ -1273,7 +1360,7 @@ export function environmentWithStream<R0, R, E, A>(f: (r0: Environment<R0>) => S
1273
1360
  *
1274
1361
  * @tsplus static fncts.io.StreamOps failNow
1275
1362
  */
1276
- export function failNow<E>(error: E): Stream<unknown, E, never> {
1363
+ export function failNow<E>(error: E, __tsplusTrace?: string): Stream<never, E, never> {
1277
1364
  return new Stream(Channel.failNow(error));
1278
1365
  }
1279
1366
 
@@ -1282,7 +1369,7 @@ export function failNow<E>(error: E): Stream<unknown, E, never> {
1282
1369
  *
1283
1370
  * @tsplus static fncts.io.StreamOps fail
1284
1371
  */
1285
- export function fail<E>(error: Lazy<E>): Stream<unknown, E, never> {
1372
+ export function fail<E>(error: Lazy<E>, __tsplusTrace?: string): Stream<never, E, never> {
1286
1373
  return new Stream(Channel.fail(error));
1287
1374
  }
1288
1375
 
@@ -1291,7 +1378,7 @@ export function fail<E>(error: Lazy<E>): Stream<unknown, E, never> {
1291
1378
  *
1292
1379
  * @tsplus static fncts.io.StreamOps failCauseNow
1293
1380
  */
1294
- export function failCauseNow<E>(cause: Cause<E>): Stream<unknown, E, never> {
1381
+ export function failCauseNow<E>(cause: Cause<E>, __tsplusTrace?: string): Stream<never, E, never> {
1295
1382
  return Stream.fromIO(IO.failCauseNow(cause));
1296
1383
  }
1297
1384
 
@@ -1300,7 +1387,7 @@ export function failCauseNow<E>(cause: Cause<E>): Stream<unknown, E, never> {
1300
1387
  *
1301
1388
  * @tsplus static fncts.io.StreamOps failCause
1302
1389
  */
1303
- export function failCause<E>(cause: Lazy<Cause<E>>): Stream<unknown, E, never> {
1390
+ export function failCause<E>(cause: Lazy<Cause<E>>, __tsplusTrace?: string): Stream<never, E, never> {
1304
1391
  return Stream.fromIO(IO.failCause(cause));
1305
1392
  }
1306
1393
 
@@ -1309,7 +1396,11 @@ export function failCause<E>(cause: Lazy<Cause<E>>): Stream<unknown, E, never> {
1309
1396
  */
1310
1397
  export function filter_<R, E, A, B extends A>(fa: Stream<R, E, A>, refinement: Refinement<A, B>): Stream<R, E, B>;
1311
1398
  export function filter_<R, E, A>(fa: Stream<R, E, A>, predicate: Predicate<A>): Stream<R, E, A>;
1312
- export function filter_<R, E, A>(fa: Stream<R, E, A>, predicate: Predicate<A>): Stream<R, E, A> {
1399
+ export function filter_<R, E, A>(
1400
+ fa: Stream<R, E, A>,
1401
+ predicate: Predicate<A>,
1402
+ __tsplusTrace?: string,
1403
+ ): Stream<R, E, A> {
1313
1404
  return fa.mapChunks((chunk) => chunk.filter(predicate));
1314
1405
  }
1315
1406
 
@@ -1319,14 +1410,16 @@ export function filter_<R, E, A>(fa: Stream<R, E, A>, predicate: Predicate<A>):
1319
1410
  export function filterIO_<R, E, A, R1, E1>(
1320
1411
  fa: Stream<R, E, A>,
1321
1412
  f: (a: A) => IO<R1, E1, boolean>,
1322
- ): Stream<R & R1, E | E1, A> {
1413
+ __tsplusTrace?: string,
1414
+ ): Stream<R | R1, E | E1, A> {
1323
1415
  return new Stream(fa.channel.pipeTo(filterIOLoop(Iterable.empty<A>()[Symbol.iterator](), f)));
1324
1416
  }
1325
1417
 
1326
1418
  function filterIOLoop<R, E, A, R1, E1>(
1327
1419
  iterator: Iterator<A>,
1328
1420
  f: (a: A) => IO<R1, E1, boolean>,
1329
- ): Channel<R & R1, E, Conc<A>, unknown, E | E1, Conc<A>, unknown> {
1421
+ __tsplusTrace?: string,
1422
+ ): Channel<R | R1, E, Conc<A>, unknown, E | E1, Conc<A>, unknown> {
1330
1423
  const next = iterator.next();
1331
1424
  if (next.done) {
1332
1425
  return Channel.readWithCause(
@@ -1348,7 +1441,11 @@ function filterIOLoop<R, E, A, R1, E1>(
1348
1441
  /**
1349
1442
  * @tsplus fluent fncts.io.Stream filterMap
1350
1443
  */
1351
- export function filterMap_<R, E, A, B>(fa: Stream<R, E, A>, f: (a: A) => Maybe<B>): Stream<R, E, B> {
1444
+ export function filterMap_<R, E, A, B>(
1445
+ fa: Stream<R, E, A>,
1446
+ f: (a: A) => Maybe<B>,
1447
+ __tsplusTrace?: string,
1448
+ ): Stream<R, E, B> {
1352
1449
  return fa.mapChunks((chunk) => chunk.filterMap(f));
1353
1450
  }
1354
1451
 
@@ -1358,14 +1455,16 @@ export function filterMap_<R, E, A, B>(fa: Stream<R, E, A>, f: (a: A) => Maybe<B
1358
1455
  export function filterMapIO_<R, E, A, R1, E1, B>(
1359
1456
  fa: Stream<R, E, A>,
1360
1457
  f: (a: A) => IO<R1, E1, Maybe<B>>,
1361
- ): Stream<R & R1, E | E1, B> {
1458
+ __tsplusTrace?: string,
1459
+ ): Stream<R | R1, E | E1, B> {
1362
1460
  return new Stream(fa.channel.pipeTo(filterMapIOLoop<R, E, A, R1, E1, B>(Iterable.empty<A>()[Symbol.iterator](), f)));
1363
1461
  }
1364
1462
 
1365
1463
  function filterMapIOLoop<R, E, A, R1, E1, B>(
1366
1464
  iterator: Iterator<A>,
1367
1465
  f: (a: A) => IO<R1, E1, Maybe<B>>,
1368
- ): Channel<R & R1, E, Conc<A>, unknown, E | E1, Conc<B>, unknown> {
1466
+ __tsplusTrace?: string,
1467
+ ): Channel<R | R1, E, Conc<A>, unknown, E | E1, Conc<B>, unknown> {
1369
1468
  const next = iterator.next();
1370
1469
  if (next.done) {
1371
1470
  return Channel.readWithCause(
@@ -1377,7 +1476,7 @@ function filterMapIOLoop<R, E, A, R1, E1, B>(
1377
1476
  return Channel.unwrap(
1378
1477
  f(next.value).map((b) =>
1379
1478
  b.match(
1380
- () => filterMapIOLoop(iterator, f),
1479
+ () => filterMapIOLoop<R, E, A, R1, E1, B>(iterator, f),
1381
1480
  (b) => Channel.writeNow(Conc.single(b)) > filterMapIOLoop<R, E, A, R1, E1, B>(iterator, f),
1382
1481
  ),
1383
1482
  ),
@@ -1390,7 +1489,7 @@ function filterMapIOLoop<R, E, A, R1, E1, B>(
1390
1489
  *
1391
1490
  * @tsplus fluent fncts.io.Stream find
1392
1491
  */
1393
- export function find_<R, E, A>(stream: Stream<R, E, A>, p: Predicate<A>): Stream<R, E, A> {
1492
+ export function find_<R, E, A>(stream: Stream<R, E, A>, p: Predicate<A>, __tsplusTrace?: string): Stream<R, E, A> {
1394
1493
  const loop: Channel<R, E, Conc<A>, unknown, E, Conc<A>, unknown> = Channel.readWith(
1395
1494
  (inp: Conc<A>) =>
1396
1495
  inp.find(p).match(
@@ -1411,8 +1510,9 @@ export function find_<R, E, A>(stream: Stream<R, E, A>, p: Predicate<A>): Stream
1411
1510
  export function findIO_<R, E, A, R1, E1>(
1412
1511
  stream: Stream<R, E, A>,
1413
1512
  f: (a: A) => IO<R1, E1, boolean>,
1414
- ): Stream<R & R1, E | E1, A> {
1415
- const loop: Channel<R & R1, E, Conc<A>, unknown, E | E1, Conc<A>, unknown> = Channel.readWith(
1513
+ __tsplusTrace?: string,
1514
+ ): Stream<R | R1, E | E1, A> {
1515
+ const loop: Channel<R | R1, E, Conc<A>, unknown, E | E1, Conc<A>, unknown> = Channel.readWith(
1416
1516
  (inp: Conc<A>) =>
1417
1517
  Channel.unwrap(
1418
1518
  inp.findIO(f).map((maybeA) =>
@@ -1434,7 +1534,10 @@ export function findIO_<R, E, A, R1, E1>(
1434
1534
  *
1435
1535
  * @tsplus getter fncts.io.Stream flatten
1436
1536
  */
1437
- export function flatten<R, E, R1, E1, A>(self: Stream<R, E, Stream<R1, E1, A>>): Stream<R & R1, E | E1, A> {
1537
+ export function flatten<R, E, R1, E1, A>(
1538
+ self: Stream<R, E, Stream<R1, E1, A>>,
1539
+ __tsplusTrace?: string,
1540
+ ): Stream<R | R1, E | E1, A> {
1438
1541
  return self.flatMap(identity);
1439
1542
  }
1440
1543
 
@@ -1445,7 +1548,10 @@ export function flatten<R, E, R1, E1, A>(self: Stream<R, E, Stream<R1, E1, A>>):
1445
1548
  *
1446
1549
  * @tsplus getter fncts.io.Stream flattenExitOption
1447
1550
  */
1448
- export function flattenExitOption<R, E, E1, A>(stream: Stream<R, E, Exit<Maybe<E1>, A>>): Stream<R, E | E1, A> {
1551
+ export function flattenExitOption<R, E, E1, A>(
1552
+ stream: Stream<R, E, Exit<Maybe<E1>, A>>,
1553
+ __tsplusTrace?: string,
1554
+ ): Stream<R, E | E1, A> {
1449
1555
  const processChunk = (
1450
1556
  chunk: Conc<Exit<Maybe<E1>, A>>,
1451
1557
  cont: Channel<R, E, Conc<Exit<Maybe<E1>, A>>, unknown, E | E1, Conc<A>, any>,
@@ -1477,7 +1583,10 @@ export function flattenExitOption<R, E, E1, A>(stream: Stream<R, E, Exit<Maybe<E
1477
1583
  *
1478
1584
  * @tsplus getter fncts.io.Stream flattenTake
1479
1585
  */
1480
- export function flattenTake<R, E, E1, A>(stream: Stream<R, E, Take<E1, A>>): Stream<R, E | E1, A> {
1586
+ export function flattenTake<R, E, E1, A>(
1587
+ stream: Stream<R, E, Take<E1, A>>,
1588
+ __tsplusTrace?: string,
1589
+ ): Stream<R, E | E1, A> {
1481
1590
  return stream.map((take) => take.exit).flattenExitOption.flattenChunks;
1482
1591
  }
1483
1592
 
@@ -1487,7 +1596,7 @@ export function flattenTake<R, E, E1, A>(stream: Stream<R, E, Take<E1, A>>): Str
1487
1596
  *
1488
1597
  * @tsplus getter fncts.io.Stream flattenChunks
1489
1598
  */
1490
- export function flattenChunks<R, E, A>(stream: Stream<R, E, Conc<A>>): Stream<R, E, A> {
1599
+ export function flattenChunks<R, E, A>(stream: Stream<R, E, Conc<A>>, __tsplusTrace?: string): Stream<R, E, A> {
1491
1600
  return new Stream(stream.channel.mapOut((c) => c.flatten));
1492
1601
  }
1493
1602
 
@@ -1496,7 +1605,7 @@ export function flattenChunks<R, E, A>(stream: Stream<R, E, Conc<A>>): Stream<R,
1496
1605
  *
1497
1606
  * @tsplus getter fncts.io.Stream forever
1498
1607
  */
1499
- export function forever<R, E, A>(stream: Stream<R, E, A>): Stream<R, E, A> {
1608
+ export function forever<R, E, A>(stream: Stream<R, E, A>, __tsplusTrace?: string): Stream<R, E, A> {
1500
1609
  return new Stream(stream.channel.repeated);
1501
1610
  }
1502
1611
 
@@ -1505,7 +1614,7 @@ export function forever<R, E, A>(stream: Stream<R, E, A>): Stream<R, E, A> {
1505
1614
  *
1506
1615
  * @tsplus static fncts.io.StreamOps fromChunkNow
1507
1616
  */
1508
- export function fromChunkNow<O>(c: Conc<O>): Stream<unknown, never, O> {
1617
+ export function fromChunkNow<O>(c: Conc<O>, __tsplusTrace?: string): Stream<never, never, O> {
1509
1618
  return new Stream(Channel.defer(() => (c.isEmpty ? Channel.unit : Channel.writeNow(c))));
1510
1619
  }
1511
1620
 
@@ -1514,7 +1623,7 @@ export function fromChunkNow<O>(c: Conc<O>): Stream<unknown, never, O> {
1514
1623
  *
1515
1624
  * @tsplus static fncts.io.StreamOps fromChunk
1516
1625
  */
1517
- export function fromChunk<O>(c: Lazy<Conc<O>>): Stream<unknown, never, O> {
1626
+ export function fromChunk<O>(c: Lazy<Conc<O>>, __tsplusTrace?: string): Stream<never, never, O> {
1518
1627
  return new Stream(Channel.unwrap(IO.succeedNow(Channel.write(c))));
1519
1628
  }
1520
1629
 
@@ -1523,7 +1632,7 @@ export function fromChunk<O>(c: Lazy<Conc<O>>): Stream<unknown, never, O> {
1523
1632
  *
1524
1633
  * @tsplus static fncts.io.StreamOps scoped
1525
1634
  */
1526
- export function scoped<R, E, A>(stream: IO<R & Has<Scope>, E, A>): Stream<R, E, A> {
1635
+ export function scoped<R, E, A>(stream: IO<R, E, A>, __tsplusTrace?: string): Stream<Exclude<R, Scope>, E, A> {
1527
1636
  return new Stream(Channel.scoped(stream.map(Conc.single)));
1528
1637
  }
1529
1638
 
@@ -1532,7 +1641,7 @@ export function scoped<R, E, A>(stream: IO<R & Has<Scope>, E, A>): Stream<R, E,
1532
1641
  *
1533
1642
  * @tsplus static fncts.io.StreamOps fromIO
1534
1643
  */
1535
- export function fromIO<R, E, A>(fa: IO<R, E, A>): Stream<R, E, A> {
1644
+ export function fromIO<R, E, A>(fa: IO<R, E, A>, __tsplusTrace?: string): Stream<R, E, A> {
1536
1645
  return Stream.fromIOMaybe(fa.mapError(Maybe.just));
1537
1646
  }
1538
1647
 
@@ -1541,7 +1650,7 @@ export function fromIO<R, E, A>(fa: IO<R, E, A>): Stream<R, E, A> {
1541
1650
  *
1542
1651
  * @tsplus static fncts.io.StreamOps fromIOMaybe
1543
1652
  */
1544
- export function fromIOMaybe<R, E, A>(fa: IO<R, Maybe<E>, A>): Stream<R, E, A> {
1653
+ export function fromIOMaybe<R, E, A>(fa: IO<R, Maybe<E>, A>, __tsplusTrace?: string): Stream<R, E, A> {
1545
1654
  return new Stream(
1546
1655
  Channel.unwrap(
1547
1656
  fa.match(
@@ -1554,6 +1663,7 @@ export function fromIOMaybe<R, E, A>(fa: IO<R, Maybe<E>, A>): Stream<R, E, A> {
1554
1663
 
1555
1664
  function fromAsyncIterableLoop<A>(
1556
1665
  iterator: AsyncIterator<A>,
1666
+ __tsplusTrace?: string,
1557
1667
  ): Channel<unknown, unknown, unknown, unknown, never, Conc<A>, unknown> {
1558
1668
  return Channel.unwrap(
1559
1669
  IO.async<unknown, never, Channel<unknown, unknown, unknown, unknown, never, Conc<A>, unknown>>((k) => {
@@ -1571,14 +1681,18 @@ function fromAsyncIterableLoop<A>(
1571
1681
  /**
1572
1682
  * @tsplus static fncts.io.StreamOps fromAsyncIterable
1573
1683
  */
1574
- export function fromAsyncIterable<A>(iterable: AsyncIterable<A>): Stream<unknown, never, A> {
1684
+ export function fromAsyncIterable<A>(iterable: AsyncIterable<A>, __tsplusTrace?: string): Stream<unknown, never, A> {
1575
1685
  return new Stream(fromAsyncIterableLoop(iterable[Symbol.asyncIterator]()));
1576
1686
  }
1577
1687
 
1578
1688
  /**
1579
1689
  * @tsplus static fncts.io.StreamOps fromIterable
1580
1690
  */
1581
- export function fromIterable<A>(iterable: Iterable<A>, maxChunkSize = DEFAULT_CHUNK_SIZE): Stream<unknown, never, A> {
1691
+ export function fromIterable<A>(
1692
+ iterable: Iterable<A>,
1693
+ maxChunkSize = DEFAULT_CHUNK_SIZE,
1694
+ __tsplusTrace?: string,
1695
+ ): Stream<unknown, never, A> {
1582
1696
  return Stream.unwrap(
1583
1697
  IO.succeed(() => {
1584
1698
  const loop = (iterator: Iterator<A>): Channel<unknown, unknown, unknown, unknown, never, Conc<A>, unknown> =>
@@ -1610,7 +1724,7 @@ export function fromIterable<A>(iterable: Iterable<A>, maxChunkSize = DEFAULT_CH
1610
1724
  /**
1611
1725
  * @tsplus static fncts.io.StreamOps fromIterableSingle
1612
1726
  */
1613
- export function fromIterableSingle<A>(iterable: Iterable<A>): Stream<unknown, never, A> {
1727
+ export function fromIterableSingle<A>(iterable: Iterable<A>, __tsplusTrace?: string): Stream<unknown, never, A> {
1614
1728
  return Stream.fromIO(IO.succeed(iterable[Symbol.iterator]())).flatMap((iterator) =>
1615
1729
  Stream.repeatIOMaybe(
1616
1730
  IO.defer(() => {
@@ -1628,8 +1742,15 @@ export function fromIterableSingle<A>(iterable: Iterable<A>): Stream<unknown, ne
1628
1742
  /**
1629
1743
  * @tsplus static fncts.io.StreamOps fromPull
1630
1744
  */
1631
- export function fromPull<R, E, A>(scopedPull: IO<R & Has<Scope>, never, IO<R, Maybe<E>, Conc<A>>>): Stream<R, E, A> {
1632
- return Stream.unwrapScoped(scopedPull.map((pull) => Stream.repeatIOChunkMaybe(pull)));
1745
+ export function fromPull<R, E, A>(
1746
+ scopedPull: IO<R, never, IO<R, Maybe<E>, Conc<A>>>,
1747
+ __tsplusTrace?: string,
1748
+ ): Stream<Exclude<R, Scope>, E, A> {
1749
+ return Stream.unwrapScoped(scopedPull.map((pull) => Stream.repeatIOChunkMaybe(pull))) as Stream<
1750
+ Exclude<R, Scope>,
1751
+ E,
1752
+ A
1753
+ >;
1633
1754
  }
1634
1755
 
1635
1756
  /**
@@ -1640,6 +1761,7 @@ export function fromPull<R, E, A>(scopedPull: IO<R & Has<Scope>, never, IO<R, Ma
1640
1761
  export function fromQueue_<R, E, O>(
1641
1762
  queue: PQueue<never, R, unknown, E, never, O>,
1642
1763
  maxChunkSize: number = DEFAULT_CHUNK_SIZE,
1764
+ __tsplusTrace?: string,
1643
1765
  ): Stream<R, E, O> {
1644
1766
  return repeatIOChunkMaybe(
1645
1767
  queue
@@ -1663,6 +1785,7 @@ export function fromQueue_<R, E, O>(
1663
1785
  export function fromQueueWithShutdown<R, E, A>(
1664
1786
  queue: PQueue<never, R, unknown, E, never, A>,
1665
1787
  maxChunkSize: number = DEFAULT_CHUNK_SIZE,
1788
+ __tsplusTrace?: string,
1666
1789
  ): Stream<R, E, A> {
1667
1790
  return Stream.fromQueue(queue, maxChunkSize).ensuring(queue.shutdown);
1668
1791
  }
@@ -1672,7 +1795,7 @@ export function fromQueueWithShutdown<R, E, A>(
1672
1795
  *
1673
1796
  * @tsplus static fncts.io.StreamOps haltNow
1674
1797
  */
1675
- export function haltNow(u: unknown): Stream<unknown, never, never> {
1798
+ export function haltNow(u: unknown, __tsplusTrace?: string): Stream<never, never, never> {
1676
1799
  return new Stream(Channel.halt(u));
1677
1800
  }
1678
1801
 
@@ -1681,19 +1804,20 @@ export function haltNow(u: unknown): Stream<unknown, never, never> {
1681
1804
  *
1682
1805
  * @tsplus static fncts.io.StreamOps halt
1683
1806
  */
1684
- export function halt(u: Lazy<unknown>): Stream<unknown, never, never> {
1807
+ export function halt(u: Lazy<unknown>, __tsplusTrace?: string): Stream<never, never, never> {
1685
1808
  return new Stream(Channel.halt(u));
1686
1809
  }
1687
1810
 
1688
- function haltWhenWriter<R, E, A, R1, E1>(
1811
+ function haltWhenWriter<E, A, E1>(
1689
1812
  fiber: Fiber<E1, any>,
1690
- ): Channel<R & R1, E | E1, Conc<A>, unknown, E | E1, Conc<A>, void> {
1813
+ __tsplusTrace?: string,
1814
+ ): Channel<never, E | E1, Conc<A>, unknown, E | E1, Conc<A>, void> {
1691
1815
  return Channel.unwrap(
1692
1816
  fiber.poll.map((maybeExit) =>
1693
1817
  maybeExit.match(
1694
1818
  () =>
1695
1819
  Channel.readWith(
1696
- (i: Conc<A>) => Channel.writeNow(i).apSecond(haltWhenWriter<R, E, A, R1, E1>(fiber)),
1820
+ (i: Conc<A>) => Channel.writeNow(i).apSecond(haltWhenWriter<E, A, E1>(fiber)),
1697
1821
  Channel.failNow,
1698
1822
  () => Channel.unit,
1699
1823
  ),
@@ -1715,12 +1839,17 @@ function haltWhenWriter<R, E, A, R1, E1>(
1715
1839
  *
1716
1840
  * @tsplus fluent fncts.io.Stream haltWhen
1717
1841
  */
1718
- export function haltWhen_<R, E, A, R1, E1>(fa: Stream<R, E, A>, io: IO<R1, E1, any>): Stream<R & R1, E | E1, A> {
1842
+ export function haltWhen_<R, E, A, R1, E1>(
1843
+ fa: Stream<R, E, A>,
1844
+ io: IO<R1, E1, any>,
1845
+ __tsplusTrace?: string,
1846
+ ): Stream<R | R1, E | E1, A> {
1719
1847
  return new Stream(Channel.unwrapScoped(io.forkScoped.map((fiber) => fa.channel.pipeTo(haltWhenWriter(fiber)))));
1720
1848
  }
1721
1849
 
1722
1850
  function haltWhenFutureWriter<R, E, A, E1>(
1723
1851
  future: Future<E1, unknown>,
1852
+ __tsplusTrace?: string,
1724
1853
  ): Channel<R, E | E1, Conc<A>, unknown, E | E1, Conc<A>, void> {
1725
1854
  return Channel.unwrap(
1726
1855
  future.poll.map((maybeIO) =>
@@ -1744,7 +1873,11 @@ function haltWhenFutureWriter<R, E, A, E1>(
1744
1873
  *
1745
1874
  * @tsplus fluent fncts.io.Stream haltWhen
1746
1875
  */
1747
- export function haltWhenFuture_<R, E, A, E1>(fa: Stream<R, E, A>, future: Future<E1, any>): Stream<R, E | E1, A> {
1876
+ export function haltWhenFuture_<R, E, A, E1>(
1877
+ fa: Stream<R, E, A>,
1878
+ future: Future<E1, any>,
1879
+ __tsplusTrace?: string,
1880
+ ): Stream<R, E | E1, A> {
1748
1881
  return new Stream(fa.channel.pipeTo(haltWhenFutureWriter(future)));
1749
1882
  }
1750
1883
 
@@ -1754,11 +1887,15 @@ export function haltWhenFuture_<R, E, A, E1>(fa: Stream<R, E, A>, future: Future
1754
1887
  export function interleave_<R, E, A, R1, E1, B>(
1755
1888
  sa: Stream<R, E, A>,
1756
1889
  sb: Stream<R1, E1, B>,
1757
- ): Stream<R & R1, E | E1, A | B> {
1890
+ __tsplusTrace?: string,
1891
+ ): Stream<R | R1, E | E1, A | B> {
1758
1892
  return sa.interleaveWith(sb, Stream.fromChunk(Conc(true, false)).forever);
1759
1893
  }
1760
1894
 
1761
- function interleaveWithProducer<R, E, A>(handoff: Handoff<Take<E, A>>): Channel<R, E, A, unknown, never, never, void> {
1895
+ function interleaveWithProducer<E, A>(
1896
+ handoff: Handoff<Take<E, A>>,
1897
+ __tsplusTrace?: string,
1898
+ ): Channel<never, E, A, unknown, never, never, void> {
1762
1899
  return Channel.readWithCause(
1763
1900
  (value: A) => Channel.fromIO(handoff.offer(Take.single(value))).apSecond(interleaveWithProducer(handoff)),
1764
1901
  (cause) => Channel.fromIO(handoff.offer(Take.failCause(cause))),
@@ -1780,7 +1917,8 @@ export function interleaveWith_<R, E, A, R1, E1, B, R2, E2>(
1780
1917
  sa: Stream<R, E, A>,
1781
1918
  sb: Stream<R1, E1, B>,
1782
1919
  b: Stream<R2, E2, boolean>,
1783
- ): Stream<R & R1 & R2, E | E1 | E2, A | B> {
1920
+ __tsplusTrace?: string,
1921
+ ): Stream<R | R1 | R2, E | E1 | E2, A | B> {
1784
1922
  return new Stream(
1785
1923
  Channel.unwrapScoped(
1786
1924
  Do((Δ) => {
@@ -1793,7 +1931,7 @@ export function interleaveWith_<R, E, A, R1, E1, B, R2, E2>(
1793
1931
  const process = (
1794
1932
  leftDone: boolean,
1795
1933
  rightDone: boolean,
1796
- ): Channel<R & R1 & R2, E | E1 | E2, boolean, unknown, E | E1 | E2, Conc<A | B>, void> =>
1934
+ ): Channel<R | R1 | R2, E | E1 | E2, boolean, unknown, E | E1 | E2, Conc<A | B>, void> =>
1797
1935
  Channel.readWithCause(
1798
1936
  (b: boolean) => {
1799
1937
  if (b && !leftDone) {
@@ -1824,6 +1962,7 @@ export function interleaveWith_<R, E, A, R1, E1, B, R2, E2>(
1824
1962
  function intersperseWriter<R, E, A, A1>(
1825
1963
  middle: A1,
1826
1964
  isFirst: boolean,
1965
+ __tsplusTrace?: string,
1827
1966
  ): Channel<R, E, Conc<A>, unknown, E, Conc<A | A1>, void> {
1828
1967
  return Channel.readWith(
1829
1968
  (inp: Conc<A>) => {
@@ -1848,7 +1987,11 @@ function intersperseWriter<R, E, A, A1>(
1848
1987
  /**
1849
1988
  * Intersperse stream with provided element
1850
1989
  */
1851
- export function intersperse_<R, E, A, A1>(stream: Stream<R, E, A>, middle: A1): Stream<R, E, A | A1> {
1990
+ export function intersperse_<R, E, A, A1>(
1991
+ stream: Stream<R, E, A>,
1992
+ middle: A1,
1993
+ __tsplusTrace?: string,
1994
+ ): Stream<R, E, A | A1> {
1852
1995
  return new Stream(stream.channel.pipeTo(intersperseWriter(middle, true)));
1853
1996
  }
1854
1997
 
@@ -1865,7 +2008,8 @@ export function intersperse_<R, E, A, A1>(stream: Stream<R, E, A>, middle: A1):
1865
2008
  export function interruptWhen_<R, E, A, R1, E1>(
1866
2009
  stream: Stream<R, E, A>,
1867
2010
  io: IO<R1, E1, any>,
1868
- ): Stream<R & R1, E | E1, A> {
2011
+ __tsplusTrace?: string,
2012
+ ): Stream<R | R1, E | E1, A> {
1869
2013
  return new Stream(stream.channel.interruptWhen(io));
1870
2014
  }
1871
2015
 
@@ -1875,6 +2019,7 @@ export function interruptWhen_<R, E, A, R1, E1>(
1875
2019
  export function interruptWhenFuture_<R, E, A, E1>(
1876
2020
  fa: Stream<R, E, A>,
1877
2021
  future: Future<E1, unknown>,
2022
+ __tsplusTrace?: string,
1878
2023
  ): Stream<R, E | E1, A> {
1879
2024
  return new Stream(fa.channel.interruptWhen(future));
1880
2025
  }
@@ -1884,14 +2029,15 @@ export function interruptWhenFuture_<R, E, A, E1>(
1884
2029
  *
1885
2030
  * @tsplus fluent fncts.io.Stream map
1886
2031
  */
1887
- export function map_<R, E, A, B>(stream: Stream<R, E, A>, f: (o: A) => B): Stream<R, E, B> {
2032
+ export function map_<R, E, A, B>(stream: Stream<R, E, A>, f: (o: A) => B, __tsplusTrace?: string): Stream<R, E, B> {
1888
2033
  return new Stream(stream.channel.mapOut((as) => as.map(f)));
1889
2034
  }
1890
2035
 
1891
2036
  function mapAccumAccumulator<S, E = never, A = never, B = never>(
1892
2037
  currS: S,
1893
2038
  f: (s: S, a: A) => readonly [S, B],
1894
- ): Channel<unknown, E, Conc<A>, unknown, E, Conc<B>, void> {
2039
+ __tsplusTrace?: string,
2040
+ ): Channel<never, E, Conc<A>, unknown, E, Conc<B>, void> {
1895
2041
  return Channel.readWith(
1896
2042
  (inp: Conc<A>) => {
1897
2043
  const [nextS, bs] = inp.mapAccum(currS, f);
@@ -1911,6 +2057,7 @@ export function mapAccum_<R, E, A, S, B>(
1911
2057
  stream: Stream<R, E, A>,
1912
2058
  s: S,
1913
2059
  f: (s: S, a: A) => readonly [S, B],
2060
+ __tsplusTrace?: string,
1914
2061
  ): Stream<R, E, B> {
1915
2062
  return new Stream(stream.channel.pipeTo(mapAccumAccumulator(s, f)));
1916
2063
  }
@@ -1918,7 +2065,8 @@ export function mapAccum_<R, E, A, S, B>(
1918
2065
  function mapAccumIOAccumulator<R, E, A, R1, E1, S, B>(
1919
2066
  s: S,
1920
2067
  f: (s: S, a: A) => IO<R1, E1, readonly [B, S]>,
1921
- ): Channel<R & R1, E, Conc<A>, unknown, E | E1, Conc<B>, void> {
2068
+ __tsplusTrace?: string,
2069
+ ): Channel<R | R1, E, Conc<A>, unknown, E | E1, Conc<B>, void> {
1922
2070
  return Channel.readWith(
1923
2071
  (inp: Conc<A>) =>
1924
2072
  Channel.unwrap(
@@ -1935,7 +2083,7 @@ function mapAccumIOAccumulator<R, E, A, R1, E1, S, B>(
1935
2083
  ? Channel.writeNow(partialResult).apSecond(Channel.failNow(e))
1936
2084
  : Channel.failNow(e);
1937
2085
  },
1938
- (s) => Channel.writeNow(outputChunk.result()).apSecond(mapAccumIOAccumulator(s, f)),
2086
+ (s) => Channel.writeNow(outputChunk.result()).apSecond(mapAccumIOAccumulator<R, E, A, R1, E1, S, B>(s, f)),
1939
2087
  );
1940
2088
  }),
1941
2089
  ),
@@ -1954,7 +2102,8 @@ export function mapAccumIO_<R, E, A, R1, E1, S, B>(
1954
2102
  stream: Stream<R, E, A>,
1955
2103
  s: S,
1956
2104
  f: (s: S, a: A) => IO<R1, E1, readonly [B, S]>,
1957
- ): Stream<R & R1, E | E1, B> {
2105
+ __tsplusTrace?: string,
2106
+ ): Stream<R | R1, E | E1, B> {
1958
2107
  return new Stream(stream.channel.pipeTo(mapAccumIOAccumulator(s, f)));
1959
2108
  }
1960
2109
 
@@ -1963,7 +2112,11 @@ export function mapAccumIO_<R, E, A, R1, E1, S, B>(
1963
2112
  *
1964
2113
  * @tsplus fluent fncts.io.Stream mapChunks
1965
2114
  */
1966
- export function mapChunks_<R, E, A, A1>(stream: Stream<R, E, A>, f: (chunk: Conc<A>) => Conc<A1>): Stream<R, E, A1> {
2115
+ export function mapChunks_<R, E, A, A1>(
2116
+ stream: Stream<R, E, A>,
2117
+ f: (chunk: Conc<A>) => Conc<A1>,
2118
+ __tsplusTrace?: string,
2119
+ ): Stream<R, E, A1> {
1967
2120
  return new Stream(stream.channel.mapOut(f));
1968
2121
  }
1969
2122
 
@@ -1975,7 +2128,8 @@ export function mapChunks_<R, E, A, A1>(stream: Stream<R, E, A>, f: (chunk: Conc
1975
2128
  export function mapChunksIO_<R, E, A, R1, E1, B>(
1976
2129
  stream: Stream<R, E, A>,
1977
2130
  f: (chunk: Conc<A>) => IO<R1, E1, Conc<B>>,
1978
- ): Stream<R & R1, E | E1, B> {
2131
+ __tsplusTrace?: string,
2132
+ ): Stream<R | R1, E | E1, B> {
1979
2133
  return new Stream(stream.channel.mapOutIO(f));
1980
2134
  }
1981
2135
 
@@ -1985,7 +2139,11 @@ export function mapChunksIO_<R, E, A, R1, E1, B>(
1985
2139
  *
1986
2140
  * @tsplus fluent fncts.io.Stream mapConcat
1987
2141
  */
1988
- export function mapConcat_<R, E, A, B>(stream: Stream<R, E, A>, f: (a: A) => Iterable<B>): Stream<R, E, B> {
2142
+ export function mapConcat_<R, E, A, B>(
2143
+ stream: Stream<R, E, A>,
2144
+ f: (a: A) => Iterable<B>,
2145
+ __tsplusTrace?: string,
2146
+ ): Stream<R, E, B> {
1989
2147
  return stream.mapConcatChunk((a) => Conc.from(f(a)));
1990
2148
  }
1991
2149
 
@@ -1995,7 +2153,11 @@ export function mapConcat_<R, E, A, B>(stream: Stream<R, E, A>, f: (a: A) => Ite
1995
2153
  *
1996
2154
  * @tsplus fluent fncts.io.Stream mapConcatChunk
1997
2155
  */
1998
- export function mapConcatChunk_<R, E, A, B>(stream: Stream<R, E, A>, f: (a: A) => Conc<B>): Stream<R, E, B> {
2156
+ export function mapConcatChunk_<R, E, A, B>(
2157
+ stream: Stream<R, E, A>,
2158
+ f: (a: A) => Conc<B>,
2159
+ __tsplusTrace?: string,
2160
+ ): Stream<R, E, B> {
1999
2161
  return stream.mapChunks((c) => c.flatMap(f));
2000
2162
  }
2001
2163
 
@@ -2008,7 +2170,8 @@ export function mapConcatChunk_<R, E, A, B>(stream: Stream<R, E, A>, f: (a: A) =
2008
2170
  export function mapConcatChunkIO_<R, E, A, R1, E1, B>(
2009
2171
  stream: Stream<R, E, A>,
2010
2172
  f: (a: A) => IO<R1, E1, Conc<B>>,
2011
- ): Stream<R & R1, E | E1, B> {
2173
+ __tsplusTrace?: string,
2174
+ ): Stream<R | R1, E | E1, B> {
2012
2175
  return stream.mapIO(f).mapConcatChunk(identity);
2013
2176
  }
2014
2177
 
@@ -2021,7 +2184,8 @@ export function mapConcatChunkIO_<R, E, A, R1, E1, B>(
2021
2184
  export function mapConcatIO_<R, E, A, R1, E1, B>(
2022
2185
  stream: Stream<R, E, A>,
2023
2186
  f: (a: A) => IO<R1, E1, Iterable<B>>,
2024
- ): Stream<R & R1, E | E1, B> {
2187
+ __tsplusTrace?: string,
2188
+ ): Stream<R | R1, E | E1, B> {
2025
2189
  return stream.mapIO((a) => f(a).map(Conc.from)).mapConcatChunk(identity);
2026
2190
  }
2027
2191
 
@@ -2030,7 +2194,11 @@ export function mapConcatIO_<R, E, A, R1, E1, B>(
2030
2194
  *
2031
2195
  * @tsplus fluent fncts.io.Stream mapError
2032
2196
  */
2033
- export function mapError_<R, E, E1, A>(stream: Stream<R, E, A>, f: (e: E) => E1): Stream<R, E1, A> {
2197
+ export function mapError_<R, E, E1, A>(
2198
+ stream: Stream<R, E, A>,
2199
+ f: (e: E) => E1,
2200
+ __tsplusTrace?: string,
2201
+ ): Stream<R, E1, A> {
2034
2202
  return new Stream(stream.channel.mapError(f));
2035
2203
  }
2036
2204
 
@@ -2039,7 +2207,11 @@ export function mapError_<R, E, E1, A>(stream: Stream<R, E, A>, f: (e: E) => E1)
2039
2207
  *
2040
2208
  * @tsplus fluent fncts.io.Stream mapErrorCause
2041
2209
  */
2042
- export function mapErrorCause_<R, E, A, E1>(fa: Stream<R, E, A>, f: (e: Cause<E>) => Cause<E1>): Stream<R, E1, A> {
2210
+ export function mapErrorCause_<R, E, A, E1>(
2211
+ fa: Stream<R, E, A>,
2212
+ f: (e: Cause<E>) => Cause<E1>,
2213
+ __tsplusTrace?: string,
2214
+ ): Stream<R, E1, A> {
2043
2215
  return new Stream(fa.channel.mapErrorCause(f));
2044
2216
  }
2045
2217
 
@@ -2051,14 +2223,16 @@ export function mapErrorCause_<R, E, A, E1>(fa: Stream<R, E, A>, f: (e: Cause<E>
2051
2223
  export function mapIO_<R, E, A, R1, E1, B>(
2052
2224
  stream: Stream<R, E, A>,
2053
2225
  f: (a: A) => IO<R1, E1, B>,
2054
- ): Stream<R & R1, E | E1, B> {
2226
+ __tsplusTrace?: string,
2227
+ ): Stream<R | R1, E | E1, B> {
2055
2228
  return new Stream(stream.channel.pipeTo(mapIOLoop(Iterable.empty<A>()[Symbol.iterator](), f)));
2056
2229
  }
2057
2230
 
2058
2231
  function mapIOLoop<R, E, A, R1, E1, B>(
2059
2232
  iterator: Iterator<A>,
2060
2233
  f: (a: A) => IO<R1, E1, B>,
2061
- ): Channel<R & R1, E, Conc<A>, unknown, E | E1, Conc<B>, unknown> {
2234
+ __tsplusTrace?: string,
2235
+ ): Channel<R | R1, E, Conc<A>, unknown, E | E1, Conc<B>, unknown> {
2062
2236
  const next = iterator.next();
2063
2237
  if (next.done) {
2064
2238
  return Channel.readWithCause(
@@ -2086,7 +2260,8 @@ export function mapIOC_<R, E, A, R1, E1, B>(
2086
2260
  stream: Stream<R, E, A>,
2087
2261
  n: number,
2088
2262
  f: (a: A) => IO<R1, E1, B>,
2089
- ): Stream<R & R1, E | E1, B> {
2263
+ __tsplusTrace?: string,
2264
+ ): Stream<R | R1, E | E1, B> {
2090
2265
  return new Stream(stream.channel.concatMap(Channel.writeChunk).mapOutIOC(n, f).mapOut(Conc.single));
2091
2266
  }
2092
2267
 
@@ -2103,7 +2278,8 @@ export function mergeMap_<R, E, A, R1, E1, B>(
2103
2278
  f: (a: A) => Stream<R1, E1, B>,
2104
2279
  n: number,
2105
2280
  bufferSize = 16,
2106
- ): Stream<R & R1, E | E1, B> {
2281
+ __tsplusTrace?: string,
2282
+ ): Stream<R | R1, E | E1, B> {
2107
2283
  return new Stream(ma.channel.concatMap(Channel.writeChunk).mergeMap((a) => f(a).channel, n, bufferSize));
2108
2284
  }
2109
2285
 
@@ -2119,7 +2295,8 @@ export function mergeMapIO_<R, E, A, R1, E1, B>(
2119
2295
  f: (a: A) => IO<R1, E1, B>,
2120
2296
  n: number,
2121
2297
  bufferSize = 16,
2122
- ): Stream<R & R1, E | E1, B> {
2298
+ __tsplusTrace?: string,
2299
+ ): Stream<R | R1, E | E1, B> {
2123
2300
  return stream.mergeMap((a) => Stream.fromIO(f(a)), n, bufferSize);
2124
2301
  }
2125
2302
 
@@ -2129,12 +2306,14 @@ export function mergeMapIO_<R, E, A, R1, E1, B>(
2129
2306
  export function mergeEither_<R, E, A, R1, E1, B>(
2130
2307
  fa: Stream<R, E, A>,
2131
2308
  fb: Stream<R1, E1, B>,
2132
- ): Stream<R & R1, E | E1, Either<A, B>> {
2309
+ __tsplusTrace?: string,
2310
+ ): Stream<R | R1, E | E1, Either<A, B>> {
2133
2311
  return fa.mergeWith(fb, Either.left, Either.right);
2134
2312
  }
2135
2313
 
2136
2314
  export function mergeWithHandler<R, E>(
2137
2315
  terminate: boolean,
2316
+ __tsplusTrace?: string,
2138
2317
  ): (exit: Exit<E, unknown>) => MergeDecision<R, E, unknown, E, unknown> {
2139
2318
  return (exit) =>
2140
2319
  terminate || !exit.isSuccess() ? MergeDecision.Done(IO.fromExitNow(exit)) : MergeDecision.Await(IO.fromExitNow);
@@ -2151,8 +2330,9 @@ export function mergeWith_<R, E, A, R1, E1, A1, B, C>(
2151
2330
  l: (a: A) => B,
2152
2331
  r: (b: A1) => C,
2153
2332
  strategy: TerminationStrategy = "Both",
2154
- ): Stream<R & R1, E | E1, B | C> {
2155
- return new Stream<R & R1, E | E1, B | C>(
2333
+ __tsplusTrace?: string,
2334
+ ): Stream<R | R1, E | E1, B | C> {
2335
+ return new Stream<R | R1, E | E1, B | C>(
2156
2336
  sa
2157
2337
  .map(l)
2158
2338
  .channel.mergeWith(
@@ -2173,7 +2353,8 @@ export function mergeWith_<R, E, A, R1, E1, A1, B, C>(
2173
2353
  export function onError_<R, E, A, R1>(
2174
2354
  stream: Stream<R, E, A>,
2175
2355
  cleanup: (e: Cause<E>) => IO<R1, never, any>,
2176
- ): Stream<R & R1, E, A> {
2356
+ __tsplusTrace?: string,
2357
+ ): Stream<R | R1, E, A> {
2177
2358
  return stream.catchAllCause((cause) => fromIO(cleanup(cause).apSecond(IO.failCauseNow(cause))));
2178
2359
  }
2179
2360
 
@@ -2187,8 +2368,9 @@ export function onError_<R, E, A, R1>(
2187
2368
  export function orElse_<R, E, A, R1, E1, A1>(
2188
2369
  stream: Stream<R, E, A>,
2189
2370
  that: Lazy<Stream<R1, E1, A1>>,
2190
- ): Stream<R & R1, E1, A | A1> {
2191
- return new Stream<R & R1, E1, A | A1>(stream.channel.orElse(that().channel));
2371
+ __tsplusTrace?: string,
2372
+ ): Stream<R | R1, E1, A | A1> {
2373
+ return new Stream<R | R1, E1, A | A1>(stream.channel.orElse(that().channel));
2192
2374
  }
2193
2375
 
2194
2376
  /**
@@ -2201,7 +2383,8 @@ export function orElse_<R, E, A, R1, E1, A1>(
2201
2383
  export function orElseEither_<R, E, A, R1, E1, A1>(
2202
2384
  stream: Stream<R, E, A>,
2203
2385
  that: Lazy<Stream<R1, E1, A1>>,
2204
- ): Stream<R & R1, E1, Either<A, A1>> {
2386
+ __tsplusTrace?: string,
2387
+ ): Stream<R | R1, E1, Either<A, A1>> {
2205
2388
  return stream.map(Either.left).orElse(that().map(Either.right));
2206
2389
  }
2207
2390
 
@@ -2212,7 +2395,11 @@ export function orElseEither_<R, E, A, R1, E1, A1>(
2212
2395
  *
2213
2396
  * @tsplus fluent fncts.io.Stream orElseFail
2214
2397
  */
2215
- export function orElseFail_<R, E, A, E1>(stream: Stream<R, E, A>, e: Lazy<E1>): Stream<R, E1, A> {
2398
+ export function orElseFail_<R, E, A, E1>(
2399
+ stream: Stream<R, E, A>,
2400
+ e: Lazy<E1>,
2401
+ __tsplusTrace?: string,
2402
+ ): Stream<R, E1, A> {
2216
2403
  return stream.orElse(Stream.failNow(e()));
2217
2404
  }
2218
2405
 
@@ -2224,7 +2411,8 @@ export function orElseFail_<R, E, A, E1>(stream: Stream<R, E, A>, e: Lazy<E1>):
2224
2411
  export function orElseOptional_<R, E, A, R1, E1, A1>(
2225
2412
  stream: Stream<R, Maybe<E>, A>,
2226
2413
  that: Lazy<Stream<R1, Maybe<E1>, A1>>,
2227
- ): Stream<R & R1, Maybe<E | E1>, A | A1> {
2414
+ __tsplusTrace?: string,
2415
+ ): Stream<R | R1, Maybe<E | E1>, A | A1> {
2228
2416
  return stream.catchAll((maybeError) =>
2229
2417
  maybeError.match(
2230
2418
  () => that(),
@@ -2238,7 +2426,11 @@ export function orElseOptional_<R, E, A, R1, E1, A1>(
2238
2426
  *
2239
2427
  * @tsplus fluent fncts.io.Stream orElseSucceed
2240
2428
  */
2241
- export function orElseSucceed_<R, E, A, A1>(stream: Stream<R, E, A>, a: Lazy<A1>): Stream<R, never, A | A1> {
2429
+ export function orElseSucceed_<R, E, A, A1>(
2430
+ stream: Stream<R, E, A>,
2431
+ a: Lazy<A1>,
2432
+ __tsplusTrace?: string,
2433
+ ): Stream<R, never, A | A1> {
2242
2434
  return stream.orElse(Stream.succeedNow(a()));
2243
2435
  }
2244
2436
 
@@ -2248,7 +2440,8 @@ export function orElseSucceed_<R, E, A, A1>(stream: Stream<R, E, A>, a: Lazy<A1>
2248
2440
  export function pipeThrough_<R, E, A, R1, E1, L, Z>(
2249
2441
  ma: Stream<R, E, A>,
2250
2442
  sa: Sink<R1, E1, A, L, Z>,
2251
- ): Stream<R & R1, E | E1, L> {
2443
+ __tsplusTrace?: string,
2444
+ ): Stream<R | R1, E | E1, L> {
2252
2445
  return new Stream(ma.channel.pipeToOrFail(sa.channel));
2253
2446
  }
2254
2447
 
@@ -2258,7 +2451,11 @@ export function pipeThrough_<R, E, A, R1, E1, L, Z>(
2258
2451
  *
2259
2452
  * @tsplus fluent fncts.io.Stream provideEnvironment
2260
2453
  */
2261
- export function provideEnvironment_<R, E, A>(ra: Stream<R, E, A>, r: Environment<R>): Stream<unknown, E, A> {
2454
+ export function provideEnvironment_<R, E, A>(
2455
+ ra: Stream<R, E, A>,
2456
+ r: Environment<R>,
2457
+ __tsplusTrace?: string,
2458
+ ): Stream<never, E, A> {
2262
2459
  return new Stream(ra.channel.provideEnvironment(r));
2263
2460
  }
2264
2461
 
@@ -2280,7 +2477,7 @@ export function provideSomeLayer_<R, E, A, RIn, E1, ROut>(
2280
2477
  self: Stream<R, E, A>,
2281
2478
  layer: Layer<RIn, E1, ROut>,
2282
2479
  __tsplusTrace?: string,
2283
- ): Stream<RIn & Erase<R, ROut>, E | E1, A> {
2480
+ ): Stream<RIn | Exclude<R, ROut>, E | E1, A> {
2284
2481
  // @ts-expect-error
2285
2482
  return self.provideLayer(Layer.environment<RIn>().and(layer));
2286
2483
  }
@@ -2306,7 +2503,7 @@ class Rechunker<A> {
2306
2503
  return null;
2307
2504
  }
2308
2505
 
2309
- emitOfNotEmpty(): Channel<unknown, unknown, unknown, unknown, never, Conc<A>, void> {
2506
+ emitOfNotEmpty(): Channel<never, unknown, unknown, unknown, never, Conc<A>, void> {
2310
2507
  if (this.pos !== 0) {
2311
2508
  return Channel.writeNow(Conc.from(this.builder));
2312
2509
  } else {
@@ -2323,7 +2520,8 @@ class Rechunker<A> {
2323
2520
  function rechunkProcess<E, In>(
2324
2521
  rechunker: Rechunker<In>,
2325
2522
  target: number,
2326
- ): Channel<unknown, E, Conc<In>, unknown, E, Conc<In>, unknown> {
2523
+ __tsplusTrace?: string,
2524
+ ): Channel<never, E, Conc<In>, unknown, E, Conc<In>, unknown> {
2327
2525
  return Channel.readWithCause(
2328
2526
  (chunk: Conc<In>) => {
2329
2527
  if (chunk.length === target && rechunker.isEmpty) {
@@ -2360,7 +2558,7 @@ function rechunkProcess<E, In>(
2360
2558
  *
2361
2559
  * @tsplus fluent fncts.io.Stream rechunk
2362
2560
  */
2363
- export function rechunk_<R, E, A>(stream: Stream<R, E, A>, n: number): Stream<R, E, A> {
2561
+ export function rechunk_<R, E, A>(stream: Stream<R, E, A>, n: number, __tsplusTrace?: string): Stream<R, E, A> {
2364
2562
  return new Stream(stream.channel.pipeTo(rechunkProcess(new Rechunker(n), n)));
2365
2563
  }
2366
2564
 
@@ -2369,7 +2567,7 @@ export function rechunk_<R, E, A>(stream: Stream<R, E, A>, n: number): Stream<R,
2369
2567
  *
2370
2568
  * @tsplus static fncts.io.StreamOps repeatValue
2371
2569
  */
2372
- export function repeatValue<A>(a: A): Stream<unknown, never, A> {
2570
+ export function repeatValue<A>(a: A, __tsplusTrace?: string): Stream<unknown, never, A> {
2373
2571
  return new Stream(Channel.writeNow(Conc.single(a)).repeated);
2374
2572
  }
2375
2573
 
@@ -2378,7 +2576,7 @@ export function repeatValue<A>(a: A): Stream<unknown, never, A> {
2378
2576
  *
2379
2577
  * @tsplus static fncts.io.StreamOps repeatIO
2380
2578
  */
2381
- export function repeatIO<R, E, A>(fa: IO<R, E, A>): Stream<R, E, A> {
2579
+ export function repeatIO<R, E, A>(fa: IO<R, E, A>, __tsplusTrace?: string): Stream<R, E, A> {
2382
2580
  return Stream.repeatIOMaybe(fa.mapError(Maybe.just));
2383
2581
  }
2384
2582
 
@@ -2387,7 +2585,7 @@ export function repeatIO<R, E, A>(fa: IO<R, E, A>): Stream<R, E, A> {
2387
2585
  *
2388
2586
  * @tsplus static fncts.io.StreamOps repeatIOMaybe
2389
2587
  */
2390
- export function repeatIOMaybe<R, E, A>(fa: IO<R, Maybe<E>, A>): Stream<R, E, A> {
2588
+ export function repeatIOMaybe<R, E, A>(fa: IO<R, Maybe<E>, A>, __tsplusTrace?: string): Stream<R, E, A> {
2391
2589
  return repeatIOChunkMaybe(fa.map(Conc.single));
2392
2590
  }
2393
2591
 
@@ -2396,7 +2594,7 @@ export function repeatIOMaybe<R, E, A>(fa: IO<R, Maybe<E>, A>): Stream<R, E, A>
2396
2594
  *
2397
2595
  * @tsplus static fncts.io.StreamOps repeatIOChunk
2398
2596
  */
2399
- export function repeatIOChunk<R, E, A>(fa: IO<R, E, Conc<A>>): Stream<R, E, A> {
2597
+ export function repeatIOChunk<R, E, A>(fa: IO<R, E, Conc<A>>, __tsplusTrace?: string): Stream<R, E, A> {
2400
2598
  return repeatIOChunkMaybe(fa.mapError(Maybe.just));
2401
2599
  }
2402
2600
 
@@ -2405,7 +2603,7 @@ export function repeatIOChunk<R, E, A>(fa: IO<R, E, Conc<A>>): Stream<R, E, A> {
2405
2603
  *
2406
2604
  * @tsplus static fncts.io.StreamOps repeatIOChunkMaybe
2407
2605
  */
2408
- export function repeatIOChunkMaybe<R, E, A>(fa: IO<R, Maybe<E>, Conc<A>>): Stream<R, E, A> {
2606
+ export function repeatIOChunkMaybe<R, E, A>(fa: IO<R, Maybe<E>, Conc<A>>, __tsplusTrace?: string): Stream<R, E, A> {
2409
2607
  return Stream.unfoldChunkIO(undefined, (_) =>
2410
2608
  fa
2411
2609
  .map((chunk) => Maybe.just(tuple(chunk, undefined)))
@@ -2421,7 +2619,8 @@ export function repeatIOChunkMaybe<R, E, A>(fa: IO<R, Maybe<E>, Conc<A>>): Strea
2421
2619
  export function run_<R, E, A, R2, E2, Z>(
2422
2620
  stream: Stream<R, E, A>,
2423
2621
  sink: Sink<R2, E2, A, unknown, Z>,
2424
- ): IO<R & R2, E | E2, Z> {
2622
+ __tsplusTrace?: string,
2623
+ ): IO<R | R2, E | E2, Z> {
2425
2624
  return stream.channel.pipeToOrFail(sink.channel).runDrain;
2426
2625
  }
2427
2626
 
@@ -2430,7 +2629,7 @@ export function run_<R, E, A, R2, E2, Z>(
2430
2629
  *
2431
2630
  * @tsplus getter fncts.io.Stream runCollect
2432
2631
  */
2433
- export function runCollect<R, E, A>(stream: Stream<R, E, A>): IO<R, E, Conc<A>> {
2632
+ export function runCollect<R, E, A>(stream: Stream<R, E, A>, __tsplusTrace?: string): IO<R, E, Conc<A>> {
2434
2633
  return stream.run(Sink.collectAll());
2435
2634
  }
2436
2635
 
@@ -2439,7 +2638,7 @@ export function runCollect<R, E, A>(stream: Stream<R, E, A>): IO<R, E, Conc<A>>
2439
2638
  *
2440
2639
  * @tsplus getter fncts.io.Stream runDrain
2441
2640
  */
2442
- export function runDrain<R, E, A>(stream: Stream<R, E, A>): IO<R, E, void> {
2641
+ export function runDrain<R, E, A>(stream: Stream<R, E, A>, __tsplusTrace?: string): IO<R, E, void> {
2443
2642
  return stream.run(Sink.drain);
2444
2643
  }
2445
2644
 
@@ -2449,7 +2648,8 @@ export function runDrain<R, E, A>(stream: Stream<R, E, A>): IO<R, E, void> {
2449
2648
  export function runForeachScoped_<R, E, A, R2, E2>(
2450
2649
  self: Stream<R, E, A>,
2451
2650
  f: (a: A) => IO<R2, E2, any>,
2452
- ): IO<R & R2 & Has<Scope>, E | E2, void> {
2651
+ __tsplusTrace?: string,
2652
+ ): IO<R | R2 | Scope, E | E2, void> {
2453
2653
  return self.runScoped(Sink.foreach(f));
2454
2654
  }
2455
2655
 
@@ -2462,8 +2662,9 @@ export function runForeachScoped_<R, E, A, R2, E2>(
2462
2662
  export function runIntoElementsScoped_<R, E, A, R1, E1>(
2463
2663
  stream: Stream<R, E, A>,
2464
2664
  queue: PQueue<R1, unknown, never, never, Exit<Maybe<E | E1>, A>, unknown>,
2465
- ): IO<R & R1 & Has<Scope>, E | E1, void> {
2466
- const writer: Channel<R & R1, E, Conc<A>, unknown, never, Exit<Maybe<E | E1>, A>, unknown> = Channel.readWith(
2665
+ __tsplusTrace?: string,
2666
+ ): IO<R | R1 | Scope, E | E1, void> {
2667
+ const writer: Channel<R | R1, E, Conc<A>, unknown, never, Exit<Maybe<E | E1>, A>, unknown> = Channel.readWith(
2467
2668
  (inp: Conc<A>) =>
2468
2669
  inp
2469
2670
  .foldLeft(
@@ -2486,7 +2687,8 @@ export function runIntoElementsScoped_<R, E, A, R1, E1>(
2486
2687
  export function runIntoQueueScoped_<R, R1, E extends E1, E1, A>(
2487
2688
  stream: Stream<R, E, A>,
2488
2689
  queue: PQueue<R1, never, never, unknown, Take<E1, A>, any>,
2489
- ): IO<R & R1 & Has<Scope>, E | E1, void> {
2690
+ __tsplusTrace?: string,
2691
+ ): IO<R | R1 | Scope, E | E1, void> {
2490
2692
  const writer: Channel<R, E, Conc<A>, unknown, E, Take<E | E1, A>, any> = Channel.readWithCause(
2491
2693
  (inp) => Channel.writeNow(Take.chunk(inp)).apSecond(writer),
2492
2694
  (cause) => Channel.writeNow(Take.failCause(cause)),
@@ -2505,7 +2707,8 @@ export function runIntoQueueScoped_<R, R1, E extends E1, E1, A>(
2505
2707
  export function runIntoHubScoped_<R, R1, E extends E1, E1, A>(
2506
2708
  stream: Stream<R, E, A>,
2507
2709
  hub: PHub<R1, never, never, unknown, Take<E1, A>, any>,
2508
- ): IO<R & R1 & Has<Scope>, E | E1, void> {
2710
+ __tsplusTrace?: string,
2711
+ ): IO<R | R1 | Scope, E | E1, void> {
2509
2712
  return stream.runIntoQueueScoped(hub.toQueue);
2510
2713
  }
2511
2714
 
@@ -2517,7 +2720,8 @@ export function runIntoHubScoped_<R, R1, E extends E1, E1, A>(
2517
2720
  export function runScoped_<R, E, A, R2, E2, Z>(
2518
2721
  stream: Stream<R, E, A>,
2519
2722
  sink: Sink<R2, E2, A, unknown, Z>,
2520
- ): IO<R & R2 & Has<Scope>, E | E2, Z> {
2723
+ __tsplusTrace?: string,
2724
+ ): IO<R | R2 | Scope, E | E2, Z> {
2521
2725
  return stream.channel.pipeToOrFail(sink.channel).drain.runScoped;
2522
2726
  }
2523
2727
 
@@ -2527,7 +2731,12 @@ export function runScoped_<R, E, A, R2, E2, Z>(
2527
2731
  *
2528
2732
  * @tsplus fluent fncts.io.Stream scan
2529
2733
  */
2530
- export function scan_<R, E, A, B>(sa: Stream<R, E, A>, b: B, f: (b: B, a: A) => B): Stream<R, E, B> {
2734
+ export function scan_<R, E, A, B>(
2735
+ sa: Stream<R, E, A>,
2736
+ b: B,
2737
+ f: (b: B, a: A) => B,
2738
+ __tsplusTrace?: string,
2739
+ ): Stream<R, E, B> {
2531
2740
  return sa.scanIO(b, (b, a) => IO.succeedNow(f(b, a)));
2532
2741
  }
2533
2742
 
@@ -2541,7 +2750,8 @@ export function scanIO_<R, E, A, R1, E1, B>(
2541
2750
  sa: Stream<R, E, A>,
2542
2751
  b: B,
2543
2752
  f: (b: B, a: A) => IO<R1, E1, B>,
2544
- ): Stream<R & R1, E | E1, B> {
2753
+ __tsplusTrace?: string,
2754
+ ): Stream<R | R1, E | E1, B> {
2545
2755
  return Stream.succeedNow(b).concat(sa.mapAccumIO(b, (b, a) => f(b, a).map((b) => [b, b])));
2546
2756
  }
2547
2757
 
@@ -2551,7 +2761,11 @@ export function scanIO_<R, E, A, R1, E1, B>(
2551
2761
  *
2552
2762
  * @tsplus fluent fncts.io.Stream scanReduce
2553
2763
  */
2554
- export function scanReduce_<R, E, A extends B, B>(fa: Stream<R, E, A>, f: (b: B, a: A) => B): Stream<R, E, B> {
2764
+ export function scanReduce_<R, E, A extends B, B>(
2765
+ fa: Stream<R, E, A>,
2766
+ f: (b: B, a: A) => B,
2767
+ __tsplusTrace?: string,
2768
+ ): Stream<R, E, B> {
2555
2769
  return fa.scanReduceIO((b, a) => IO.succeedNow(f(b, a)));
2556
2770
  }
2557
2771
 
@@ -2564,7 +2778,8 @@ export function scanReduce_<R, E, A extends B, B>(fa: Stream<R, E, A>, f: (b: B,
2564
2778
  export function scanReduceIO_<R, E, A extends B, R1, E1, B>(
2565
2779
  fa: Stream<R, E, A>,
2566
2780
  f: (b: B, a: A) => IO<R1, E1, B>,
2567
- ): Stream<R & R1, E | E1, B> {
2781
+ __tsplusTrace?: string,
2782
+ ): Stream<R | R1, E | E1, B> {
2568
2783
  return fa.mapAccumIO(Nothing<B>(), (s, a) =>
2569
2784
  s.match(
2570
2785
  () => IO.succeedNow([a, Just(a)]),
@@ -2578,7 +2793,7 @@ export function scanReduceIO_<R, E, A extends B, R1, E1, B>(
2578
2793
  *
2579
2794
  * @tsplus static fncts.io.StreamOps succeedNow
2580
2795
  */
2581
- export function succeedNow<O>(o: O): Stream<unknown, never, O> {
2796
+ export function succeedNow<O>(o: O, __tsplusTrace?: string): Stream<never, never, O> {
2582
2797
  return fromChunkNow(Conc.single(o));
2583
2798
  }
2584
2799
 
@@ -2587,11 +2802,11 @@ export function succeedNow<O>(o: O): Stream<unknown, never, O> {
2587
2802
  *
2588
2803
  * @tsplus static fncts.io.StreamOps succeed
2589
2804
  */
2590
- export function succeed<A>(a: Lazy<A>): Stream<unknown, never, A> {
2805
+ export function succeed<A>(a: Lazy<A>, __tsplusTrace?: string): Stream<never, never, A> {
2591
2806
  return fromChunk(Conc.single(a()));
2592
2807
  }
2593
2808
 
2594
- function takeLoop<E, A>(n: number): Channel<unknown, E, Conc<A>, unknown, E, Conc<A>, unknown> {
2809
+ function takeLoop<E, A>(n: number, __tsplusTrace?: string): Channel<never, E, Conc<A>, unknown, E, Conc<A>, unknown> {
2595
2810
  return Channel.readWithCause(
2596
2811
  (inp) => {
2597
2812
  const taken = inp.take(n);
@@ -2612,7 +2827,7 @@ function takeLoop<E, A>(n: number): Channel<unknown, E, Conc<A>, unknown, E, Con
2612
2827
  *
2613
2828
  * @tsplus fluent fncts.io.Stream take
2614
2829
  */
2615
- export function take_<R, E, A>(stream: Stream<R, E, A>, n: number): Stream<R, E, A> {
2830
+ export function take_<R, E, A>(stream: Stream<R, E, A>, n: number, __tsplusTrace?: string): Stream<R, E, A> {
2616
2831
  if (n <= 0) {
2617
2832
  return empty;
2618
2833
  }
@@ -2628,14 +2843,16 @@ export function take_<R, E, A>(stream: Stream<R, E, A>, n: number): Stream<R, E,
2628
2843
  export function takeUntilIO_<R, E, A, R1, E1>(
2629
2844
  ma: Stream<R, E, A>,
2630
2845
  f: (a: A) => IO<R1, E1, boolean>,
2631
- ): Stream<R & R1, E | E1, A> {
2846
+ __tsplusTrace?: string,
2847
+ ): Stream<R | R1, E | E1, A> {
2632
2848
  return new Stream(ma.channel.pipeTo(takeUntilIOLoop(Iterable.empty<A>()[Symbol.iterator](), f)));
2633
2849
  }
2634
2850
 
2635
- function takeUntilIOLoop<R, E, A, R1, E1>(
2851
+ function takeUntilIOLoop<E, A, R1, E1>(
2636
2852
  iterator: Iterator<A>,
2637
2853
  f: (a: A) => IO<R1, E1, boolean>,
2638
- ): Channel<R & R1, E, Conc<A>, unknown, E | E1, Conc<A>, unknown> {
2854
+ __tsplusTrace?: string,
2855
+ ): Channel<R1, E, Conc<A>, unknown, E | E1, Conc<A>, unknown> {
2639
2856
  const next = iterator.next();
2640
2857
  if (next.done) {
2641
2858
  return Channel.readWithCause(
@@ -2648,13 +2865,16 @@ function takeUntilIOLoop<R, E, A, R1, E1>(
2648
2865
  f(next.value).map((b) =>
2649
2866
  b
2650
2867
  ? Channel.writeNow(Conc.single(next.value))
2651
- : Channel.writeNow(Conc.single(next.value)) > takeUntilIOLoop<R, E, A, R1, E1>(iterator, f),
2868
+ : Channel.writeNow(Conc.single(next.value)) > takeUntilIOLoop<E, A, R1, E1>(iterator, f),
2652
2869
  ),
2653
2870
  );
2654
2871
  }
2655
2872
  }
2656
2873
 
2657
- function takeUntilLoop<R, E, A>(p: Predicate<A>): Channel<R, E, Conc<A>, unknown, E, Conc<A>, unknown> {
2874
+ function takeUntilLoop<R, E, A>(
2875
+ p: Predicate<A>,
2876
+ __tsplusTrace?: string,
2877
+ ): Channel<R, E, Conc<A>, unknown, E, Conc<A>, unknown> {
2658
2878
  return Channel.readWith(
2659
2879
  (chunk: Conc<A>) => {
2660
2880
  const taken = chunk.takeWhile(p.invert);
@@ -2676,14 +2896,18 @@ function takeUntilLoop<R, E, A>(p: Predicate<A>): Channel<R, E, Conc<A>, unknown
2676
2896
  *
2677
2897
  * @tsplus fluent fncts.io.Stream takeUntil
2678
2898
  */
2679
- export function takeUntil_<R, E, A>(fa: Stream<R, E, A>, p: Predicate<A>): Stream<R, E, A> {
2899
+ export function takeUntil_<R, E, A>(fa: Stream<R, E, A>, p: Predicate<A>, __tsplusTrace?: string): Stream<R, E, A> {
2680
2900
  return new Stream(fa.channel.pipeTo(takeUntilLoop(p)));
2681
2901
  }
2682
2902
 
2683
2903
  /**
2684
2904
  * @tsplus fluent fncts.io.Stream tap
2685
2905
  */
2686
- export function tap_<R, E, A, R1, E1>(ma: Stream<R, E, A>, f: (a: A) => IO<R1, E1, any>): Stream<R & R1, E | E1, A> {
2906
+ export function tap_<R, E, A, R1, E1>(
2907
+ ma: Stream<R, E, A>,
2908
+ f: (a: A) => IO<R1, E1, any>,
2909
+ __tsplusTrace?: string,
2910
+ ): Stream<R | R1, E | E1, A> {
2687
2911
  return ma.mapIO((a) => f(a).as(a));
2688
2912
  }
2689
2913
 
@@ -2701,6 +2925,7 @@ export function throttleEnforce_<R, E, A>(
2701
2925
  units: number,
2702
2926
  duration: number,
2703
2927
  burst = 0,
2928
+ __tsplusTrace?: string,
2704
2929
  ): Stream<R, E, A> {
2705
2930
  return sa.throttleEnforceIO((chunk) => IO.succeedNow(costFn(chunk)), units, duration, burst);
2706
2931
  }
@@ -2712,6 +2937,7 @@ function throttleEnforceIOLoop<E, A, R1, E1>(
2712
2937
  burst: number,
2713
2938
  tokens: number,
2714
2939
  timestamp: number,
2940
+ __tsplusTrace?: string,
2715
2941
  ): Channel<R1, E | E1, Conc<A>, unknown, E | E1, Conc<A>, void> {
2716
2942
  return Channel.readWith(
2717
2943
  (inp: Conc<A>) =>
@@ -2728,9 +2954,9 @@ function throttleEnforceIOLoop<E, A, R1, E1>(
2728
2954
 
2729
2955
  return weight <= available
2730
2956
  ? Channel.writeNow(inp).apSecond(
2731
- throttleEnforceIOLoop(costFn, units, duration, burst, available - weight, current),
2957
+ throttleEnforceIOLoop<E, A, R1, E1>(costFn, units, duration, burst, available - weight, current),
2732
2958
  )
2733
- : throttleEnforceIOLoop(costFn, units, duration, burst, available - weight, current);
2959
+ : throttleEnforceIOLoop<E, A, R1, E1>(costFn, units, duration, burst, available - weight, current);
2734
2960
  }),
2735
2961
  ),
2736
2962
  Channel.failNow,
@@ -2752,7 +2978,8 @@ export function throttleEnforceIO_<R, E, A, R1, E1>(
2752
2978
  units: number,
2753
2979
  duration: number,
2754
2980
  burst = 0,
2755
- ): Stream<R & R1, E | E1, A> {
2981
+ __tsplusTrace?: string,
2982
+ ): Stream<R | R1, E | E1, A> {
2756
2983
  return new Stream(
2757
2984
  Channel.fromIO(Clock.currentTime).flatMap((current) =>
2758
2985
  sa.channel.pipeTo(throttleEnforceIOLoop(costFn, units, duration, burst, units, current)),
@@ -2766,7 +2993,11 @@ export function throttleEnforceIO_<R, E, A, R1, E1>(
2766
2993
  *
2767
2994
  * @tsplus fluent fncts.io.Stream toHub
2768
2995
  */
2769
- export function toHub_<R, E, A>(stream: Stream<R, E, A>, capacity: number): IO<R & Has<Scope>, never, Hub<Take<E, A>>> {
2996
+ export function toHub_<R, E, A>(
2997
+ stream: Stream<R, E, A>,
2998
+ capacity: number,
2999
+ __tsplusTrace?: string,
3000
+ ): IO<R | Scope, never, Hub<Take<E, A>>> {
2770
3001
  return Do((Δ) => {
2771
3002
  const hub = Δ(IO.acquireRelease(Hub.makeBounded<Take<E, A>>(capacity), (_) => _.shutdown));
2772
3003
  Δ(stream.runIntoHubScoped(hub).fork);
@@ -2779,7 +3010,10 @@ export function toHub_<R, E, A>(stream: Stream<R, E, A>, capacity: number): IO<R
2779
3010
  *
2780
3011
  * @tsplus getter fncts.io.Stream toPull
2781
3012
  */
2782
- export function toPull<R, E, A>(stream: Stream<R, E, A>): IO<R & Has<Scope>, never, IO<R, Maybe<E>, Conc<A>>> {
3013
+ export function toPull<R, E, A>(
3014
+ stream: Stream<R, E, A>,
3015
+ __tsplusTrace?: string,
3016
+ ): IO<R | Scope, never, IO<R, Maybe<E>, Conc<A>>> {
2783
3017
  return stream.channel.toPull.map((io) =>
2784
3018
  io.mapError(Maybe.just).flatMap((r) => r.match(() => IO.failNow(Nothing()), IO.succeedNow)),
2785
3019
  );
@@ -2791,7 +3025,11 @@ export function toPull<R, E, A>(stream: Stream<R, E, A>): IO<R & Has<Scope>, nev
2791
3025
  *
2792
3026
  * @tsplus fluent fncts.io.Stream toQueue
2793
3027
  */
2794
- export function toQueue_<R, E, A>(stream: Stream<R, E, A>, capacity = 2): IO<R & Has<Scope>, never, Queue<Take<E, A>>> {
3028
+ export function toQueue_<R, E, A>(
3029
+ stream: Stream<R, E, A>,
3030
+ capacity = 2,
3031
+ __tsplusTrace?: string,
3032
+ ): IO<R | Scope, never, Queue<Take<E, A>>> {
2795
3033
  return Do((Δ) => {
2796
3034
  const queue = Δ(IO.acquireRelease(Queue.makeBounded<Take<E, A>>(capacity), (_) => _.shutdown));
2797
3035
  Δ(stream.runIntoQueueScoped(queue).fork);
@@ -2805,7 +3043,8 @@ export function toQueue_<R, E, A>(stream: Stream<R, E, A>, capacity = 2): IO<R &
2805
3043
  export function toQueueDropping_<R, E, A>(
2806
3044
  stream: Stream<R, E, A>,
2807
3045
  capacity = 2,
2808
- ): IO<R & Has<Scope>, never, Queue.Dequeue<Take<E, A>>> {
3046
+ __tsplusTrace?: string,
3047
+ ): IO<R | Scope, never, Queue.Dequeue<Take<E, A>>> {
2809
3048
  return Do((Δ) => {
2810
3049
  const queue = Δ(IO.acquireRelease(Queue.makeDropping<Take<E, A>>(capacity), (_) => _.shutdown));
2811
3050
  Δ(stream.runIntoQueueScoped(queue).fork);
@@ -2819,7 +3058,8 @@ export function toQueueDropping_<R, E, A>(
2819
3058
  export function toQueueOfElements_<R, E, A>(
2820
3059
  stream: Stream<R, E, A>,
2821
3060
  capacity = 2,
2822
- ): IO<R & Has<Scope>, never, Queue.Dequeue<Exit<Maybe<E>, A>>> {
3061
+ __tsplusTrace?: string,
3062
+ ): IO<R | Scope, never, Queue.Dequeue<Exit<Maybe<E>, A>>> {
2823
3063
  return Do((Δ) => {
2824
3064
  const queue = Δ(IO.acquireRelease(Queue.makeBounded<Exit<Maybe<E>, A>>(capacity), (_) => _.shutdown));
2825
3065
  Δ(stream.runIntoElementsScoped(queue).fork);
@@ -2833,7 +3073,8 @@ export function toQueueOfElements_<R, E, A>(
2833
3073
  export function toQueueSliding_<R, E, A>(
2834
3074
  stream: Stream<R, E, A>,
2835
3075
  capacity = 2,
2836
- ): IO<R & Has<Scope>, never, Queue.Dequeue<Take<E, A>>> {
3076
+ __tsplusTrace?: string,
3077
+ ): IO<R | Scope, never, Queue.Dequeue<Take<E, A>>> {
2837
3078
  return Do((Δ) => {
2838
3079
  const queue = Δ(IO.acquireRelease(Queue.makeSliding<Take<E, A>>(capacity), (_) => _.shutdown));
2839
3080
  Δ(stream.runIntoQueueScoped(queue).fork);
@@ -2847,7 +3088,10 @@ export function toQueueSliding_<R, E, A>(
2847
3088
  *
2848
3089
  * @tsplus getter fncts.io.Stream toQueueUnbounded
2849
3090
  */
2850
- export function toQueueUnbounded<R, E, A>(stream: Stream<R, E, A>): IO<R & Has<Scope>, never, Queue<Take<E, A>>> {
3091
+ export function toQueueUnbounded<R, E, A>(
3092
+ stream: Stream<R, E, A>,
3093
+ __tsplusTrace?: string,
3094
+ ): IO<R | Scope, never, Queue<Take<E, A>>> {
2851
3095
  return Do((Δ) => {
2852
3096
  const queue = Δ(IO.acquireRelease(Queue.makeUnbounded<Take<E, A>>(), (_) => _.shutdown));
2853
3097
  Δ(stream.runIntoQueueScoped(queue).fork);
@@ -2858,6 +3102,7 @@ export function toQueueUnbounded<R, E, A>(stream: Stream<R, E, A>): IO<R & Has<S
2858
3102
  function unfoldChunkIOLoop<S, R, E, A>(
2859
3103
  s: S,
2860
3104
  f: (s: S) => IO<R, E, Maybe<readonly [Conc<A>, S]>>,
3105
+ __tsplusTrace?: string,
2861
3106
  ): Channel<R, unknown, unknown, unknown, E, Conc<A>, unknown> {
2862
3107
  return Channel.unwrap(
2863
3108
  f(s).map((m) =>
@@ -2874,7 +3119,11 @@ function unfoldChunkIOLoop<S, R, E, A>(
2874
3119
  *
2875
3120
  * @tsplus static fncts.io.StreamOps unfoldChunkIO
2876
3121
  */
2877
- export function unfoldChunkIO<R, E, A, S>(s: S, f: (s: S) => IO<R, E, Maybe<readonly [Conc<A>, S]>>): Stream<R, E, A> {
3122
+ export function unfoldChunkIO<R, E, A, S>(
3123
+ s: S,
3124
+ f: (s: S) => IO<R, E, Maybe<readonly [Conc<A>, S]>>,
3125
+ __tsplusTrace?: string,
3126
+ ): Stream<R, E, A> {
2878
3127
  return new Stream(unfoldChunkIOLoop(s, f));
2879
3128
  }
2880
3129
 
@@ -2883,14 +3132,19 @@ export function unfoldChunkIO<R, E, A, S>(s: S, f: (s: S) => IO<R, E, Maybe<read
2883
3132
  *
2884
3133
  * @tsplus static fncts.io.StreamOps unfoldIO
2885
3134
  */
2886
- export function unfoldIO<S, R, E, A>(s: S, f: (s: S) => IO<R, E, Maybe<readonly [A, S]>>): Stream<R, E, A> {
3135
+ export function unfoldIO<S, R, E, A>(
3136
+ s: S,
3137
+ f: (s: S) => IO<R, E, Maybe<readonly [A, S]>>,
3138
+ __tsplusTrace?: string,
3139
+ ): Stream<R, E, A> {
2887
3140
  return unfoldChunkIO(s, (_) => f(_).map((m) => m.map(([a, s]) => tuple(Conc.single(a), s))));
2888
3141
  }
2889
3142
 
2890
3143
  function unfoldChunkLoop<S, A>(
2891
3144
  s: S,
2892
3145
  f: (s: S) => Maybe<readonly [Conc<A>, S]>,
2893
- ): Channel<unknown, unknown, unknown, unknown, never, Conc<A>, unknown> {
3146
+ __tsplusTrace?: string,
3147
+ ): Channel<never, unknown, unknown, unknown, never, Conc<A>, unknown> {
2894
3148
  return f(s).match(
2895
3149
  () => Channel.unit,
2896
3150
  ([as, s]) => Channel.writeNow(as).flatMap(() => unfoldChunkLoop(s, f)),
@@ -2900,14 +3154,22 @@ function unfoldChunkLoop<S, A>(
2900
3154
  /**
2901
3155
  * @tsplus static fncts.io.StreamOps unfoldChunk
2902
3156
  */
2903
- export function unfoldChunk<S, A>(s: S, f: (s: S) => Maybe<readonly [Conc<A>, S]>): Stream<unknown, never, A> {
3157
+ export function unfoldChunk<S, A>(
3158
+ s: S,
3159
+ f: (s: S) => Maybe<readonly [Conc<A>, S]>,
3160
+ __tsplusTrace?: string,
3161
+ ): Stream<never, never, A> {
2904
3162
  return new Stream(Channel.defer(unfoldChunkLoop(s, f)));
2905
3163
  }
2906
3164
 
2907
3165
  /**
2908
3166
  * @tsplus static fncts.io.StreamOps unfold
2909
3167
  */
2910
- export function unfold<S, A>(s: S, f: (s: S) => Maybe<readonly [A, S]>): Stream<unknown, never, A> {
3168
+ export function unfold<S, A>(
3169
+ s: S,
3170
+ f: (s: S) => Maybe<readonly [A, S]>,
3171
+ __tsplusTrace?: string,
3172
+ ): Stream<never, never, A> {
2911
3173
  return Stream.unfoldChunk(s, (s) => f(s).map(([a, s]) => tuple(Conc.single(a), s)));
2912
3174
  }
2913
3175
 
@@ -2916,7 +3178,10 @@ export function unfold<S, A>(s: S, f: (s: S) => Maybe<readonly [A, S]>): Stream<
2916
3178
  *
2917
3179
  * @tsplus static fncts.io.StreamOps unwrap
2918
3180
  */
2919
- export function unwrap<R, E, R1, E1, A>(stream: IO<R, E, Stream<R1, E1, A>>): Stream<R & R1, E | E1, A> {
3181
+ export function unwrap<R, E, R1, E1, A>(
3182
+ stream: IO<R, E, Stream<R1, E1, A>>,
3183
+ __tsplusTrace?: string,
3184
+ ): Stream<R | R1, E | E1, A> {
2920
3185
  return Stream.fromIO(stream).flatten;
2921
3186
  }
2922
3187
 
@@ -2926,8 +3191,9 @@ export function unwrap<R, E, R1, E1, A>(stream: IO<R, E, Stream<R1, E1, A>>): St
2926
3191
  * @tsplus static fncts.io.StreamOps unwrapScoped
2927
3192
  */
2928
3193
  export function unwrapScoped<R0, E0, R, E, A>(
2929
- stream: IO<R0 & Has<Scope>, E0, Stream<R, E, A>>,
2930
- ): Stream<R0 & R, E0 | E, A> {
3194
+ stream: IO<R0, E0, Stream<R, E, A>>,
3195
+ __tsplusTrace?: string,
3196
+ ): Stream<R | Exclude<R0, Scope>, E0 | E, A> {
2931
3197
  return Stream.scoped(stream).flatten;
2932
3198
  }
2933
3199
 
@@ -2936,7 +3202,7 @@ export function unwrapScoped<R0, E0, R, E, A>(
2936
3202
  */
2937
3203
  export function zipWithIndex_<R, E, A>(
2938
3204
  self: Stream<R, E, A>,
2939
- __tsPlusTrace?: string,
3205
+ __tsplusTrace?: string,
2940
3206
  ): Stream<R, E, readonly [A, number]> {
2941
3207
  return self.mapAccum(0, (index, a) => [index + 1, [a, index]]);
2942
3208
  }
@@ -2956,8 +3222,9 @@ export function zipWithLatest_<R, E, A, R1, E1, B, C>(
2956
3222
  fa: Stream<R, E, A>,
2957
3223
  fb: Stream<R1, E1, B>,
2958
3224
  f: (a: A, b: B) => C,
2959
- ): Stream<R & R1, E | E1, C> {
2960
- function pullNonEmpty<R, E, A>(pull: IO<R, Maybe<E>, Conc<A>>): IO<R, Maybe<E>, Conc<A>> {
3225
+ __tsplusTrace?: string,
3226
+ ): Stream<R | R1, E | E1, C> {
3227
+ function pullNonEmpty<R, E, A>(pull: IO<R, Maybe<E>, Conc<A>>, __tsplusTrace?: string): IO<R, Maybe<E>, Conc<A>> {
2961
3228
  return pull.flatMap((chunk) => (chunk.isNonEmpty ? pullNonEmpty(pull) : IO.succeedNow(chunk)));
2962
3229
  }
2963
3230
  return Stream.fromPull(
@@ -2968,7 +3235,8 @@ export function zipWithLatest_<R, E, A, R1, E1, B, C>(
2968
3235
  Stream.fromIOMaybe(
2969
3236
  left.raceWith(
2970
3237
  right,
2971
- (leftDone, rightFiber) => IO.fromExitNow(leftDone).zipWith(rightFiber.join, (l, r) => tuple(l, r, true)),
3238
+ (leftDone: Exit<Maybe<E | E1>, Conc<A>>, rightFiber) =>
3239
+ IO.fromExitNow(leftDone).zipWith(rightFiber.join, (l, r) => tuple(l, r, true)),
2972
3240
  (rightDone, leftFiber) => IO.fromExitNow(rightDone).zipWith(leftFiber.join, (r, l) => tuple(l, r, false)),
2973
3241
  ),
2974
3242
  ).flatMap(([l, r, leftFirst]) =>