@fncts/io 0.0.11 → 0.0.14

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