@fncts/io 0.0.31 → 0.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/Channel/api/runScoped.d.ts +1 -0
  2. package/Channel/api.d.ts +1 -0
  3. package/Channel/internal/ChannelExecutor.d.ts +2 -2
  4. package/Fiber/FiberMessage.d.ts +5 -5
  5. package/Fiber/FiberRuntime.d.ts +3 -3
  6. package/IO/api/provideSomeLayer.d.ts +1 -2
  7. package/IO/api/zipConcurrent.d.ts +2 -1
  8. package/IO/api.d.ts +2 -1
  9. package/IO/definition.d.ts +34 -24
  10. package/IO/runtime.d.ts +10 -18
  11. package/STM/definition.d.ts +1 -1
  12. package/Stream/api.d.ts +113 -5
  13. package/_cjs/Channel/api/mapOutConcurrentIO.cjs +1 -1
  14. package/_cjs/Channel/api/mapOutConcurrentIO.cjs.map +1 -1
  15. package/_cjs/Channel/api/mergeAllWith.cjs +3 -3
  16. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  17. package/_cjs/Channel/api/mergeWith.cjs +4 -4
  18. package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
  19. package/_cjs/Channel/api/runScoped.cjs +19 -3
  20. package/_cjs/Channel/api/runScoped.cjs.map +1 -1
  21. package/_cjs/Channel/api/toPull.cjs +3 -3
  22. package/_cjs/Channel/api/toPull.cjs.map +1 -1
  23. package/_cjs/Channel/api.cjs +8 -7
  24. package/_cjs/Channel/api.cjs.map +1 -1
  25. package/_cjs/Channel/internal/ChannelExecutor.cjs +71 -62
  26. package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
  27. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +3 -3
  28. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
  29. package/_cjs/Clock/live.cjs +1 -1
  30. package/_cjs/Clock/live.cjs.map +1 -1
  31. package/_cjs/Fiber/FiberMessage.cjs +12 -11
  32. package/_cjs/Fiber/FiberMessage.cjs.map +1 -1
  33. package/_cjs/Fiber/FiberRuntime.cjs +102 -70
  34. package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
  35. package/_cjs/Fiber/api/collectAll.cjs +1 -1
  36. package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
  37. package/_cjs/Fiber/api/mapIO.cjs +1 -1
  38. package/_cjs/Fiber/api/mapIO.cjs.map +1 -1
  39. package/_cjs/Fiber/api/zipWith.cjs +1 -1
  40. package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
  41. package/_cjs/Fiber/constructors.cjs +5 -5
  42. package/_cjs/Fiber/constructors.cjs.map +1 -1
  43. package/_cjs/FiberRef/unsafe.cjs +3 -2
  44. package/_cjs/FiberRef/unsafe.cjs.map +1 -1
  45. package/_cjs/FiberScope/definition.cjs +2 -2
  46. package/_cjs/FiberScope/definition.cjs.map +1 -1
  47. package/_cjs/Future/api.cjs +4 -4
  48. package/_cjs/Future/api.cjs.map +1 -1
  49. package/_cjs/Hub/api.cjs.map +1 -1
  50. package/_cjs/Hub/internal.cjs +1 -1
  51. package/_cjs/Hub/internal.cjs.map +1 -1
  52. package/_cjs/IO/api/asyncIO.cjs +1 -1
  53. package/_cjs/IO/api/asyncIO.cjs.map +1 -1
  54. package/_cjs/IO/api/asyncInterrupt.cjs +2 -2
  55. package/_cjs/IO/api/asyncInterrupt.cjs.map +1 -1
  56. package/_cjs/IO/api/concurrency.cjs +3 -3
  57. package/_cjs/IO/api/concurrency.cjs.map +1 -1
  58. package/_cjs/IO/api/daemonChildren.cjs +1 -1
  59. package/_cjs/IO/api/daemonChildren.cjs.map +1 -1
  60. package/_cjs/IO/api/fork.cjs +2 -1
  61. package/_cjs/IO/api/fork.cjs.map +1 -1
  62. package/_cjs/IO/api/interrupt.cjs +2 -2
  63. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  64. package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
  65. package/_cjs/IO/api/raceWith.cjs +9 -12
  66. package/_cjs/IO/api/raceWith.cjs.map +1 -1
  67. package/_cjs/IO/api/repeat.cjs +2 -2
  68. package/_cjs/IO/api/repeat.cjs.map +1 -1
  69. package/_cjs/IO/api/stateful.cjs +3 -3
  70. package/_cjs/IO/api/stateful.cjs.map +1 -1
  71. package/_cjs/IO/api/timeout.cjs +1 -1
  72. package/_cjs/IO/api/timeout.cjs.map +1 -1
  73. package/_cjs/IO/api/transplant.cjs +1 -1
  74. package/_cjs/IO/api/transplant.cjs.map +1 -1
  75. package/_cjs/IO/api/withChildren.cjs +5 -4
  76. package/_cjs/IO/api/withChildren.cjs.map +1 -1
  77. package/_cjs/IO/api/withEarlyRelease.cjs +1 -1
  78. package/_cjs/IO/api/withEarlyRelease.cjs.map +1 -1
  79. package/_cjs/IO/api/zipConcurrent.cjs +23 -23
  80. package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
  81. package/_cjs/IO/api.cjs +33 -32
  82. package/_cjs/IO/api.cjs.map +1 -1
  83. package/_cjs/IO/definition.cjs +17 -31
  84. package/_cjs/IO/definition.cjs.map +1 -1
  85. package/_cjs/IO/runtime.cjs +47 -40
  86. package/_cjs/IO/runtime.cjs.map +1 -1
  87. package/_cjs/Logger/api.cjs +3 -2
  88. package/_cjs/Logger/api.cjs.map +1 -1
  89. package/_cjs/MVar/api.cjs +11 -11
  90. package/_cjs/MVar/api.cjs.map +1 -1
  91. package/_cjs/Push/api.cjs +3 -3
  92. package/_cjs/Push/api.cjs.map +1 -1
  93. package/_cjs/Push/internal.cjs +1 -1
  94. package/_cjs/Push/internal.cjs.map +1 -1
  95. package/_cjs/Queue/api/filterInputIO.cjs +2 -2
  96. package/_cjs/Queue/api/filterInputIO.cjs.map +1 -1
  97. package/_cjs/Queue/api/filterOutputIO.cjs.map +1 -1
  98. package/_cjs/Ref/Derived.cjs +4 -4
  99. package/_cjs/Ref/Derived.cjs.map +1 -1
  100. package/_cjs/Ref/DerivedAll.cjs +5 -5
  101. package/_cjs/Ref/DerivedAll.cjs.map +1 -1
  102. package/_cjs/Ref/Synchronized/api.cjs +3 -3
  103. package/_cjs/Ref/Synchronized/api.cjs.map +1 -1
  104. package/_cjs/Ref/api/collect.cjs +1 -1
  105. package/_cjs/Ref/api/collect.cjs.map +1 -1
  106. package/_cjs/Ref/api/dimap.cjs +3 -3
  107. package/_cjs/Ref/api/dimap.cjs.map +1 -1
  108. package/_cjs/Ref/api/filter.cjs +2 -2
  109. package/_cjs/Ref/api/filter.cjs.map +1 -1
  110. package/_cjs/Ref/api.cjs +2 -3
  111. package/_cjs/Ref/api.cjs.map +1 -1
  112. package/_cjs/RefSubject/Atomic.cjs +6 -6
  113. package/_cjs/RefSubject/Atomic.cjs.map +1 -1
  114. package/_cjs/STM/api.cjs +5 -5
  115. package/_cjs/STM/api.cjs.map +1 -1
  116. package/_cjs/STM/definition.cjs +1 -1
  117. package/_cjs/STM/definition.cjs.map +1 -1
  118. package/_cjs/STM/internal/CommitState.cjs +5 -4
  119. package/_cjs/STM/internal/CommitState.cjs.map +1 -1
  120. package/_cjs/STM/internal/Journal.cjs +8 -8
  121. package/_cjs/STM/internal/Journal.cjs.map +1 -1
  122. package/_cjs/Schedule/api/driver.cjs +3 -3
  123. package/_cjs/Schedule/api/driver.cjs.map +1 -1
  124. package/_cjs/Schedule/api.cjs +8 -8
  125. package/_cjs/Schedule/api.cjs.map +1 -1
  126. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +1 -1
  127. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
  128. package/_cjs/Scope/ReleaseMap/api.cjs +3 -3
  129. package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
  130. package/_cjs/ScopedRef/api.cjs +1 -1
  131. package/_cjs/ScopedRef/api.cjs.map +1 -1
  132. package/_cjs/Semaphore.cjs +2 -2
  133. package/_cjs/Semaphore.cjs.map +1 -1
  134. package/_cjs/Sink/api.cjs +6 -6
  135. package/_cjs/Sink/api.cjs.map +1 -1
  136. package/_cjs/Stream/api/zipAllWith.cjs +8 -8
  137. package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
  138. package/_cjs/Stream/api/zipWithChunks.cjs +6 -6
  139. package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
  140. package/_cjs/Stream/api.cjs +415 -133
  141. package/_cjs/Stream/api.cjs.map +1 -1
  142. package/_cjs/Stream/internal/Handoff.cjs +2 -2
  143. package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
  144. package/_cjs/Stream/internal/Pull.cjs +2 -2
  145. package/_cjs/Stream/internal/Pull.cjs.map +1 -1
  146. package/_cjs/Stream/internal/Take.cjs +6 -6
  147. package/_cjs/Stream/internal/Take.cjs.map +1 -1
  148. package/_cjs/Stream/internal/util.cjs +3 -2
  149. package/_cjs/Stream/internal/util.cjs.map +1 -1
  150. package/_cjs/TFuture/api.cjs +3 -3
  151. package/_cjs/TFuture/api.cjs.map +1 -1
  152. package/_cjs/TFuture/constructors.cjs +1 -1
  153. package/_cjs/TFuture/constructors.cjs.map +1 -1
  154. package/_cjs/TRef/definition.cjs +9 -9
  155. package/_cjs/TRef/definition.cjs.map +1 -1
  156. package/_cjs/collection/immutable/Conc/findIO.cjs +3 -3
  157. package/_cjs/collection/immutable/Conc/findIO.cjs.map +1 -1
  158. package/_cjs/data/Exit/foreachIO.cjs +1 -1
  159. package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
  160. package/_mjs/Cached/definition.mjs.map +1 -1
  161. package/_mjs/Channel/api/mapOutConcurrentIO.mjs +1 -1
  162. package/_mjs/Channel/api/mapOutConcurrentIO.mjs.map +1 -1
  163. package/_mjs/Channel/api/mergeAllWith.mjs +3 -3
  164. package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
  165. package/_mjs/Channel/api/mergeWith.mjs +4 -4
  166. package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
  167. package/_mjs/Channel/api/runScoped.mjs +19 -3
  168. package/_mjs/Channel/api/runScoped.mjs.map +1 -1
  169. package/_mjs/Channel/api/toPull.mjs +3 -3
  170. package/_mjs/Channel/api/toPull.mjs.map +1 -1
  171. package/_mjs/Channel/api.mjs +8 -7
  172. package/_mjs/Channel/api.mjs.map +1 -1
  173. package/_mjs/Channel/internal/ChannelExecutor.mjs +71 -62
  174. package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
  175. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +3 -3
  176. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
  177. package/_mjs/Clock/live.mjs +1 -1
  178. package/_mjs/Clock/live.mjs.map +1 -1
  179. package/_mjs/Fiber/FiberMessage.mjs +5 -5
  180. package/_mjs/Fiber/FiberMessage.mjs.map +1 -1
  181. package/_mjs/Fiber/FiberRuntime.mjs +102 -70
  182. package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
  183. package/_mjs/Fiber/api/collectAll.mjs +1 -1
  184. package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
  185. package/_mjs/Fiber/api/mapIO.mjs +1 -1
  186. package/_mjs/Fiber/api/mapIO.mjs.map +1 -1
  187. package/_mjs/Fiber/api/zipWith.mjs +1 -1
  188. package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
  189. package/_mjs/Fiber/constructors.mjs +5 -5
  190. package/_mjs/Fiber/constructors.mjs.map +1 -1
  191. package/_mjs/FiberRef/unsafe.mjs +3 -2
  192. package/_mjs/FiberRef/unsafe.mjs.map +1 -1
  193. package/_mjs/FiberScope/definition.mjs +2 -2
  194. package/_mjs/FiberScope/definition.mjs.map +1 -1
  195. package/_mjs/Future/api.mjs +4 -4
  196. package/_mjs/Future/api.mjs.map +1 -1
  197. package/_mjs/Hub/api.mjs.map +1 -1
  198. package/_mjs/Hub/internal.mjs +1 -1
  199. package/_mjs/Hub/internal.mjs.map +1 -1
  200. package/_mjs/IO/api/asyncIO.mjs +1 -1
  201. package/_mjs/IO/api/asyncIO.mjs.map +1 -1
  202. package/_mjs/IO/api/asyncInterrupt.mjs +2 -2
  203. package/_mjs/IO/api/asyncInterrupt.mjs.map +1 -1
  204. package/_mjs/IO/api/concurrency.mjs +3 -3
  205. package/_mjs/IO/api/concurrency.mjs.map +1 -1
  206. package/_mjs/IO/api/daemonChildren.mjs +1 -1
  207. package/_mjs/IO/api/daemonChildren.mjs.map +1 -1
  208. package/_mjs/IO/api/fork.mjs +2 -1
  209. package/_mjs/IO/api/fork.mjs.map +1 -1
  210. package/_mjs/IO/api/interrupt.mjs +2 -2
  211. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  212. package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
  213. package/_mjs/IO/api/raceWith.mjs +9 -12
  214. package/_mjs/IO/api/raceWith.mjs.map +1 -1
  215. package/_mjs/IO/api/repeat.mjs +2 -2
  216. package/_mjs/IO/api/repeat.mjs.map +1 -1
  217. package/_mjs/IO/api/stateful.mjs +3 -3
  218. package/_mjs/IO/api/stateful.mjs.map +1 -1
  219. package/_mjs/IO/api/timeout.mjs +1 -1
  220. package/_mjs/IO/api/timeout.mjs.map +1 -1
  221. package/_mjs/IO/api/transplant.mjs +1 -1
  222. package/_mjs/IO/api/transplant.mjs.map +1 -1
  223. package/_mjs/IO/api/withChildren.mjs +5 -4
  224. package/_mjs/IO/api/withChildren.mjs.map +1 -1
  225. package/_mjs/IO/api/withEarlyRelease.mjs +1 -1
  226. package/_mjs/IO/api/withEarlyRelease.mjs.map +1 -1
  227. package/_mjs/IO/api/zipConcurrent.mjs +23 -23
  228. package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
  229. package/_mjs/IO/api.mjs +32 -30
  230. package/_mjs/IO/api.mjs.map +1 -1
  231. package/_mjs/IO/definition.mjs +16 -27
  232. package/_mjs/IO/definition.mjs.map +1 -1
  233. package/_mjs/IO/runtime.mjs +43 -34
  234. package/_mjs/IO/runtime.mjs.map +1 -1
  235. package/_mjs/Logger/api.mjs +3 -2
  236. package/_mjs/Logger/api.mjs.map +1 -1
  237. package/_mjs/MVar/api.mjs +11 -11
  238. package/_mjs/MVar/api.mjs.map +1 -1
  239. package/_mjs/Push/api.mjs +3 -3
  240. package/_mjs/Push/api.mjs.map +1 -1
  241. package/_mjs/Push/internal.mjs +1 -1
  242. package/_mjs/Push/internal.mjs.map +1 -1
  243. package/_mjs/Queue/api/filterInputIO.mjs +2 -2
  244. package/_mjs/Queue/api/filterInputIO.mjs.map +1 -1
  245. package/_mjs/Queue/api/filterOutputIO.mjs.map +1 -1
  246. package/_mjs/Ref/Derived.mjs +4 -4
  247. package/_mjs/Ref/Derived.mjs.map +1 -1
  248. package/_mjs/Ref/DerivedAll.mjs +5 -5
  249. package/_mjs/Ref/DerivedAll.mjs.map +1 -1
  250. package/_mjs/Ref/Synchronized/api.mjs +3 -3
  251. package/_mjs/Ref/Synchronized/api.mjs.map +1 -1
  252. package/_mjs/Ref/api/collect.mjs +1 -1
  253. package/_mjs/Ref/api/collect.mjs.map +1 -1
  254. package/_mjs/Ref/api/dimap.mjs +3 -3
  255. package/_mjs/Ref/api/dimap.mjs.map +1 -1
  256. package/_mjs/Ref/api/filter.mjs +2 -2
  257. package/_mjs/Ref/api/filter.mjs.map +1 -1
  258. package/_mjs/Ref/api.mjs +2 -1
  259. package/_mjs/Ref/api.mjs.map +1 -1
  260. package/_mjs/RefSubject/Atomic.mjs +6 -6
  261. package/_mjs/RefSubject/Atomic.mjs.map +1 -1
  262. package/_mjs/STM/api.mjs +5 -5
  263. package/_mjs/STM/api.mjs.map +1 -1
  264. package/_mjs/STM/definition.mjs +1 -1
  265. package/_mjs/STM/definition.mjs.map +1 -1
  266. package/_mjs/STM/internal/CommitState.mjs +5 -4
  267. package/_mjs/STM/internal/CommitState.mjs.map +1 -1
  268. package/_mjs/STM/internal/Journal.mjs +8 -8
  269. package/_mjs/STM/internal/Journal.mjs.map +1 -1
  270. package/_mjs/Schedule/api/driver.mjs +3 -3
  271. package/_mjs/Schedule/api/driver.mjs.map +1 -1
  272. package/_mjs/Schedule/api.mjs +8 -8
  273. package/_mjs/Schedule/api.mjs.map +1 -1
  274. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +1 -1
  275. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
  276. package/_mjs/Scope/ReleaseMap/api.mjs +3 -3
  277. package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
  278. package/_mjs/ScopedRef/api.mjs +1 -1
  279. package/_mjs/ScopedRef/api.mjs.map +1 -1
  280. package/_mjs/Semaphore.mjs +2 -2
  281. package/_mjs/Semaphore.mjs.map +1 -1
  282. package/_mjs/Sink/api.mjs +6 -6
  283. package/_mjs/Sink/api.mjs.map +1 -1
  284. package/_mjs/Stream/api/zipAllWith.mjs +8 -8
  285. package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
  286. package/_mjs/Stream/api/zipWithChunks.mjs +6 -6
  287. package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
  288. package/_mjs/Stream/api.mjs +321 -60
  289. package/_mjs/Stream/api.mjs.map +1 -1
  290. package/_mjs/Stream/internal/Handoff.mjs +2 -2
  291. package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
  292. package/_mjs/Stream/internal/Pull.mjs +2 -2
  293. package/_mjs/Stream/internal/Pull.mjs.map +1 -1
  294. package/_mjs/Stream/internal/Take.mjs +6 -6
  295. package/_mjs/Stream/internal/Take.mjs.map +1 -1
  296. package/_mjs/Stream/internal/util.mjs +3 -2
  297. package/_mjs/Stream/internal/util.mjs.map +1 -1
  298. package/_mjs/TFuture/api.mjs +3 -3
  299. package/_mjs/TFuture/api.mjs.map +1 -1
  300. package/_mjs/TFuture/constructors.mjs +1 -1
  301. package/_mjs/TFuture/constructors.mjs.map +1 -1
  302. package/_mjs/TRef/definition.mjs +9 -9
  303. package/_mjs/TRef/definition.mjs.map +1 -1
  304. package/_mjs/collection/immutable/Conc/findIO.mjs +3 -3
  305. package/_mjs/collection/immutable/Conc/findIO.mjs.map +1 -1
  306. package/_mjs/data/Exit/foreachIO.mjs +1 -1
  307. package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
  308. package/_src/Cached/definition.ts +1 -1
  309. package/_src/Channel/api/runScoped.ts +30 -5
  310. package/_src/Channel/api/toPull.ts +1 -1
  311. package/_src/Channel/api.ts +1 -0
  312. package/_src/Channel/internal/ChannelExecutor.ts +24 -20
  313. package/_src/Fiber/FiberMessage.ts +5 -5
  314. package/_src/Fiber/FiberRuntime.ts +40 -17
  315. package/_src/FiberRefs/api.ts +1 -1
  316. package/_src/Hub/api.ts +1 -1
  317. package/_src/IO/api/asyncIO.ts +1 -1
  318. package/_src/IO/api/provideSomeLayer.ts +1 -3
  319. package/_src/IO/api/raceWith.ts +1 -3
  320. package/_src/IO/api/stateful.ts +1 -1
  321. package/_src/IO/api/zipConcurrent.ts +26 -30
  322. package/_src/IO/api.ts +4 -3
  323. package/_src/IO/definition.ts +35 -28
  324. package/_src/IO/runtime.ts +39 -38
  325. package/_src/Queue/api/filterInputIO.ts +1 -1
  326. package/_src/Queue/api/filterOutputIO.ts +1 -1
  327. package/_src/RefSubject/Atomic.ts +4 -4
  328. package/_src/STM/definition.ts +1 -1
  329. package/_src/State/definition.ts +1 -1
  330. package/_src/Stream/api.ts +315 -14
  331. package/_src/Subject/Atomic.ts +1 -1
  332. package/_src/global.ts +0 -4
  333. package/_src/index.ts +2 -2
  334. package/global.d.ts +0 -4
  335. package/index.d.ts +2 -2
  336. package/package.json +3 -3
  337. package/RuntimeConfig.d.ts +0 -11
  338. package/_cjs/RuntimeConfig.cjs +0 -12
  339. package/_cjs/RuntimeConfig.cjs.map +0 -1
  340. package/_mjs/RuntimeConfig.mjs +0 -3
  341. package/_mjs/RuntimeConfig.mjs.map +0 -1
  342. package/_src/RuntimeConfig.ts +0 -6
@@ -35,10 +35,9 @@ exports.cross = cross;
35
35
  exports.crossWith = void 0;
36
36
  exports.debounce = debounce;
37
37
  exports.defaultIfEmpty = defaultIfEmpty;
38
+ exports.defer = void 0;
38
39
  exports.distributedWith = distributedWith;
39
- exports.distributedWithDynamic = void 0;
40
- exports.drain = drain;
41
- exports.drop = void 0;
40
+ exports.drop = exports.drain = exports.distributedWithDynamic = void 0;
42
41
  exports.dropUntil = dropUntil;
43
42
  exports.dropWhile = void 0;
44
43
  exports.either = either;
@@ -48,6 +47,7 @@ exports.environment = exports.ensuring = void 0;
48
47
  exports.environmentWith = environmentWith;
49
48
  exports.environmentWithIO = environmentWithIO;
50
49
  exports.environmentWithStream = environmentWithStream;
50
+ exports.execute = void 0;
51
51
  exports.fail = fail;
52
52
  exports.failCause = failCause;
53
53
  exports.failNow = exports.failCauseNow = void 0;
@@ -83,18 +83,24 @@ exports.mapConcatIO = mapConcatIO;
83
83
  exports.mapError = void 0;
84
84
  exports.mapErrorCause = mapErrorCause;
85
85
  exports.mapIO = void 0;
86
- exports.mapIOC = mapIOC;
87
- exports.mergeMap = exports.mergeEither = void 0;
86
+ exports.mapIOConcurrently = mapIOConcurrently;
87
+ exports.mapIOConcurrentlyUnordered = mapIOConcurrentlyUnordered;
88
+ exports.mergeEither = exports.merge = void 0;
89
+ exports.mergeHaltEither = mergeHaltEither;
90
+ exports.mergeHaltLeft = mergeHaltLeft;
91
+ exports.mergeHaltRight = mergeHaltRight;
92
+ exports.mergeLeft = mergeLeft;
93
+ exports.mergeMap = void 0;
88
94
  exports.mergeMapIO = mergeMapIO;
95
+ exports.mergeRight = mergeRight;
89
96
  exports.mergeWith = void 0;
90
- exports.mergeWithHandler = mergeWithHandler;
91
97
  exports.onError = onError;
92
98
  exports.orElse = void 0;
93
99
  exports.orElseEither = orElseEither;
94
100
  exports.orElseFail = orElseFail;
95
101
  exports.orElseOptional = orElseOptional;
96
102
  exports.orElseSucceed = orElseSucceed;
97
- exports.provideLayer = exports.provideEnvironment = exports.pipeThrough = void 0;
103
+ exports.provideLayer = exports.provideEnvironment = exports.pipeThroughChannelOrFail = exports.pipeThrough = void 0;
98
104
  exports.provideSomeLayer = provideSomeLayer;
99
105
  exports.rechunk = rechunk;
100
106
  exports.repeatIO = repeatIO;
@@ -104,17 +110,25 @@ exports.repeatValue = repeatValue;
104
110
  exports.run = void 0;
105
111
  exports.runCollect = runCollect;
106
112
  exports.runDrain = runDrain;
107
- exports.runScoped = exports.runIntoQueueScoped = exports.runIntoHubScoped = exports.runIntoElementsScoped_ = exports.runForeachScoped = void 0;
113
+ exports.runForeachScoped = void 0;
114
+ exports.runIntoElementsScoped_ = runIntoElementsScoped_;
115
+ exports.runScoped = exports.runIntoQueueScoped = exports.runIntoQueueElementsScoped = exports.runIntoHubScoped = void 0;
108
116
  exports.scan = scan;
109
117
  exports.scanIO = void 0;
110
118
  exports.scanReduce = scanReduce;
111
119
  exports.scoped = exports.scanReduceIO = void 0;
120
+ exports.sliding = sliding;
121
+ exports.split = split;
112
122
  exports.succeed = succeed;
113
123
  exports.succeedNow = void 0;
114
124
  exports.take = take;
115
125
  exports.takeUntil = takeUntil;
116
126
  exports.takeUntilIO = takeUntilIO;
117
- exports.tap = tap;
127
+ exports.tap = void 0;
128
+ exports.tapBoth = tapBoth;
129
+ exports.tapError = void 0;
130
+ exports.tapErrorCause = tapErrorCause;
131
+ exports.tapSink = tapSink;
118
132
  exports.throttleEnforce = throttleEnforce;
119
133
  exports.toQueue = exports.toPull = exports.toHub = exports.throttleEnforceIO = void 0;
120
134
  exports.toQueueDropping = toQueueDropping;
@@ -179,20 +193,23 @@ var tsplus_module_49 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/requir
179
193
  var tsplus_module_50 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/environment"));
180
194
  var tsplus_module_51 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/collection/immutable/Conc/findIO"));
181
195
  var tsplus_module_52 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Exit/definition"));
182
- var tsplus_module_53 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Stream/internal/Pull"));
183
- var tsplus_module_54 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Queue/api/takeBetween"));
184
- var tsplus_module_55 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/interruptWhen"));
185
- var tsplus_module_56 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/mapOutConcurrentIO"));
186
- var tsplus_module_57 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/mergeMap"));
187
- var tsplus_module_58 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/internal/MergeDecision"));
188
- var tsplus_module_59 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/mergeWith"));
189
- var tsplus_module_60 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Layer/MemoMap"));
190
- var tsplus_module_61 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Layer/api"));
191
- var tsplus_module_62 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/runDrain"));
192
- var tsplus_module_63 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/exceptions"));
193
- var tsplus_module_64 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/toPull"));
196
+ var tsplus_module_53 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/Conc/definition"));
197
+ var tsplus_module_54 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Stream/internal/Pull"));
198
+ var tsplus_module_55 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Queue/api/takeBetween"));
199
+ var tsplus_module_56 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/interruptWhen"));
200
+ var tsplus_module_57 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/mapOutConcurrentIO"));
201
+ var tsplus_module_58 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/mergeMap"));
202
+ var tsplus_module_59 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/internal/MergeDecision"));
203
+ var tsplus_module_60 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/mergeWith"));
204
+ var tsplus_module_61 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Layer/MemoMap"));
205
+ var tsplus_module_62 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Layer/api"));
206
+ var tsplus_module_63 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/runDrain"));
207
+ var tsplus_module_64 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/definition"));
208
+ var tsplus_module_65 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/exceptions"));
209
+ var tsplus_module_66 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/interrupt"));
210
+ var tsplus_module_67 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Channel/api/toPull"));
194
211
  var _function = /*#__PURE__*/require("@fncts/base/data/function");
195
- var _definition2 = /*#__PURE__*/require("./definition.cjs");
212
+ var _definition4 = /*#__PURE__*/require("./definition.cjs");
196
213
  var _Handoff2 = /*#__PURE__*/require("./internal/Handoff.cjs");
197
214
  var _SinkEndReason2 = /*#__PURE__*/require("./internal/SinkEndReason.cjs");
198
215
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -224,8 +241,12 @@ const concat = concat_1;
224
241
  exports.concat = concat;
225
242
  const crossWith = crossWith_1;
226
243
  exports.crossWith = crossWith;
244
+ const defer = defer_1;
245
+ exports.defer = defer;
227
246
  const distributedWithDynamic = distributedWithDynamic_1;
228
247
  exports.distributedWithDynamic = distributedWithDynamic;
248
+ const drain = drain_1;
249
+ exports.drain = drain;
229
250
  const drop = drop_1;
230
251
  exports.drop = drop;
231
252
  const dropWhile = dropWhile_1;
@@ -234,6 +255,8 @@ const ensuring = ensuring_1;
234
255
  exports.ensuring = ensuring;
235
256
  const environment = environment_1;
236
257
  exports.environment = environment;
258
+ const execute = execute_1;
259
+ exports.execute = execute;
237
260
  const failNow = failNow_1;
238
261
  exports.failNow = failNow;
239
262
  const failCauseNow = failCauseNow_1;
@@ -284,6 +307,8 @@ const mapError = mapError_1;
284
307
  exports.mapError = mapError;
285
308
  const mapIO = mapIO_1;
286
309
  exports.mapIO = mapIO;
310
+ const merge = merge_1;
311
+ exports.merge = merge;
287
312
  const mergeMap = mergeMap_1;
288
313
  exports.mergeMap = mergeMap;
289
314
  const mergeEither = mergeEither_1;
@@ -294,6 +319,8 @@ const orElse = orElse_1;
294
319
  exports.orElse = orElse;
295
320
  const pipeThrough = pipeThrough_1;
296
321
  exports.pipeThrough = pipeThrough;
322
+ const pipeThroughChannelOrFail = pipeThroughChannelOrFail_1;
323
+ exports.pipeThroughChannelOrFail = pipeThroughChannelOrFail;
297
324
  const provideEnvironment = provideEnvironment_1;
298
325
  exports.provideEnvironment = provideEnvironment;
299
326
  const provideLayer = provideLayer_1;
@@ -306,10 +333,10 @@ const run = run_1;
306
333
  exports.run = run;
307
334
  const runForeachScoped = runForeachScoped_1;
308
335
  exports.runForeachScoped = runForeachScoped;
309
- const runIntoElementsScoped_ = runIntoElementsScoped_1;
310
- exports.runIntoElementsScoped_ = runIntoElementsScoped_;
311
336
  const runIntoQueueScoped = runIntoQueueScoped_1;
312
337
  exports.runIntoQueueScoped = runIntoQueueScoped;
338
+ const runIntoQueueElementsScoped = runIntoQueueElementsScoped_1;
339
+ exports.runIntoQueueElementsScoped = runIntoQueueElementsScoped;
313
340
  const runIntoHubScoped = runIntoHubScoped_1;
314
341
  exports.runIntoHubScoped = runIntoHubScoped;
315
342
  const runScoped = runScoped_1;
@@ -320,6 +347,10 @@ const scanReduceIO = scanReduceIO_1;
320
347
  exports.scanReduceIO = scanReduceIO;
321
348
  const succeedNow = succeedNow_1;
322
349
  exports.succeedNow = succeedNow;
350
+ const tap = tap_1;
351
+ exports.tap = tap;
352
+ const tapError = tapError_1;
353
+ exports.tapError = tapError;
323
354
  const throttleEnforceIO = throttleEnforceIO_1;
324
355
  exports.throttleEnforceIO = throttleEnforceIO;
325
356
  const toHub = toHub_1;
@@ -376,7 +407,7 @@ function aggregateAsync(sink, __tsplusTrace) {
376
407
  */
377
408
  function aggregateAsyncWithin_1(sink, schedule, __tsplusTrace) {
378
409
  return stream => {
379
- return filterMap_1(cb => tsplus_module_4.match(() => tsplus_module_3.nothing(), tsplus_module_3.just)(cb), __tsplusTrace)(aggregateAsyncWithinEither_1(sink, schedule, __tsplusTrace)(stream));
410
+ return filterMap_1(cb => tsplus_module_4.match(() => tsplus_module_3.nothing(__tsplusTrace), tsplus_module_3.just)(cb), __tsplusTrace)(aggregateAsyncWithinEither_1(sink, schedule, __tsplusTrace)(stream));
380
411
  };
381
412
  }
382
413
  /**
@@ -429,15 +460,15 @@ function aggregateAsyncWithinEither_1(sink, schedule, __tsplusTrace) {
429
460
  function handleSide(leftovers, b, c, __tsplusTrace) {
430
461
  return tsplus_module_10.unwrap(() => tsplus_module_1.zipRight(tsplus_module_1.map(reason => tsplus_module_21.matchSinkEndReason({
431
462
  ScheduleEnd: () => tsplus_module_10.unwrapScoped(() => tsplus_module_1.flatMap(consumed_ => tsplus_module_1.flatMap(sinkFiber => tsplus_module_1.map(scheduleFiber => {
432
- const toWrite = tsplus_module_20.match(() => tsplus_module_19.make(tsplus_module_18.right(b)), c => tsplus_module_19.make(tsplus_module_18.right(b), tsplus_module_18.left(c)))(c);
463
+ const toWrite = tsplus_module_20.match(() => tsplus_module_19.make(tsplus_module_18.right(b, __tsplusTrace)), c => tsplus_module_19.make(tsplus_module_18.right(b, __tsplusTrace), tsplus_module_18.left(c, __tsplusTrace)))(c);
433
464
  return consumed_ ? tsplus_module_11.zipRight(scheduledAggregator(sinkFiber, scheduleFiber))(tsplus_module_10.write(() => toWrite)) : scheduledAggregator(sinkFiber, scheduleFiber);
434
- }, __tsplusTrace)(tsplus_module_17.forkScoped(timeout(tsplus_module_3.just(b), __tsplusTrace), __tsplusTrace)), __tsplusTrace)(forkSink), __tsplusTrace)(tsplus_module_14.get(consumed, __tsplusTrace))),
435
- UpstreamEnd: () => tsplus_module_10.unwrap(() => tsplus_module_1.map(p => p ? tsplus_module_10.write(() => tsplus_module_19.make(tsplus_module_18.right(b))) : tsplus_module_10.unit, __tsplusTrace)(tsplus_module_14.get(consumed, __tsplusTrace)))
465
+ }, __tsplusTrace)(tsplus_module_17.forkScoped(timeout(tsplus_module_3.just(b, __tsplusTrace), __tsplusTrace), __tsplusTrace)), __tsplusTrace)(forkSink), __tsplusTrace)(tsplus_module_14.get(consumed, __tsplusTrace))),
466
+ UpstreamEnd: () => tsplus_module_10.unwrap(() => tsplus_module_1.map(p => p ? tsplus_module_10.write(() => tsplus_module_19.make(tsplus_module_18.right(b, __tsplusTrace))) : tsplus_module_10.unit, __tsplusTrace)(tsplus_module_14.get(consumed, __tsplusTrace)))
436
467
  })(reason), __tsplusTrace)(tsplus_module_14.get(sinkEndReason, __tsplusTrace)), __tsplusTrace)(tsplus_module_13.set(tsplus_module_12.flatten(leftovers), __tsplusTrace)(sinkLeftovers)));
437
468
  }
438
- return tsplus_module_10.unwrap(() => tsplus_module_26.raceWith(() => tsplus_module_22.join(scheduleFiber, __tsplusTrace), (sinkExit, scheduleFiber) => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(), __tsplusTrace), __tsplusTrace)(tsplus_module_1.fromExit(() => sinkExit, __tsplusTrace)), __tsplusTrace)(tsplus_module_23.interrupt(scheduleFiber)), (scheduleExit, sinkFiber) => tsplus_module_1.matchCauseIO(cause => tsplus_module_4.match(() => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.end(new _SinkEndReason2.ScheduleEnd()))(handoff), __tsplusTrace)), cause => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.halt(cause))(handoff), __tsplusTrace)))(tsplus_module_25.failureOrCause(cause)), c => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.just(c), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.end(new _SinkEndReason2.ScheduleEnd()))(handoff), __tsplusTrace)), __tsplusTrace)(tsplus_module_1.fromExit(() => scheduleExit, __tsplusTrace)), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)));
469
+ return tsplus_module_10.unwrap(() => tsplus_module_26.raceWith(() => tsplus_module_22.join(scheduleFiber, __tsplusTrace), (sinkExit, scheduleFiber) => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), __tsplusTrace)(tsplus_module_1.fromExit(() => sinkExit, __tsplusTrace)), __tsplusTrace)(tsplus_module_23.interrupt(scheduleFiber)), (scheduleExit, sinkFiber) => tsplus_module_1.matchCauseIO(cause => tsplus_module_4.match(() => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.end(new _SinkEndReason2.ScheduleEnd()))(handoff), __tsplusTrace)), cause => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.halt(cause))(handoff), __tsplusTrace)))(tsplus_module_25.failureOrCause(cause)), c => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.just(c, __tsplusTrace), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.end(new _SinkEndReason2.ScheduleEnd()))(handoff), __tsplusTrace)), __tsplusTrace)(tsplus_module_1.fromExit(() => scheduleExit, __tsplusTrace)), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)));
439
470
  };
440
- return unwrapScoped_1(tsplus_module_1.flatMap(() => tsplus_module_1.flatMap(sinkFiber => tsplus_module_1.map(scheduleFiber => new _definition2.Stream(scheduledAggregator(sinkFiber, scheduleFiber)), __tsplusTrace)(tsplus_module_17.forkScoped(timeout(tsplus_module_3.nothing(), __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_17.forkScoped(tsplus_module_16.runScoped(tsplus_module_10.doneCollect(tsplus_module_10.pipeToOrFail(sink.channel)(handoffConsumer))), __tsplusTrace)), __tsplusTrace)(tsplus_module_17.forkScoped(tsplus_module_16.runScoped(tsplus_module_10.pipeTo(handoffProducer)(stream.channel)), __tsplusTrace)), __tsplusTrace);
471
+ return unwrapScoped_1(tsplus_module_1.flatMap(() => tsplus_module_1.flatMap(sinkFiber => tsplus_module_1.map(scheduleFiber => new _definition4.Stream(scheduledAggregator(sinkFiber, scheduleFiber)), __tsplusTrace)(tsplus_module_17.forkScoped(timeout(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_17.forkScoped(tsplus_module_16.runScoped(tsplus_module_10.doneCollect(tsplus_module_10.pipeToOrFail(sink.channel)(handoffConsumer))), __tsplusTrace)), __tsplusTrace)(tsplus_module_17.forkScoped(tsplus_module_16.runScoped(tsplus_module_10.pipeTo(handoffProducer)(stream.channel)), __tsplusTrace)), __tsplusTrace);
441
472
  }, __tsplusTrace)(fromIO_1(deps, __tsplusTrace));
442
473
  };
443
474
  }
@@ -481,10 +512,14 @@ function as(b, __tsplusTrace) {
481
512
  function asyncInterrupt_1(register, outputBuffer = 16, __tsplusTrace) {
482
513
  return unwrapScoped_1(tsplus_module_1.flatMap(output => tsplus_module_1.flatMap(runtime => tsplus_module_1.map(eitherStream => tsplus_module_4.match(canceler => {
483
514
  const loop = tsplus_module_10.unwrap(() => tsplus_module_1.match(maybeError => tsplus_module_20.match(() => tsplus_module_11.endNow(undefined), tsplus_module_10.failNow)(maybeError), as => tsplus_module_11.zipRight(loop)(tsplus_module_10.writeNow(as)), __tsplusTrace)(tsplus_module_1.flatMap(take => tsplus_module_27.done(take), __tsplusTrace)(tsplus_module_28.take(output, __tsplusTrace))));
484
- return ensuring_1(canceler, __tsplusTrace)(new _definition2.Stream(loop));
515
+ return ensuring_1(canceler, __tsplusTrace)(new _definition4.Stream(loop));
485
516
  }, stream => unwrap_1(tsplus_module_1.as(() => stream, __tsplusTrace)(tsplus_module_28.shutdown(output, __tsplusTrace)), __tsplusTrace))(eitherStream), __tsplusTrace)(tsplus_module_1.succeed(() => register((k, cb) => {
486
517
  const effect = tsplus_module_1.flatMap(a => tsplus_module_28.offer(a, __tsplusTrace)(output), __tsplusTrace)(tsplus_module_27.fromPull(k));
487
- return runtime.unsafeRunAsyncWith(effect, cb || _function.constVoid, __tsplusTrace);
518
+ const fiber = runtime.makeFiber(effect, __tsplusTrace);
519
+ if (cb) {
520
+ fiber.addObserver(cb);
521
+ }
522
+ fiber.start(effect);
488
523
  }), __tsplusTrace)), __tsplusTrace)(tsplus_module_29.runtime(__tsplusTrace)), __tsplusTrace)(tsplus_module_31.acquireRelease(() => tsplus_module_30.makeBounded(outputBuffer, __tsplusTrace), queue => tsplus_module_28.shutdown(queue, __tsplusTrace), __tsplusTrace)), __tsplusTrace);
489
524
  }
490
525
  /**
@@ -496,7 +531,7 @@ function asyncInterrupt_1(register, outputBuffer = 16, __tsplusTrace) {
496
531
  * @tsplus static fncts.io.StreamOps asyncMaybe
497
532
  */
498
533
  function asyncMaybe_1(register, outputBuffer = 16, __tsplusTrace) {
499
- return asyncInterrupt_1(k => tsplus_module_20.match(() => tsplus_module_18.left(tsplus_module_1.unit), tsplus_module_18.right)(register(k)), outputBuffer, __tsplusTrace);
534
+ return asyncInterrupt_1(k => tsplus_module_20.match(() => tsplus_module_18.left(tsplus_module_1.unit, __tsplusTrace), tsplus_module_18.right)(register(k)), outputBuffer, __tsplusTrace);
500
535
  }
501
536
  /**
502
537
  * @tsplus static fncts.io.StreamOps async
@@ -504,17 +539,24 @@ function asyncMaybe_1(register, outputBuffer = 16, __tsplusTrace) {
504
539
  function async(register, outputBuffer = 16, __tsplusTrace) {
505
540
  return asyncMaybe_1(cb => {
506
541
  register(cb);
507
- return tsplus_module_3.nothing();
542
+ return tsplus_module_3.nothing(__tsplusTrace);
508
543
  }, outputBuffer, __tsplusTrace);
509
544
  }
510
545
  /**
511
546
  * @tsplus static fncts.io.StreamOps asyncIO
512
547
  */
513
548
  function asyncIO(register, outputBuffer = 16, __tsplusTrace) {
514
- return new _definition2.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.flatMap(output => tsplus_module_1.flatMap(runtime => tsplus_module_1.map(() => {
549
+ return new _definition4.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.flatMap(output => tsplus_module_1.flatMap(runtime => tsplus_module_1.map(() => {
515
550
  const loop = tsplus_module_10.unwrap(() => tsplus_module_1.matchCauseIO(cause => tsplus_module_1.as(() => tsplus_module_4.match(maybeError => tsplus_module_20.match(() => tsplus_module_11.endNow(undefined), tsplus_module_10.failNow)(maybeError), tsplus_module_11.failCauseNow)(tsplus_module_25.failureOrCause(cause)), __tsplusTrace)(tsplus_module_28.shutdown(output, __tsplusTrace)), as => tsplus_module_1.succeed(() => tsplus_module_11.zipRight(loop)(tsplus_module_10.writeNow(as)), __tsplusTrace), __tsplusTrace)(tsplus_module_1.flatMap(take => tsplus_module_27.done(take), __tsplusTrace)(tsplus_module_28.take(output, __tsplusTrace))));
516
551
  return loop;
517
- }, __tsplusTrace)(register((k, cb) => runtime.unsafeRunAsyncWith(tsplus_module_1.flatMap(a => tsplus_module_28.offer(a, __tsplusTrace)(output), __tsplusTrace)(tsplus_module_27.fromPull(k)), cb || _function.constVoid, __tsplusTrace))), __tsplusTrace)(tsplus_module_29.runtime(__tsplusTrace)), __tsplusTrace)(tsplus_module_31.acquireRelease(() => tsplus_module_30.makeBounded(outputBuffer, __tsplusTrace), _ => tsplus_module_28.shutdown(_, __tsplusTrace), __tsplusTrace))));
552
+ }, __tsplusTrace)(register((k, cb) => {
553
+ const io = tsplus_module_1.flatMap(a => tsplus_module_28.offer(a, __tsplusTrace)(output), __tsplusTrace)(tsplus_module_27.fromPull(k));
554
+ const fiber = runtime.makeFiber(io, __tsplusTrace);
555
+ if (cb) {
556
+ fiber.addObserver(cb);
557
+ }
558
+ fiber.start(io);
559
+ })), __tsplusTrace)(tsplus_module_29.runtime(__tsplusTrace)), __tsplusTrace)(tsplus_module_31.acquireRelease(() => tsplus_module_30.makeBounded(outputBuffer, __tsplusTrace), _ => tsplus_module_28.shutdown(_, __tsplusTrace), __tsplusTrace))));
518
560
  }
519
561
  /**
520
562
  * Returns a stream whose failure and success channels have been mapped by
@@ -602,7 +644,7 @@ function broadcastedQueuesDynamic_1(maximumLag, __tsplusTrace) {
602
644
  function buffer(capacity, __tsplusTrace) {
603
645
  return stream => {
604
646
  const queue = toQueueOfElements_1(capacity, __tsplusTrace)(stream);
605
- return new _definition2.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(queue => {
647
+ return new _definition4.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(queue => {
606
648
  const process = tsplus_module_11.flatMap(exit => tsplus_module_36.match(cause => tsplus_module_20.match(() => tsplus_module_11.endNow(undefined), tsplus_module_11.failCauseNow)(tsplus_module_25.flipCauseOption(cause)), value => tsplus_module_11.zipRight(process)(tsplus_module_10.writeNow(tsplus_module_19.single(value))))(exit))(tsplus_module_10.fromIO(() => tsplus_module_28.take(queue, __tsplusTrace)));
607
649
  return process;
608
650
  }, __tsplusTrace)(queue)));
@@ -614,7 +656,7 @@ function buffer(capacity, __tsplusTrace) {
614
656
  function bufferChunks(capacity, __tsplusTrace) {
615
657
  return stream => {
616
658
  const queue = toQueue_1(capacity, __tsplusTrace)(stream);
617
- return new _definition2.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(queue => {
659
+ return new _definition4.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(queue => {
618
660
  const process = tsplus_module_11.flatMap(take => tsplus_module_27.match(tsplus_module_11.endNow(undefined), tsplus_module_11.failCauseNow, value => tsplus_module_11.zipRight(process)(tsplus_module_10.writeNow(value)))(take))(tsplus_module_10.fromIO(() => tsplus_module_28.take(queue, __tsplusTrace)));
619
661
  return process;
620
662
  }, __tsplusTrace)(queue)));
@@ -628,7 +670,7 @@ function bufferChunks(capacity, __tsplusTrace) {
628
670
  */
629
671
  function bufferUnbounded(stream, __tsplusTrace) {
630
672
  const queue = toQueueUnbounded_1(stream, __tsplusTrace);
631
- return new _definition2.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(queue => {
673
+ return new _definition4.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(queue => {
632
674
  const process = tsplus_module_11.flatMap(take => tsplus_module_27.match(tsplus_module_11.endNow(undefined), tsplus_module_11.failCauseNow, value => tsplus_module_11.zipRight(process)(tsplus_module_10.writeNow(value)))(take))(tsplus_module_10.fromIO(() => tsplus_module_28.take(queue, __tsplusTrace)));
633
675
  return process;
634
676
  }, __tsplusTrace)(queue)));
@@ -662,7 +704,7 @@ function catchAll_1(f, __tsplusTrace) {
662
704
  function catchAllCause_1(f, __tsplusTrace) {
663
705
  return stream => {
664
706
  const channel = tsplus_module_10.catchAllCause(cause => f(cause).channel)(stream.channel);
665
- return new _definition2.Stream(channel);
707
+ return new _definition4.Stream(channel);
666
708
  };
667
709
  }
668
710
  /**
@@ -696,7 +738,7 @@ function catchJustCause(pf, __tsplusTrace) {
696
738
  */
697
739
  function flatMap_1(f, __tsplusTrace) {
698
740
  return stream => {
699
- return new _definition2.Stream(tsplus_module_10.concatMap(as => tsplus_module_12.foldLeft(tsplus_module_10.unit, (s, a) => tsplus_module_11.flatMap(() => a)(s))(tsplus_module_12.map(a => f(a).channel)(as)))(stream.channel));
741
+ return new _definition4.Stream(tsplus_module_10.concatMap(as => tsplus_module_12.foldLeft(tsplus_module_10.unit, (s, a) => tsplus_module_11.flatMap(() => a)(s))(tsplus_module_12.map(a => f(a).channel)(as)))(stream.channel));
700
742
  };
701
743
  }
702
744
  /**
@@ -720,7 +762,7 @@ function chunksWith(f, __tsplusTrace) {
720
762
  }
721
763
  function changesWithWriter(f, last, __tsplusTrace) {
722
764
  return tsplus_module_10.readWithCause(chunk => {
723
- const [newLast, newChunk] = tsplus_module_12.foldLeft([last, tsplus_module_7.empty()], ([maybeLast, os], o1) => tsplus_module_20.match(() => [tsplus_module_3.just(o1), tsplus_module_12.append(o1)(os)], o => f(o, o1) ? [tsplus_module_3.just(o1), os] : [tsplus_module_3.just(o1), tsplus_module_12.append(o1)(os)])(maybeLast))(chunk);
765
+ const [newLast, newChunk] = tsplus_module_12.foldLeft([last, tsplus_module_7.empty()], ([maybeLast, os], o1) => tsplus_module_20.match(() => [tsplus_module_3.just(o1, __tsplusTrace), tsplus_module_12.append(o1)(os)], o => f(o, o1) ? [tsplus_module_3.just(o1, __tsplusTrace), os] : [tsplus_module_3.just(o1, __tsplusTrace), tsplus_module_12.append(o1)(os)])(maybeLast))(chunk);
724
766
  return tsplus_module_11.zipRight(changesWithWriter(f, newLast, __tsplusTrace))(tsplus_module_10.writeNow(newChunk));
725
767
  }, tsplus_module_11.failCauseNow, () => tsplus_module_10.unit);
726
768
  }
@@ -733,7 +775,7 @@ function changesWithWriter(f, last, __tsplusTrace) {
733
775
  */
734
776
  function changesWith(f, __tsplusTrace) {
735
777
  return stream => {
736
- return new _definition2.Stream(tsplus_module_10.pipeTo(changesWithWriter(f, tsplus_module_3.nothing(), __tsplusTrace))(stream.channel));
778
+ return new _definition4.Stream(tsplus_module_10.pipeTo(changesWithWriter(f, tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace))(stream.channel));
737
779
  };
738
780
  }
739
781
  /**
@@ -751,14 +793,14 @@ function collectWhile(pf, __tsplusTrace) {
751
793
  return tsplus_module_10.writeNow(mapped);
752
794
  }
753
795
  }, tsplus_module_10.failNow, tsplus_module_11.succeedNow);
754
- return new _definition2.Stream(tsplus_module_10.pipeTo(loop)(stream.channel));
796
+ return new _definition4.Stream(tsplus_module_10.pipeTo(loop)(stream.channel));
755
797
  };
756
798
  }
757
799
  /**
758
800
  * Effectfully transforms all elements of the stream for as long as the specified partial function is defined.
759
801
  */
760
802
  function collectWhileIO(stream, pf, __tsplusTrace) {
761
- return new _definition2.Stream(tsplus_module_10.pipeTo(collectWhileIOLoop(tsplus_module_40.empty()[Symbol.iterator](), pf, __tsplusTrace))(stream.channel));
803
+ return new _definition4.Stream(tsplus_module_10.pipeTo(collectWhileIOLoop(tsplus_module_40.empty()[Symbol.iterator](), pf, __tsplusTrace))(stream.channel));
762
804
  }
763
805
  function collectWhileIOLoop(iterator, pf, __tsplusTrace) {
764
806
  const next = iterator.next();
@@ -769,7 +811,7 @@ function collectWhileIOLoop(iterator, pf, __tsplusTrace) {
769
811
  }
770
812
  }
771
813
  function combineProducer(handoff, latch, __tsplusTrace) {
772
- return tsplus_module_11.zipRight(tsplus_module_10.readWithCause(value => tsplus_module_11.zipRight(combineProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.succeed(value))(handoff))), cause => tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.failCause(tsplus_module_25.map(tsplus_module_3.just)(cause)))(handoff)), () => tsplus_module_11.zipRight(combineProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.fail(tsplus_module_3.nothing()))(handoff)))))(tsplus_module_10.fromIO(() => tsplus_module_5.take(latch)));
814
+ return tsplus_module_11.zipRight(tsplus_module_10.readWithCause(value => tsplus_module_11.zipRight(combineProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.succeed(value, __tsplusTrace))(handoff))), cause => tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.failCause(tsplus_module_25.map(tsplus_module_3.just)(cause), __tsplusTrace))(handoff)), () => tsplus_module_11.zipRight(combineProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.fail(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace))(handoff)))))(tsplus_module_10.fromIO(() => tsplus_module_5.take(latch)));
773
815
  }
774
816
  /**
775
817
  * Combines the elements from this stream and the specified stream by repeatedly applying the
@@ -783,7 +825,7 @@ function combineProducer(handoff, latch, __tsplusTrace) {
783
825
  */
784
826
  function combine(that, s, f, __tsplusTrace) {
785
827
  return stream => {
786
- return new _definition2.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(([left, right, latchL, latchR]) => {
828
+ return new _definition4.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(([left, right, latchL, latchR]) => {
787
829
  const pullLeft = tsplus_module_1.flatMap(tsplus_module_1.fromExitNow, __tsplusTrace)(tsplus_module_1.zipRight(tsplus_module_5.take(left), __tsplusTrace)(tsplus_module_5.offer(undefined)(latchL)));
788
830
  const pullRight = tsplus_module_1.flatMap(tsplus_module_1.fromExitNow, __tsplusTrace)(tsplus_module_1.zipRight(tsplus_module_5.take(right), __tsplusTrace)(tsplus_module_5.offer(undefined)(latchR)));
789
831
  return unfoldIO_1(s, s => tsplus_module_1.flatMap(exit => tsplus_module_1.optional(tsplus_module_1.fromExitNow(exit, __tsplusTrace), __tsplusTrace), __tsplusTrace)(f(s, pullLeft, pullRight)), __tsplusTrace).channel;
@@ -791,7 +833,7 @@ function combine(that, s, f, __tsplusTrace) {
791
833
  };
792
834
  }
793
835
  function combineChunksProducer(handoff, latch, __tsplusTrace) {
794
- return tsplus_module_11.zipRight(tsplus_module_10.readWithCause(chunk => tsplus_module_11.zipRight(combineChunksProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.chunk(chunk))(handoff))), cause => tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.failCause(cause))(handoff)), () => tsplus_module_11.zipRight(combineChunksProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.end)(handoff)))))(tsplus_module_10.fromIO(() => tsplus_module_5.take(latch)));
836
+ return tsplus_module_11.zipRight(tsplus_module_10.readWithCause(chunk => tsplus_module_11.zipRight(combineChunksProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.chunk(chunk))(handoff))), cause => tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.failCause(cause))(handoff)), () => tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.end)(handoff))))(tsplus_module_10.fromIO(() => tsplus_module_5.take(latch)));
795
837
  }
796
838
  /**
797
839
  * Combines the chunks from this stream and the specified stream by repeatedly applying the
@@ -803,7 +845,7 @@ function combineChunksProducer(handoff, latch, __tsplusTrace) {
803
845
  */
804
846
  function combineChunks(that, s, f, __tsplusTrace) {
805
847
  return stream => {
806
- return new _definition2.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(([left, right, latchL, latchR]) => {
848
+ return new _definition4.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(([left, right, latchL, latchR]) => {
807
849
  const pullLeft = tsplus_module_1.flatMap(take => tsplus_module_27.done(take), __tsplusTrace)(tsplus_module_1.zipRight(tsplus_module_5.take(left), __tsplusTrace)(tsplus_module_5.offer(undefined)(latchL)));
808
850
  const pullRight = tsplus_module_1.flatMap(take => tsplus_module_27.done(take), __tsplusTrace)(tsplus_module_1.zipRight(tsplus_module_5.take(right), __tsplusTrace)(tsplus_module_5.offer(undefined)(latchR)));
809
851
  return unfoldChunkIO_1(s, s => tsplus_module_1.flatMap(exit => tsplus_module_1.optional(tsplus_module_1.fromExit(() => exit, __tsplusTrace), __tsplusTrace), __tsplusTrace)(f(s, pullLeft, pullRight)), __tsplusTrace).channel;
@@ -818,7 +860,7 @@ function combineChunks(that, s, f, __tsplusTrace) {
818
860
  */
819
861
  function concat_1(that, __tsplusTrace) {
820
862
  return stream => {
821
- return new _definition2.Stream(tsplus_module_11.zipRight(that.channel)(stream.channel));
863
+ return new _definition4.Stream(tsplus_module_11.zipRight(that.channel)(stream.channel));
822
864
  };
823
865
  }
824
866
  /**
@@ -829,7 +871,7 @@ function concat_1(that, __tsplusTrace) {
829
871
  */
830
872
  function cross(that, __tsplusTrace) {
831
873
  return stream => {
832
- return new _definition2.Stream(tsplus_module_10.concatMap(as => tsplus_module_10.mapOut(bs => tsplus_module_12.flatMap(a => tsplus_module_12.map(b => (0, _function.tuple)(a, b))(bs))(as))(that.channel))(stream.channel));
874
+ return new _definition4.Stream(tsplus_module_10.concatMap(as => tsplus_module_10.mapOut(bs => tsplus_module_12.flatMap(a => tsplus_module_12.map(b => (0, _function.tuple)(a, b))(bs))(as))(that.channel))(stream.channel));
833
875
  };
834
876
  }
835
877
  /**
@@ -900,10 +942,16 @@ function debounce(duration, __tsplusTrace) {
900
942
  })(signal))(ex), __tsplusTrace)(tsplus_module_22.join(fiber, __tsplusTrace))
901
943
  })(state));
902
944
  }
903
- return zipRight_1(new _definition2.Stream(consumer(tsplus_module_42.notStarted, __tsplusTrace)), __tsplusTrace)(scoped_1(() => tsplus_module_33.fork(tsplus_module_16.runScoped(tsplus_module_10.pipeTo(producer)(stream.channel)), __tsplusTrace), __tsplusTrace));
945
+ return zipRight_1(new _definition4.Stream(consumer(tsplus_module_42.notStarted, __tsplusTrace)), __tsplusTrace)(scoped_1(() => tsplus_module_33.fork(tsplus_module_16.runScoped(tsplus_module_10.pipeTo(producer)(stream.channel)), __tsplusTrace), __tsplusTrace));
904
946
  }, __tsplusTrace)(tsplus_module_5.make()), __tsplusTrace), __tsplusTrace);
905
947
  };
906
948
  }
949
+ /**
950
+ * @tsplus static fncts.io.StreamOps defer
951
+ */
952
+ function defer_1(self) {
953
+ return new _definition4.Stream(tsplus_module_10.defer(() => self().channel));
954
+ }
907
955
  function defaultIfEmptyWriter(fb, __tsplusTrace) {
908
956
  return tsplus_module_10.readWith(i => tsplus_module_12.isEmpty(i) ? defaultIfEmptyWriter(fb, __tsplusTrace) : tsplus_module_11.zipRight(tsplus_module_10.id())(tsplus_module_10.writeNow(i)), tsplus_module_10.failNow, () => fb.channel);
909
957
  }
@@ -914,7 +962,7 @@ function defaultIfEmptyWriter(fb, __tsplusTrace) {
914
962
  */
915
963
  function defaultIfEmpty(fb, __tsplusTrace) {
916
964
  return fa => {
917
- return new _definition2.Stream(tsplus_module_10.pipeTo(defaultIfEmptyWriter(fb, __tsplusTrace))(fa.channel));
965
+ return new _definition4.Stream(tsplus_module_10.pipeTo(defaultIfEmptyWriter(fb, __tsplusTrace))(fa.channel));
918
966
  };
919
967
  }
920
968
  /**
@@ -946,17 +994,17 @@ function distributedWithDynamic_1(maximumLag, decide, done = () => tsplus_module
946
994
  return self => {
947
995
  const offer = queuesRef => a => tsplus_module_1.flatMap(shouldProcess => tsplus_module_1.flatMap(queues => tsplus_module_1.flatMap(ids => tsplus_module_12.isNonEmpty(ids) ? tsplus_module_15.update(map => tsplus_module_45.removeMany(ids)(map), __tsplusTrace)(queuesRef) : tsplus_module_1.unit, __tsplusTrace)(tsplus_module_1.foldLeft(queues, tsplus_module_7.empty(), (b, [id, queue]) => {
948
996
  if (shouldProcess(id)) {
949
- return tsplus_module_1.matchCauseIO(c => tsplus_module_25.interrupted(c) ? tsplus_module_1.succeedNow(tsplus_module_12.append(id)(b), __tsplusTrace) : tsplus_module_1.failCauseNow(c, __tsplusTrace), () => tsplus_module_1.succeedNow(b, __tsplusTrace), __tsplusTrace)(tsplus_module_28.offer(tsplus_module_41.succeed(a), __tsplusTrace)(queue));
997
+ return tsplus_module_1.matchCauseIO(c => tsplus_module_25.interrupted(c) ? tsplus_module_1.succeedNow(tsplus_module_12.append(id)(b), __tsplusTrace) : tsplus_module_1.failCauseNow(c, __tsplusTrace), () => tsplus_module_1.succeedNow(b, __tsplusTrace), __tsplusTrace)(tsplus_module_28.offer(tsplus_module_41.succeed(a, __tsplusTrace), __tsplusTrace)(queue));
950
998
  } else {
951
999
  return tsplus_module_1.succeedNow(b, __tsplusTrace);
952
1000
  }
953
1001
  }, __tsplusTrace)), __tsplusTrace)(tsplus_module_14.get(queuesRef, __tsplusTrace)), __tsplusTrace)(decide(a));
954
1002
  return tsplus_module_1.flatMap(queuesRef => tsplus_module_1.map(add => add, __tsplusTrace)(tsplus_module_1.flatMap(queuesLock => tsplus_module_1.flatMap(newQueue => {
955
- const finalize = endTake => queuesLock.withPermit(tsplus_module_1.asUnit(tsplus_module_1.flatMap(() => tsplus_module_1.flatMap(queues => tsplus_module_1.flatMap(() => tsplus_module_1.map(() => void 0, __tsplusTrace)(done(endTake)), __tsplusTrace)(tsplus_module_1.foreach(queues, queue => tsplus_module_1.catchJustCause(c => tsplus_module_25.interrupted(c) ? tsplus_module_3.just(tsplus_module_1.unit) : tsplus_module_3.nothing(), __tsplusTrace)(tsplus_module_28.offer(endTake, __tsplusTrace)(queue)), __tsplusTrace)), __tsplusTrace)(tsplus_module_1.map(map => tsplus_module_45.values(map), __tsplusTrace)(tsplus_module_14.get(queuesRef, __tsplusTrace))), __tsplusTrace)(tsplus_module_13.set(tsplus_module_1.flatMap(queue => tsplus_module_1.flatMap(() => {
1003
+ const finalize = endTake => queuesLock.withPermit(tsplus_module_1.asUnit(tsplus_module_1.flatMap(() => tsplus_module_1.flatMap(queues => tsplus_module_1.flatMap(() => tsplus_module_1.map(() => void 0, __tsplusTrace)(done(endTake)), __tsplusTrace)(tsplus_module_1.foreach(queues, queue => tsplus_module_1.catchJustCause(c => tsplus_module_25.interrupted(c) ? tsplus_module_3.just(tsplus_module_1.unit, __tsplusTrace) : tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace)(tsplus_module_28.offer(endTake, __tsplusTrace)(queue)), __tsplusTrace)), __tsplusTrace)(tsplus_module_1.map(map => tsplus_module_45.values(map), __tsplusTrace)(tsplus_module_14.get(queuesRef, __tsplusTrace))), __tsplusTrace)(tsplus_module_13.set(tsplus_module_1.flatMap(queue => tsplus_module_1.flatMap(() => {
956
1004
  const id = Symbol();
957
1005
  return tsplus_module_1.map(() => (0, _function.tuple)(id, queue), __tsplusTrace)(tsplus_module_15.update(map => tsplus_module_45.set(id, queue)(map), __tsplusTrace)(queuesRef));
958
1006
  }, __tsplusTrace)(tsplus_module_28.offer(endTake, __tsplusTrace)(queue)), __tsplusTrace)(tsplus_module_30.makeBounded(1, __tsplusTrace)), __tsplusTrace)(newQueue)), __tsplusTrace));
959
- return tsplus_module_1.map(() => queuesLock.withPermit(tsplus_module_1.flatten(tsplus_module_14.get(newQueue, __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_33.fork(tsplus_module_1.matchCauseIO(cause => finalize(tsplus_module_41.failCause(tsplus_module_25.map(tsplus_module_3.just)(cause))), () => finalize(tsplus_module_41.fail(tsplus_module_3.nothing())), __tsplusTrace)(runForeachScoped_1(offer(queuesRef), __tsplusTrace)(self)), __tsplusTrace));
1007
+ return tsplus_module_1.map(() => queuesLock.withPermit(tsplus_module_1.flatten(tsplus_module_14.get(newQueue, __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_33.fork(tsplus_module_1.matchCauseIO(cause => finalize(tsplus_module_41.failCause(tsplus_module_25.map(tsplus_module_3.just)(cause), __tsplusTrace)), () => finalize(tsplus_module_41.fail(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace)), __tsplusTrace)(runForeachScoped_1(offer(queuesRef), __tsplusTrace)(self)), __tsplusTrace));
960
1008
  }, __tsplusTrace)(tsplus_module_6.make(() => tsplus_module_1.flatMap(queue => tsplus_module_1.flatMap(id => tsplus_module_1.map(() => (0, _function.tuple)(id, queue), __tsplusTrace)(tsplus_module_15.update(map => tsplus_module_45.set(id, queue)(map), __tsplusTrace)(queuesRef)), __tsplusTrace)(tsplus_module_1.succeed(() => Symbol(), __tsplusTrace)), __tsplusTrace)(tsplus_module_30.makeBounded(maximumLag, __tsplusTrace)), __tsplusTrace)), __tsplusTrace)(tsplus_module_46.makeSemaphore(1, __tsplusTrace))), __tsplusTrace)(tsplus_module_31.acquireRelease(() => tsplus_module_6.make(() => tsplus_module_45.empty(), __tsplusTrace), ref => tsplus_module_1.flatMap(qs => tsplus_module_1.foreach(tsplus_module_45.values(qs), q => tsplus_module_28.shutdown(q, __tsplusTrace), __tsplusTrace), __tsplusTrace)(tsplus_module_14.get(ref, __tsplusTrace)), __tsplusTrace));
961
1009
  };
962
1010
  }
@@ -966,8 +1014,8 @@ function distributedWithDynamic_1(maximumLag, decide, done = () => tsplus_module
966
1014
  *
967
1015
  * @tsplus getter fncts.io.Stream drain
968
1016
  */
969
- function drain(fa, __tsplusTrace) {
970
- return new _definition2.Stream(tsplus_module_10.drain(fa.channel));
1017
+ function drain_1(fa, __tsplusTrace) {
1018
+ return new _definition4.Stream(tsplus_module_10.drain(fa.channel));
971
1019
  }
972
1020
  function dropLoop(r, __tsplusTrace) {
973
1021
  return tsplus_module_10.readWith(inp => {
@@ -984,7 +1032,7 @@ function dropLoop(r, __tsplusTrace) {
984
1032
  */
985
1033
  function drop_1(n, __tsplusTrace) {
986
1034
  return stream => {
987
- return new _definition2.Stream(tsplus_module_10.pipeTo(dropLoop(n, __tsplusTrace))(stream.channel));
1035
+ return new _definition4.Stream(tsplus_module_10.pipeTo(dropLoop(n, __tsplusTrace))(stream.channel));
988
1036
  };
989
1037
  }
990
1038
  /**
@@ -1019,12 +1067,12 @@ function dropUntil(p, __tsplusTrace) {
1019
1067
  * @tsplus getter fncts.io.Stream either
1020
1068
  */
1021
1069
  function either(stream, __tsplusTrace) {
1022
- return catchAll_1(e => succeedNow_1(tsplus_module_18.left(e), __tsplusTrace), __tsplusTrace)(map_1(tsplus_module_18.right, __tsplusTrace)(stream));
1070
+ return catchAll_1(e => succeedNow_1(tsplus_module_18.left(e, __tsplusTrace), __tsplusTrace), __tsplusTrace)(map_1(tsplus_module_18.right, __tsplusTrace)(stream));
1023
1071
  }
1024
1072
  /**
1025
1073
  * @tsplus static fncts.io.StreamOps empty
1026
1074
  */
1027
- const empty_1 = /*#__PURE__*/fromChunkNow_1( /*#__PURE__*/tsplus_module_7.empty(), fileName_1 + ":1220:70");
1075
+ const empty_1 = /*#__PURE__*/fromChunkNow_1( /*#__PURE__*/tsplus_module_7.empty(), fileName_1 + ":1234:70");
1028
1076
  const empty = empty_1;
1029
1077
  exports.empty = empty;
1030
1078
  function endWhenWriter(fiber, __tsplusTrace) {
@@ -1043,7 +1091,7 @@ function endWhenWriter(fiber, __tsplusTrace) {
1043
1091
  */
1044
1092
  function endWhen(io, __tsplusTrace) {
1045
1093
  return stream => {
1046
- return new _definition2.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(fiber => tsplus_module_10.pipeTo(endWhenWriter(fiber, __tsplusTrace))(stream.channel), __tsplusTrace)(tsplus_module_17.forkScoped(io, __tsplusTrace))));
1094
+ return new _definition4.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(fiber => tsplus_module_10.pipeTo(endWhenWriter(fiber, __tsplusTrace))(stream.channel), __tsplusTrace)(tsplus_module_17.forkScoped(io, __tsplusTrace))));
1047
1095
  };
1048
1096
  }
1049
1097
  /**
@@ -1051,7 +1099,7 @@ function endWhen(io, __tsplusTrace) {
1051
1099
  */
1052
1100
  function ensuring_1(finalizer, __tsplusTrace) {
1053
1101
  return self => {
1054
- return new _definition2.Stream(tsplus_module_10.ensuring(finalizer)(self.channel));
1102
+ return new _definition4.Stream(tsplus_module_10.ensuring(finalizer)(self.channel));
1055
1103
  };
1056
1104
  }
1057
1105
  /**
@@ -1084,13 +1132,21 @@ function environmentWithIO(f, __tsplusTrace) {
1084
1132
  function environmentWithStream(f, __tsplusTrace) {
1085
1133
  return flatMap_1(f, __tsplusTrace)(environment_1(__tsplusTrace));
1086
1134
  }
1135
+ /**
1136
+ * Creates a stream that executes the specified effect but emits no elements.
1137
+ *
1138
+ * @tsplus static fncts.io.StreamOps execute
1139
+ */
1140
+ function execute_1(io, __tsplusTrace) {
1141
+ return drain_1(fromIO_1(io, __tsplusTrace), __tsplusTrace);
1142
+ }
1087
1143
  /**
1088
1144
  * Halt a stream with the specified error
1089
1145
  *
1090
1146
  * @tsplus static fncts.io.StreamOps failNow
1091
1147
  */
1092
1148
  function failNow_1(error, __tsplusTrace) {
1093
- return new _definition2.Stream(tsplus_module_10.failNow(error));
1149
+ return new _definition4.Stream(tsplus_module_10.failNow(error));
1094
1150
  }
1095
1151
  /**
1096
1152
  * Halt a stream with the specified error
@@ -1098,7 +1154,7 @@ function failNow_1(error, __tsplusTrace) {
1098
1154
  * @tsplus static fncts.io.StreamOps fail
1099
1155
  */
1100
1156
  function fail(error, __tsplusTrace) {
1101
- return new _definition2.Stream(tsplus_module_10.fail(error));
1157
+ return new _definition4.Stream(tsplus_module_10.fail(error));
1102
1158
  }
1103
1159
  /**
1104
1160
  * The stream that always halts with `cause`.
@@ -1126,7 +1182,7 @@ function filter(predicate, __tsplusTrace) {
1126
1182
  */
1127
1183
  function filterIO(f, __tsplusTrace) {
1128
1184
  return fa => {
1129
- return new _definition2.Stream(tsplus_module_10.pipeTo(filterIOLoop(tsplus_module_40.empty()[Symbol.iterator](), f, __tsplusTrace))(fa.channel));
1185
+ return new _definition4.Stream(tsplus_module_10.pipeTo(filterIOLoop(tsplus_module_40.empty()[Symbol.iterator](), f, __tsplusTrace))(fa.channel));
1130
1186
  };
1131
1187
  }
1132
1188
  function filterIOLoop(iterator, f, __tsplusTrace) {
@@ -1150,7 +1206,7 @@ function filterMap_1(f, __tsplusTrace) {
1150
1206
  */
1151
1207
  function filterMapIO(f, __tsplusTrace) {
1152
1208
  return fa => {
1153
- return new _definition2.Stream(tsplus_module_10.pipeTo(filterMapIOLoop(tsplus_module_40.empty()[Symbol.iterator](), f, __tsplusTrace))(fa.channel));
1209
+ return new _definition4.Stream(tsplus_module_10.pipeTo(filterMapIOLoop(tsplus_module_40.empty()[Symbol.iterator](), f, __tsplusTrace))(fa.channel));
1154
1210
  };
1155
1211
  }
1156
1212
  function filterMapIOLoop(iterator, f, __tsplusTrace) {
@@ -1169,7 +1225,7 @@ function filterMapIOLoop(iterator, f, __tsplusTrace) {
1169
1225
  function find(p, __tsplusTrace) {
1170
1226
  return stream => {
1171
1227
  const loop = tsplus_module_10.readWith(inp => tsplus_module_20.match(() => loop, a => tsplus_module_10.writeNow(tsplus_module_19.single(a)))(tsplus_module_12.find(p)(inp)), tsplus_module_10.failNow, () => tsplus_module_10.unit);
1172
- return new _definition2.Stream(tsplus_module_10.pipeTo(loop)(stream.channel));
1228
+ return new _definition4.Stream(tsplus_module_10.pipeTo(loop)(stream.channel));
1173
1229
  };
1174
1230
  }
1175
1231
  /**
@@ -1180,7 +1236,7 @@ function find(p, __tsplusTrace) {
1180
1236
  function findIO(f, __tsplusTrace) {
1181
1237
  return stream => {
1182
1238
  const loop = tsplus_module_10.readWith(inp => tsplus_module_10.unwrap(() => tsplus_module_1.map(maybeA => tsplus_module_20.match(() => loop, a => tsplus_module_10.writeNow(tsplus_module_19.single(a)))(maybeA), __tsplusTrace)(tsplus_module_51.findIO(f, __tsplusTrace)(inp))), tsplus_module_10.failNow, () => tsplus_module_10.unit);
1183
- return new _definition2.Stream(tsplus_module_10.pipeTo(loop)(stream.channel));
1239
+ return new _definition4.Stream(tsplus_module_10.pipeTo(loop)(stream.channel));
1184
1240
  };
1185
1241
  }
1186
1242
  /**
@@ -1203,10 +1259,10 @@ function flattenExitOption_1(stream, __tsplusTrace) {
1203
1259
  const processChunk = (chunk, cont) => {
1204
1260
  const [toEmit, rest] = tsplus_module_12.splitWhere(_ => !tsplus_module_52.isSuccess(_))(chunk);
1205
1261
  const next = tsplus_module_20.match(() => cont, exit => tsplus_module_36.match(cause => tsplus_module_20.match(() => tsplus_module_11.endNow(undefined), tsplus_module_11.failCauseNow)(tsplus_module_25.flipCauseOption(cause)), () => tsplus_module_11.endNow(undefined))(exit))(tsplus_module_12.head(rest));
1206
- return tsplus_module_11.zipRight(next)(tsplus_module_10.writeNow(tsplus_module_12.filterMap(exit => tsplus_module_36.match(() => tsplus_module_3.nothing(), tsplus_module_3.just)(exit))(toEmit)));
1262
+ return tsplus_module_11.zipRight(next)(tsplus_module_10.writeNow(tsplus_module_12.filterMap(exit => tsplus_module_36.match(() => tsplus_module_3.nothing(__tsplusTrace), tsplus_module_3.just)(exit))(toEmit)));
1207
1263
  };
1208
1264
  const process = tsplus_module_10.readWithCause(chunk => processChunk(chunk, process), tsplus_module_11.failCauseNow, _ => tsplus_module_11.endNow(undefined));
1209
- return new _definition2.Stream(tsplus_module_10.pipeTo(process)(stream.channel));
1265
+ return new _definition4.Stream(tsplus_module_10.pipeTo(process)(stream.channel));
1210
1266
  }
1211
1267
  /**
1212
1268
  * Unwraps `Exit` values and flatten chunks that also signify end-of-stream by failing with `None`.
@@ -1223,7 +1279,7 @@ function flattenTake_1(stream, __tsplusTrace) {
1223
1279
  * @tsplus getter fncts.io.Stream flattenChunks
1224
1280
  */
1225
1281
  function flattenChunks_1(stream, __tsplusTrace) {
1226
- return new _definition2.Stream(tsplus_module_10.mapOut(c => tsplus_module_12.flatten(c))(stream.channel));
1282
+ return new _definition4.Stream(tsplus_module_10.mapOut(c => tsplus_module_12.flatten(c))(stream.channel));
1227
1283
  }
1228
1284
  /**
1229
1285
  * Repeats this stream forever.
@@ -1231,7 +1287,7 @@ function flattenChunks_1(stream, __tsplusTrace) {
1231
1287
  * @tsplus getter fncts.io.Stream forever
1232
1288
  */
1233
1289
  function forever_1(stream, __tsplusTrace) {
1234
- return new _definition2.Stream(tsplus_module_10.repeated(stream.channel));
1290
+ return new _definition4.Stream(tsplus_module_10.repeated(stream.channel));
1235
1291
  }
1236
1292
  /**
1237
1293
  * Creates a stream from a `Chunk` of values
@@ -1239,7 +1295,7 @@ function forever_1(stream, __tsplusTrace) {
1239
1295
  * @tsplus static fncts.io.StreamOps fromChunkNow
1240
1296
  */
1241
1297
  function fromChunkNow_1(c, __tsplusTrace) {
1242
- return new _definition2.Stream(tsplus_module_10.defer(() => tsplus_module_12.isEmpty(c) ? tsplus_module_10.unit : tsplus_module_10.writeNow(c)));
1298
+ return new _definition4.Stream(tsplus_module_10.defer(() => tsplus_module_12.isEmpty(c) ? tsplus_module_10.unit : tsplus_module_10.writeNow(c)));
1243
1299
  }
1244
1300
  /**
1245
1301
  * Creates a stream from a `Chunk` of values
@@ -1247,7 +1303,7 @@ function fromChunkNow_1(c, __tsplusTrace) {
1247
1303
  * @tsplus static fncts.io.StreamOps fromChunk
1248
1304
  */
1249
1305
  function fromChunk_1(c, __tsplusTrace) {
1250
- return new _definition2.Stream(tsplus_module_10.unwrap(() => tsplus_module_1.succeedNow(tsplus_module_10.write(c), __tsplusTrace)));
1306
+ return new _definition4.Stream(tsplus_module_10.unwrap(() => tsplus_module_1.succeedNow(tsplus_module_10.write(c), __tsplusTrace)));
1251
1307
  }
1252
1308
  /**
1253
1309
  * Creates a single-valued stream from a managed resource
@@ -1255,7 +1311,60 @@ function fromChunk_1(c, __tsplusTrace) {
1255
1311
  * @tsplus static fncts.io.StreamOps scoped
1256
1312
  */
1257
1313
  function scoped_1(stream, __tsplusTrace) {
1258
- return new _definition2.Stream(tsplus_module_10.scoped(() => tsplus_module_1.map(tsplus_module_19.single, __tsplusTrace)(stream())));
1314
+ return new _definition4.Stream(tsplus_module_10.scoped(() => tsplus_module_1.map(tsplus_module_19.single, __tsplusTrace)(stream())));
1315
+ }
1316
+ /**
1317
+ * Emits a sliding window of n elements.
1318
+ *
1319
+ * @tsplus pipeable fncts.io.Stream sliding
1320
+ */
1321
+ function sliding(chunkSize, stepSize, __tsplusTrace) {
1322
+ return self => {
1323
+ return defer_1(() => {
1324
+ function slidingChunk(chunk, input) {
1325
+ const updatedChunk = tsplus_module_12.concat(input)(chunk);
1326
+ const length = updatedChunk.length;
1327
+ if (length >= chunkSize) {
1328
+ const array = new Array((length - chunkSize) / stepSize + 1);
1329
+ let arrayIndex = 0;
1330
+ let chunkIndex = 0;
1331
+ while (chunkIndex + chunkSize <= length) {
1332
+ array[arrayIndex] = tsplus_module_12.slice(chunkIndex, chunkIndex + chunkSize)(updatedChunk);
1333
+ arrayIndex += 1;
1334
+ chunkIndex += stepSize;
1335
+ }
1336
+ return [tsplus_module_12.drop(chunkIndex)(updatedChunk), tsplus_module_53.fromArray(array)];
1337
+ } else {
1338
+ return [updatedChunk, tsplus_module_7.empty()];
1339
+ }
1340
+ }
1341
+ function sliding(chunk, written) {
1342
+ return tsplus_module_10.readWithCause(input => {
1343
+ const [updatedChunk, out] = slidingChunk(chunk, input);
1344
+ if (tsplus_module_12.isEmpty(out)) {
1345
+ return sliding(updatedChunk, written);
1346
+ } else {
1347
+ return tsplus_module_11.zipRight(sliding(updatedChunk, true))(tsplus_module_10.writeNow(out));
1348
+ }
1349
+ }, err => {
1350
+ const index = written && chunkSize > stepSize ? chunkSize - stepSize : 0;
1351
+ if (index >= chunk.length) {
1352
+ return tsplus_module_11.failCauseNow(err);
1353
+ } else {
1354
+ return tsplus_module_11.zipRight(tsplus_module_11.failCauseNow(err))(tsplus_module_10.writeNow(tsplus_module_19.single(chunk)));
1355
+ }
1356
+ }, done => {
1357
+ const index = written && chunkSize > stepSize ? chunkSize - stepSize : 0;
1358
+ if (index >= chunk.length) {
1359
+ return tsplus_module_11.succeedNow(done);
1360
+ } else {
1361
+ return tsplus_module_11.zipRight(tsplus_module_11.succeedNow(done))(tsplus_module_10.writeNow(tsplus_module_19.single(chunk)));
1362
+ }
1363
+ });
1364
+ }
1365
+ return new _definition4.Stream(tsplus_module_10.pipeTo(sliding(tsplus_module_7.empty(), false))(self.channel));
1366
+ });
1367
+ };
1259
1368
  }
1260
1369
  /**
1261
1370
  * Creates a stream from an effect producing a value of type `A`
@@ -1271,7 +1380,7 @@ function fromIO_1(fa, __tsplusTrace) {
1271
1380
  * @tsplus static fncts.io.StreamOps fromIOMaybe
1272
1381
  */
1273
1382
  function fromIOMaybe_1(fa, __tsplusTrace) {
1274
- return new _definition2.Stream(tsplus_module_10.unwrap(() => tsplus_module_1.match(maybeError => tsplus_module_20.match(() => tsplus_module_10.unit, tsplus_module_10.failNow)(maybeError), a => tsplus_module_10.writeNow(tsplus_module_19.single(a)), __tsplusTrace)(fa)));
1383
+ return new _definition4.Stream(tsplus_module_10.unwrap(() => tsplus_module_1.match(maybeError => tsplus_module_20.match(() => tsplus_module_10.unit, tsplus_module_10.failNow)(maybeError), a => tsplus_module_10.writeNow(tsplus_module_19.single(a)), __tsplusTrace)(fa)));
1275
1384
  }
1276
1385
  function fromAsyncIterableLoop(iterator, __tsplusTrace) {
1277
1386
  return tsplus_module_10.unwrap(() => tsplus_module_1.async(k => {
@@ -1282,12 +1391,12 @@ function fromAsyncIterableLoop(iterator, __tsplusTrace) {
1282
1391
  * @tsplus static fncts.io.StreamOps fromAsyncIterable
1283
1392
  */
1284
1393
  function fromAsyncIterable(iterable, __tsplusTrace) {
1285
- return new _definition2.Stream(fromAsyncIterableLoop(iterable[Symbol.asyncIterator](), __tsplusTrace));
1394
+ return new _definition4.Stream(fromAsyncIterableLoop(iterable[Symbol.asyncIterator](), __tsplusTrace));
1286
1395
  }
1287
1396
  /**
1288
1397
  * @tsplus static fncts.io.StreamOps fromIterable
1289
1398
  */
1290
- function fromIterable(iterable, maxChunkSize = _definition2.DEFAULT_CHUNK_SIZE, __tsplusTrace) {
1399
+ function fromIterable(iterable, maxChunkSize = _definition4.DEFAULT_CHUNK_SIZE, __tsplusTrace) {
1291
1400
  return unwrap_1(tsplus_module_1.succeed(() => {
1292
1401
  const loop = iterator => tsplus_module_10.unwrap(() => tsplus_module_1.succeed(() => {
1293
1402
  let result = iterator.next();
@@ -1307,7 +1416,7 @@ function fromIterable(iterable, maxChunkSize = _definition2.DEFAULT_CHUNK_SIZE,
1307
1416
  return tsplus_module_11.zipRight(loop(iterator))(tsplus_module_10.writeNow(tsplus_module_19.from(out)));
1308
1417
  }
1309
1418
  }, __tsplusTrace));
1310
- return new _definition2.Stream(loop(iterable[Symbol.iterator]()));
1419
+ return new _definition4.Stream(loop(iterable[Symbol.iterator]()));
1311
1420
  }, __tsplusTrace), __tsplusTrace);
1312
1421
  }
1313
1422
  /**
@@ -1317,7 +1426,7 @@ function fromIterableSingle(iterable, __tsplusTrace) {
1317
1426
  return flatMap_1(iterator => repeatIOMaybe_1(tsplus_module_1.defer(() => {
1318
1427
  const value = iterator.next();
1319
1428
  if (value.done) {
1320
- return tsplus_module_1.failNow(tsplus_module_3.nothing(), __tsplusTrace);
1429
+ return tsplus_module_1.failNow(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace);
1321
1430
  } else {
1322
1431
  return tsplus_module_1.succeedNow(value.value, __tsplusTrace);
1323
1432
  }
@@ -1334,31 +1443,31 @@ function fromPull_1(scopedPull, __tsplusTrace) {
1334
1443
  *
1335
1444
  * @tsplus static fncts.io.StreamOps fromQueue
1336
1445
  */
1337
- function fromQueue_1(queue, maxChunkSize = _definition2.DEFAULT_CHUNK_SIZE, __tsplusTrace) {
1446
+ function fromQueue_1(queue, maxChunkSize = _definition4.DEFAULT_CHUNK_SIZE, __tsplusTrace) {
1338
1447
  return repeatIOChunkMaybe_1(tsplus_module_1.catchAllCause(c => tsplus_module_1.flatMap(down => {
1339
1448
  if (down && tsplus_module_25.interrupted(c)) {
1340
- return tsplus_module_53.end;
1449
+ return tsplus_module_54.end;
1341
1450
  } else {
1342
- return tsplus_module_53.failCause(c);
1451
+ return tsplus_module_54.failCause(c);
1343
1452
  }
1344
- }, __tsplusTrace)(tsplus_module_28.isShutdown(queue, __tsplusTrace)), __tsplusTrace)(tsplus_module_1.map(tsplus_module_19.from, __tsplusTrace)(tsplus_module_54.takeBetween(1, maxChunkSize, __tsplusTrace)(queue))), __tsplusTrace);
1453
+ }, __tsplusTrace)(tsplus_module_28.isShutdown(queue, __tsplusTrace)), __tsplusTrace)(tsplus_module_1.map(tsplus_module_19.from, __tsplusTrace)(tsplus_module_55.takeBetween(1, maxChunkSize, __tsplusTrace)(queue))), __tsplusTrace);
1345
1454
  }
1346
1455
  /**
1347
1456
  * @tsplus static fncts.io.StreamOps fromQueueWithShutdown
1348
1457
  */
1349
- function fromQueueWithShutdown_1(queue, maxChunkSize = _definition2.DEFAULT_CHUNK_SIZE, __tsplusTrace) {
1458
+ function fromQueueWithShutdown_1(queue, maxChunkSize = _definition4.DEFAULT_CHUNK_SIZE, __tsplusTrace) {
1350
1459
  return ensuring_1(tsplus_module_28.shutdown(queue, __tsplusTrace), __tsplusTrace)(fromQueue_1(queue, maxChunkSize, __tsplusTrace));
1351
1460
  }
1352
1461
  /**
1353
1462
  * @tsplus static fncts.io.StreamOps fromHub
1354
1463
  */
1355
- function fromHub(hub, maxChunkSize = _definition2.DEFAULT_CHUNK_SIZE, __tsplusTrace) {
1464
+ function fromHub(hub, maxChunkSize = _definition4.DEFAULT_CHUNK_SIZE, __tsplusTrace) {
1356
1465
  return flatMap_1(queue => fromQueueWithShutdown_1(queue, maxChunkSize, __tsplusTrace), __tsplusTrace)(scoped_1(() => tsplus_module_34.subscribe(hub(), __tsplusTrace), __tsplusTrace));
1357
1466
  }
1358
1467
  /**
1359
1468
  * @tsplus static fncts.io.StreamOps fromHubScoped
1360
1469
  */
1361
- function fromHubScoped(hub, maxChunkSize = _definition2.DEFAULT_CHUNK_SIZE, __tsplusTrace) {
1470
+ function fromHubScoped(hub, maxChunkSize = _definition4.DEFAULT_CHUNK_SIZE, __tsplusTrace) {
1362
1471
  return tsplus_module_1.defer(() => tsplus_module_1.map(queue => fromQueueWithShutdown_1(queue, maxChunkSize, __tsplusTrace), __tsplusTrace)(tsplus_module_34.subscribe(hub(), __tsplusTrace)), __tsplusTrace);
1363
1472
  }
1364
1473
  /**
@@ -1367,7 +1476,7 @@ function fromHubScoped(hub, maxChunkSize = _definition2.DEFAULT_CHUNK_SIZE, __ts
1367
1476
  * @tsplus static fncts.io.StreamOps haltNow
1368
1477
  */
1369
1478
  function haltNow(u, __tsplusTrace) {
1370
- return new _definition2.Stream(tsplus_module_10.halt(() => u));
1479
+ return new _definition4.Stream(tsplus_module_10.halt(() => u));
1371
1480
  }
1372
1481
  /**
1373
1482
  * Halt a stream with the specified exception
@@ -1375,7 +1484,7 @@ function haltNow(u, __tsplusTrace) {
1375
1484
  * @tsplus static fncts.io.StreamOps halt
1376
1485
  */
1377
1486
  function halt_1(u, __tsplusTrace) {
1378
- return new _definition2.Stream(tsplus_module_10.halt(u));
1487
+ return new _definition4.Stream(tsplus_module_10.halt(u));
1379
1488
  }
1380
1489
  function haltWhenWriter(fiber, __tsplusTrace) {
1381
1490
  return tsplus_module_10.unwrap(() => tsplus_module_1.map(maybeExit => tsplus_module_20.match(() => tsplus_module_10.readWith(i => tsplus_module_11.zipRight(haltWhenWriter(fiber, __tsplusTrace))(tsplus_module_10.writeNow(i)), tsplus_module_10.failNow, () => tsplus_module_10.unit), exit => tsplus_module_36.match(tsplus_module_11.failCauseNow, () => tsplus_module_10.unit)(exit))(maybeExit), __tsplusTrace)(tsplus_module_49.poll(fiber, __tsplusTrace)));
@@ -1394,7 +1503,7 @@ function haltWhenWriter(fiber, __tsplusTrace) {
1394
1503
  */
1395
1504
  function haltWhen(io, __tsplusTrace) {
1396
1505
  return fa => {
1397
- return new _definition2.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(fiber => tsplus_module_10.pipeTo(haltWhenWriter(fiber, __tsplusTrace))(fa.channel), __tsplusTrace)(tsplus_module_17.forkScoped(io, __tsplusTrace))));
1506
+ return new _definition4.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(fiber => tsplus_module_10.pipeTo(haltWhenWriter(fiber, __tsplusTrace))(fa.channel), __tsplusTrace)(tsplus_module_17.forkScoped(io, __tsplusTrace))));
1398
1507
  };
1399
1508
  }
1400
1509
  function haltWhenFutureWriter(future, __tsplusTrace) {
@@ -1409,7 +1518,7 @@ function haltWhenFutureWriter(future, __tsplusTrace) {
1409
1518
  */
1410
1519
  function haltWhenFuture(future, __tsplusTrace) {
1411
1520
  return fa => {
1412
- return new _definition2.Stream(tsplus_module_10.pipeTo(haltWhenFutureWriter(future, __tsplusTrace))(fa.channel));
1521
+ return new _definition4.Stream(tsplus_module_10.pipeTo(haltWhenFutureWriter(future, __tsplusTrace))(fa.channel));
1413
1522
  };
1414
1523
  }
1415
1524
  /**
@@ -1435,7 +1544,7 @@ function interleaveWithProducer(handoff, __tsplusTrace) {
1435
1544
  */
1436
1545
  function interleaveWith_1(sb, b, __tsplusTrace) {
1437
1546
  return sa => {
1438
- return new _definition2.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(([left, right]) => {
1547
+ return new _definition4.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(([left, right]) => {
1439
1548
  const process = (leftDone, rightDone) => tsplus_module_10.readWithCause(b => {
1440
1549
  if (b && !leftDone) {
1441
1550
  return tsplus_module_11.flatMap(take => tsplus_module_27.match(rightDone ? tsplus_module_10.unit : process(true, rightDone), tsplus_module_11.failCauseNow, chunk => tsplus_module_11.zipRight(process(leftDone, rightDone))(tsplus_module_10.writeNow(chunk)))(take))(tsplus_module_10.fromIO(() => tsplus_module_5.take(left)));
@@ -1469,7 +1578,7 @@ function intersperseWriter(middle, isFirst, __tsplusTrace) {
1469
1578
  * Intersperse stream with provided element
1470
1579
  */
1471
1580
  function intersperse(stream, middle, __tsplusTrace) {
1472
- return new _definition2.Stream(tsplus_module_10.pipeTo(intersperseWriter(middle, true, __tsplusTrace))(stream.channel));
1581
+ return new _definition4.Stream(tsplus_module_10.pipeTo(intersperseWriter(middle, true, __tsplusTrace))(stream.channel));
1473
1582
  }
1474
1583
  /**
1475
1584
  * Interrupts the evaluation of this stream when the provided IO completes. The given
@@ -1483,7 +1592,7 @@ function intersperse(stream, middle, __tsplusTrace) {
1483
1592
  */
1484
1593
  function interruptWhen(io, __tsplusTrace) {
1485
1594
  return stream => {
1486
- return new _definition2.Stream(tsplus_module_55.interruptWhen(io)(stream.channel));
1595
+ return new _definition4.Stream(tsplus_module_56.interruptWhen(io)(stream.channel));
1487
1596
  };
1488
1597
  }
1489
1598
  /**
@@ -1491,7 +1600,7 @@ function interruptWhen(io, __tsplusTrace) {
1491
1600
  */
1492
1601
  function interruptWhenFuture(future, __tsplusTrace) {
1493
1602
  return fa => {
1494
- return new _definition2.Stream(tsplus_module_55.interruptWhenFuture(future)(fa.channel));
1603
+ return new _definition4.Stream(tsplus_module_56.interruptWhenFuture(future)(fa.channel));
1495
1604
  };
1496
1605
  }
1497
1606
  /**
@@ -1501,7 +1610,7 @@ function interruptWhenFuture(future, __tsplusTrace) {
1501
1610
  */
1502
1611
  function map_1(f, __tsplusTrace) {
1503
1612
  return stream => {
1504
- return new _definition2.Stream(tsplus_module_10.mapOut(as => tsplus_module_12.map(f)(as))(stream.channel));
1613
+ return new _definition4.Stream(tsplus_module_10.mapOut(as => tsplus_module_12.map(f)(as))(stream.channel));
1505
1614
  };
1506
1615
  }
1507
1616
  function mapAccumAccumulator(currS, f, __tsplusTrace) {
@@ -1517,7 +1626,7 @@ function mapAccumAccumulator(currS, f, __tsplusTrace) {
1517
1626
  */
1518
1627
  function mapAccum_1(s, f, __tsplusTrace) {
1519
1628
  return stream => {
1520
- return new _definition2.Stream(tsplus_module_10.pipeTo(mapAccumAccumulator(s, f, __tsplusTrace))(stream.channel));
1629
+ return new _definition4.Stream(tsplus_module_10.pipeTo(mapAccumAccumulator(s, f, __tsplusTrace))(stream.channel));
1521
1630
  };
1522
1631
  }
1523
1632
  function mapAccumIOAccumulator(s, f, __tsplusTrace) {
@@ -1540,7 +1649,7 @@ function mapAccumIOAccumulator(s, f, __tsplusTrace) {
1540
1649
  */
1541
1650
  function mapAccumIO_1(s, f, __tsplusTrace) {
1542
1651
  return stream => {
1543
- return new _definition2.Stream(tsplus_module_10.pipeTo(mapAccumIOAccumulator(s, f, __tsplusTrace))(stream.channel));
1652
+ return new _definition4.Stream(tsplus_module_10.pipeTo(mapAccumIOAccumulator(s, f, __tsplusTrace))(stream.channel));
1544
1653
  };
1545
1654
  }
1546
1655
  /**
@@ -1550,7 +1659,7 @@ function mapAccumIO_1(s, f, __tsplusTrace) {
1550
1659
  */
1551
1660
  function mapChunks_1(f, __tsplusTrace) {
1552
1661
  return stream => {
1553
- return new _definition2.Stream(tsplus_module_10.mapOut(f)(stream.channel));
1662
+ return new _definition4.Stream(tsplus_module_10.mapOut(f)(stream.channel));
1554
1663
  };
1555
1664
  }
1556
1665
  /**
@@ -1560,7 +1669,7 @@ function mapChunks_1(f, __tsplusTrace) {
1560
1669
  */
1561
1670
  function mapChunksIO(f, __tsplusTrace) {
1562
1671
  return stream => {
1563
- return new _definition2.Stream(tsplus_module_10.mapOutIO(f)(stream.channel));
1672
+ return new _definition4.Stream(tsplus_module_10.mapOutIO(f)(stream.channel));
1564
1673
  };
1565
1674
  }
1566
1675
  /**
@@ -1614,7 +1723,7 @@ function mapConcatIO(f, __tsplusTrace) {
1614
1723
  */
1615
1724
  function mapError_1(f, __tsplusTrace) {
1616
1725
  return stream => {
1617
- return new _definition2.Stream(tsplus_module_10.mapError(f)(stream.channel));
1726
+ return new _definition4.Stream(tsplus_module_10.mapError(f)(stream.channel));
1618
1727
  };
1619
1728
  }
1620
1729
  /**
@@ -1624,7 +1733,7 @@ function mapError_1(f, __tsplusTrace) {
1624
1733
  */
1625
1734
  function mapErrorCause(f, __tsplusTrace) {
1626
1735
  return fa => {
1627
- return new _definition2.Stream(tsplus_module_10.mapErrorCause(f)(fa.channel));
1736
+ return new _definition4.Stream(tsplus_module_10.mapErrorCause(f)(fa.channel));
1628
1737
  };
1629
1738
  }
1630
1739
  /**
@@ -1634,7 +1743,7 @@ function mapErrorCause(f, __tsplusTrace) {
1634
1743
  */
1635
1744
  function mapIO_1(f, __tsplusTrace) {
1636
1745
  return stream => {
1637
- return new _definition2.Stream(tsplus_module_10.pipeTo(mapIOLoop(tsplus_module_40.empty()[Symbol.iterator](), f, __tsplusTrace))(stream.channel));
1746
+ return new _definition4.Stream(tsplus_module_10.pipeTo(mapIOLoop(tsplus_module_40.empty()[Symbol.iterator](), f, __tsplusTrace))(stream.channel));
1638
1747
  };
1639
1748
  }
1640
1749
  function mapIOLoop(iterator, f, __tsplusTrace) {
@@ -1652,11 +1761,87 @@ function mapIOLoop(iterator, f, __tsplusTrace) {
1652
1761
  *
1653
1762
  * @note This combinator destroys the chunking structure. It's recommended to use chunkN afterwards.
1654
1763
  *
1655
- * @tsplus pipeable fncts.io.Stream mapIOC
1764
+ * @tsplus pipeable fncts.io.Stream mapIOConcurrently
1656
1765
  */
1657
- function mapIOC(n, f, __tsplusTrace) {
1766
+ function mapIOConcurrently(n, f, __tsplusTrace) {
1658
1767
  return stream => {
1659
- return new _definition2.Stream(tsplus_module_10.mapOut(tsplus_module_19.single)(tsplus_module_56.mapOutConcurrentIO(n, f)(tsplus_module_10.concatMap(tsplus_module_10.writeChunk)(stream.channel))));
1768
+ return new _definition4.Stream(tsplus_module_10.mapOut(tsplus_module_19.single)(tsplus_module_57.mapOutConcurrentIO(n, f)(tsplus_module_10.concatMap(tsplus_module_10.writeChunk)(stream.channel))));
1769
+ };
1770
+ }
1771
+ /**
1772
+ * @tsplus pipeable fncts.io.Stream mapIOConcurrentlyUnordered
1773
+ */
1774
+ function mapIOConcurrentlyUnordered(n, f) {
1775
+ return self => {
1776
+ return pipeThroughChannelOrFail_1(tsplus_module_58.mergeMap(inp => fromIO_1(f(inp), fileName_1 + ":2290:41").channel, n, 16)(tsplus_module_10.concatMap(chunk => tsplus_module_10.writeChunk(chunk))(tsplus_module_10.id())))(self);
1777
+ };
1778
+ }
1779
+ /**
1780
+ * Merges this stream and the specified stream together.
1781
+ *
1782
+ * New produced stream will terminate when both specified stream terminate if
1783
+ * no termination strategy is specified.
1784
+ *
1785
+ * @tsplus pipeable fncts.io.Stream merge
1786
+ */
1787
+ function merge_1(that, strategy = "Both", __tsplusTrace) {
1788
+ return self => {
1789
+ return mergeWith_1(that, _function.identity, _function.identity, strategy, __tsplusTrace)(self);
1790
+ };
1791
+ }
1792
+ /**
1793
+ * Merges this stream and the specified stream together. New produced stream
1794
+ * will terminate when either stream terminates.
1795
+ *
1796
+ * @tsplus pipeable fncts.io.Stream mergeHaltEither
1797
+ */
1798
+ function mergeHaltEither(that, __tsplusTrace) {
1799
+ return self => {
1800
+ return merge_1(that, "Either", __tsplusTrace)(self);
1801
+ };
1802
+ }
1803
+ /**
1804
+ * Merges this stream and the specified stream together. New produced stream
1805
+ * will terminate when this stream terminates.
1806
+ *
1807
+ * @tsplus pipeable fncts.io.Stream mergeHaltLeft
1808
+ */
1809
+ function mergeHaltLeft(that, __tsplusTrace) {
1810
+ return self => {
1811
+ return merge_1(that, "Left", __tsplusTrace)(self);
1812
+ };
1813
+ }
1814
+ /**
1815
+ * Merges this stream and the specified stream together. New produced stream
1816
+ * will terminate when the specified stream terminates.
1817
+ *
1818
+ * @tsplus pipeable fncts.io.Stream mergeHaltRight
1819
+ */
1820
+ function mergeHaltRight(that, __tsplusTrace) {
1821
+ return self => {
1822
+ return merge_1(that, "Right", __tsplusTrace)(self);
1823
+ };
1824
+ }
1825
+ /**
1826
+ * Merges this stream and the specified stream together, discarding the values
1827
+ * from the right stream.
1828
+ *
1829
+ * @tsplus pipeable fncts.io.Stream mergeLeft
1830
+ */
1831
+ function mergeLeft(that, __tsplusTrace) {
1832
+ return self => {
1833
+ return merge_1(drain_1(that, __tsplusTrace))(self);
1834
+ };
1835
+ }
1836
+ /**
1837
+ * Merges this stream and the specified stream together, discarding the values
1838
+ * from the left stream.
1839
+ *
1840
+ * @tsplus pipeable fncts.io.Stream mergeRight
1841
+ */
1842
+ function mergeRight(that, __tsplusTrace) {
1843
+ return self => {
1844
+ return merge_1(that)(drain_1(self, __tsplusTrace));
1660
1845
  };
1661
1846
  }
1662
1847
  /**
@@ -1669,7 +1854,7 @@ function mapIOC(n, f, __tsplusTrace) {
1669
1854
  */
1670
1855
  function mergeMap_1(f, n, bufferSize = 16, __tsplusTrace) {
1671
1856
  return ma => {
1672
- return new _definition2.Stream(tsplus_module_57.mergeMap(a => f(a).channel, n, bufferSize)(tsplus_module_10.concatMap(tsplus_module_10.writeChunk)(ma.channel)));
1857
+ return new _definition4.Stream(tsplus_module_58.mergeMap(a => f(a).channel, n, bufferSize)(tsplus_module_10.concatMap(tsplus_module_10.writeChunk)(ma.channel)));
1673
1858
  };
1674
1859
  }
1675
1860
  /**
@@ -1693,14 +1878,14 @@ function mergeEither_1(fb, __tsplusTrace) {
1693
1878
  };
1694
1879
  }
1695
1880
  function mergeWithHandler(terminate, __tsplusTrace) {
1696
- return exit => terminate || !tsplus_module_52.isSuccess(exit) ? tsplus_module_58.done(tsplus_module_1.fromExitNow(exit, __tsplusTrace)) : tsplus_module_58.wait(tsplus_module_1.fromExitNow);
1881
+ return exit => terminate || !tsplus_module_52.isSuccess(exit) ? tsplus_module_59.done(tsplus_module_1.fromExitNow(exit, __tsplusTrace)) : tsplus_module_59.wait(tsplus_module_1.fromExitNow);
1697
1882
  }
1698
1883
  /**
1699
1884
  * @tsplus pipeable fncts.io.Stream mergeWith
1700
1885
  */
1701
1886
  function mergeWith_1(sb, l, r, strategy = "Both", __tsplusTrace) {
1702
1887
  return sa => {
1703
- return new _definition2.Stream(tsplus_module_59.mergeWith(map_1(r, __tsplusTrace)(sb).channel, mergeWithHandler(strategy === "Either" || strategy === "Left", __tsplusTrace), mergeWithHandler(strategy === "Either" || strategy === "Right", __tsplusTrace))(map_1(l, __tsplusTrace)(sa).channel));
1888
+ return new _definition4.Stream(tsplus_module_60.mergeWith(map_1(r, __tsplusTrace)(sb).channel, mergeWithHandler(strategy === "Either" || strategy === "Left", __tsplusTrace), mergeWithHandler(strategy === "Either" || strategy === "Right", __tsplusTrace))(map_1(l, __tsplusTrace)(sa).channel));
1704
1889
  };
1705
1890
  }
1706
1891
  /**
@@ -1724,7 +1909,7 @@ function onError(cleanup, __tsplusTrace) {
1724
1909
  */
1725
1910
  function orElse_1(that, __tsplusTrace) {
1726
1911
  return stream => {
1727
- return new _definition2.Stream(tsplus_module_10.orElse(that().channel)(stream.channel));
1912
+ return new _definition4.Stream(tsplus_module_10.orElse(that().channel)(stream.channel));
1728
1913
  };
1729
1914
  }
1730
1915
  /**
@@ -1757,7 +1942,7 @@ function orElseFail(e, __tsplusTrace) {
1757
1942
  * See also Stream#catchAll.
1758
1943
  */
1759
1944
  function orElseOptional(stream, that, __tsplusTrace) {
1760
- return catchAll_1(maybeError => tsplus_module_20.match(() => that(), e => failNow_1(tsplus_module_3.just(e), __tsplusTrace))(maybeError), __tsplusTrace)(stream);
1945
+ return catchAll_1(maybeError => tsplus_module_20.match(() => that(), e => failNow_1(tsplus_module_3.just(e, __tsplusTrace), __tsplusTrace))(maybeError), __tsplusTrace)(stream);
1761
1946
  }
1762
1947
  /**
1763
1948
  * Succeeds with the specified value if this one fails with a typed error.
@@ -1774,7 +1959,15 @@ function orElseSucceed(a, __tsplusTrace) {
1774
1959
  */
1775
1960
  function pipeThrough_1(sa, __tsplusTrace) {
1776
1961
  return ma => {
1777
- return new _definition2.Stream(tsplus_module_10.pipeToOrFail(sa.channel)(ma.channel));
1962
+ return new _definition4.Stream(tsplus_module_10.pipeToOrFail(sa.channel)(ma.channel));
1963
+ };
1964
+ }
1965
+ /**
1966
+ * @tsplus pipeable fncts.io.Stream pipeThroughChannelOrFail
1967
+ */
1968
+ function pipeThroughChannelOrFail_1(channel) {
1969
+ return self => {
1970
+ return new _definition4.Stream(tsplus_module_10.pipeToOrFail(channel)(self.channel));
1778
1971
  };
1779
1972
  }
1780
1973
  /**
@@ -1785,7 +1978,7 @@ function pipeThrough_1(sa, __tsplusTrace) {
1785
1978
  */
1786
1979
  function provideEnvironment_1(r, __tsplusTrace) {
1787
1980
  return ra => {
1788
- return new _definition2.Stream(tsplus_module_10.provideEnvironment(() => r)(ra.channel));
1981
+ return new _definition4.Stream(tsplus_module_10.provideEnvironment(() => r)(ra.channel));
1789
1982
  };
1790
1983
  }
1791
1984
  /**
@@ -1793,7 +1986,7 @@ function provideEnvironment_1(r, __tsplusTrace) {
1793
1986
  */
1794
1987
  function provideLayer_1(layer, __tsplusTrace) {
1795
1988
  return self => {
1796
- return new _definition2.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(r => tsplus_module_10.provideEnvironment(() => r)(self.channel), __tsplusTrace)(tsplus_module_60.build(layer, __tsplusTrace))));
1989
+ return new _definition4.Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(r => tsplus_module_10.provideEnvironment(() => r)(self.channel), __tsplusTrace)(tsplus_module_61.build(layer, __tsplusTrace))));
1797
1990
  };
1798
1991
  }
1799
1992
  /**
@@ -1802,7 +1995,7 @@ function provideLayer_1(layer, __tsplusTrace) {
1802
1995
  function provideSomeLayer(layer, __tsplusTrace) {
1803
1996
  return self => {
1804
1997
  // @ts-expect-error
1805
- return provideLayer_1(tsplus_module_61.and(layer, __tsplusTrace)(tsplus_module_61.environment(__tsplusTrace)), __tsplusTrace)(self);
1998
+ return provideLayer_1(tsplus_module_62.and(layer, __tsplusTrace)(tsplus_module_62.environment(__tsplusTrace)), __tsplusTrace)(self);
1806
1999
  };
1807
2000
  }
1808
2001
  class Rechunker {
@@ -1866,7 +2059,7 @@ function rechunkProcess(rechunker, target, __tsplusTrace) {
1866
2059
  */
1867
2060
  function rechunk(n, __tsplusTrace) {
1868
2061
  return stream => {
1869
- return new _definition2.Stream(tsplus_module_10.pipeTo(rechunkProcess(new Rechunker(n), n, __tsplusTrace))(stream.channel));
2062
+ return new _definition4.Stream(tsplus_module_10.pipeTo(rechunkProcess(new Rechunker(n), n, __tsplusTrace))(stream.channel));
1870
2063
  };
1871
2064
  }
1872
2065
  /**
@@ -1875,7 +2068,7 @@ function rechunk(n, __tsplusTrace) {
1875
2068
  * @tsplus static fncts.io.StreamOps repeatValue
1876
2069
  */
1877
2070
  function repeatValue(a, __tsplusTrace) {
1878
- return new _definition2.Stream(tsplus_module_10.repeated(tsplus_module_10.writeNow(tsplus_module_19.single(a))));
2071
+ return new _definition4.Stream(tsplus_module_10.repeated(tsplus_module_10.writeNow(tsplus_module_19.single(a))));
1879
2072
  }
1880
2073
  /**
1881
2074
  * Creates a stream from an effect producing a value of type `A` which repeats forever.
@@ -1907,7 +2100,7 @@ function repeatIOChunk(fa, __tsplusTrace) {
1907
2100
  * @tsplus static fncts.io.StreamOps repeatIOChunkMaybe
1908
2101
  */
1909
2102
  function repeatIOChunkMaybe_1(fa, __tsplusTrace) {
1910
- return unfoldChunkIO_1(undefined, _ => tsplus_module_1.catchAll(maybeError => tsplus_module_20.match(() => tsplus_module_1.succeedNow(tsplus_module_3.nothing(), __tsplusTrace), tsplus_module_1.failNow)(maybeError), __tsplusTrace)(tsplus_module_1.map(chunk => tsplus_module_3.just((0, _function.tuple)(chunk, undefined)), __tsplusTrace)(fa)), __tsplusTrace);
2103
+ return unfoldChunkIO_1(undefined, _ => tsplus_module_1.catchAll(maybeError => tsplus_module_20.match(() => tsplus_module_1.succeedNow(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), tsplus_module_1.failNow)(maybeError), __tsplusTrace)(tsplus_module_1.map(chunk => tsplus_module_3.just((0, _function.tuple)(chunk, undefined), __tsplusTrace), __tsplusTrace)(fa)), __tsplusTrace);
1911
2104
  }
1912
2105
  /**
1913
2106
  * Runs the sink on the stream to produce either the sink's result or an error.
@@ -1916,7 +2109,7 @@ function repeatIOChunkMaybe_1(fa, __tsplusTrace) {
1916
2109
  */
1917
2110
  function run_1(sink, __tsplusTrace) {
1918
2111
  return stream => {
1919
- return tsplus_module_62.runDrain(tsplus_module_10.pipeToOrFail(sink.channel)(stream.channel));
2112
+ return tsplus_module_63.runDrain(tsplus_module_10.pipeToOrFail(sink.channel)(stream.channel));
1920
2113
  };
1921
2114
  }
1922
2115
  /**
@@ -1949,9 +2142,9 @@ function runForeachScoped_1(f, __tsplusTrace) {
1949
2142
  *
1950
2143
  * @tsplus pipeable fncts.io.Stream runIntoElementsScoped
1951
2144
  */
1952
- function runIntoElementsScoped_1(queue, __tsplusTrace) {
2145
+ function runIntoElementsScoped_(queue, __tsplusTrace) {
1953
2146
  return stream => {
1954
- const writer = tsplus_module_10.readWith(inp => tsplus_module_11.zipRight(writer)(tsplus_module_12.foldLeft(tsplus_module_10.unit, (channel, a) => tsplus_module_11.zipRight(tsplus_module_10.writeNow(tsplus_module_41.succeed(a)))(channel))(inp)), err => tsplus_module_10.writeNow(tsplus_module_41.fail(tsplus_module_3.just(err))), () => tsplus_module_10.writeNow(tsplus_module_41.fail(tsplus_module_3.nothing())));
2147
+ const writer = tsplus_module_10.readWith(inp => tsplus_module_11.zipRight(writer)(tsplus_module_12.foldLeft(tsplus_module_10.unit, (channel, a) => tsplus_module_11.zipRight(tsplus_module_10.writeNow(tsplus_module_41.succeed(a, __tsplusTrace)))(channel))(inp)), err => tsplus_module_10.writeNow(tsplus_module_41.fail(tsplus_module_3.just(err, __tsplusTrace), __tsplusTrace)), () => tsplus_module_10.writeNow(tsplus_module_41.fail(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace)));
1955
2148
  return tsplus_module_1.asUnit(tsplus_module_16.runScoped(tsplus_module_10.drain(tsplus_module_10.mapOutIO(exit => tsplus_module_28.offer(exit, __tsplusTrace)(queue))(tsplus_module_10.pipeTo(writer)(stream.channel)))), __tsplusTrace);
1956
2149
  };
1957
2150
  }
@@ -1967,6 +2160,21 @@ function runIntoQueueScoped_1(queue, __tsplusTrace) {
1967
2160
  return tsplus_module_1.asUnit(tsplus_module_16.runScoped(tsplus_module_10.drain(tsplus_module_10.mapOutIO(take => tsplus_module_28.offer(take, __tsplusTrace)(queue))(tsplus_module_10.pipeTo(writer)(stream.channel)))), __tsplusTrace);
1968
2161
  };
1969
2162
  }
2163
+ /**
2164
+ * Like runIntoQueue, but provides the result as a scoped IO
2165
+ * to allow for scope composition.
2166
+ *
2167
+ * @tsplus pipeable fncts.io.Stream runIntoQueueElementsScoped
2168
+ */
2169
+ function runIntoQueueElementsScoped_1(queue) {
2170
+ return self => {
2171
+ return tsplus_module_1.defer(() => {
2172
+ const queue0 = queue();
2173
+ const writer = tsplus_module_10.readWithCause(inp => tsplus_module_11.zipRight(writer)(tsplus_module_10.fromIO(() => tsplus_module_28.offerAll(tsplus_module_12.map(a => tsplus_module_41.succeed(a, fileName_1 + ":2799:85"))(inp), fileName_1 + ":2799:57")(queue0))), cause => tsplus_module_10.fromIO(() => tsplus_module_28.offer(tsplus_module_41.failCause(tsplus_module_25.map(e => tsplus_module_3.just(e, fileName_1 + ":2800:84"))(cause), fileName_1 + ":2800:62"), fileName_1 + ":2800:47")(queue0)), () => tsplus_module_10.fromIO(() => tsplus_module_28.offer(tsplus_module_41.fail(tsplus_module_3.nothing(fileName_1 + ":2801:60"), fileName_1 + ":2801:52"), fileName_1 + ":2801:42")(queue0)));
2174
+ return tsplus_module_1.asUnit(tsplus_module_16.runScoped(tsplus_module_10.drain(tsplus_module_10.pipeTo(writer)(self.channel))), fileName_1 + ":2804:55");
2175
+ }, fileName_1 + ":2796:20");
2176
+ };
2177
+ }
1970
2178
  /**
1971
2179
  * Like `Stream#runIntoHub`, but provides the result as a `Managed` to allow for scope
1972
2180
  * composition.
@@ -2029,7 +2237,34 @@ function scanReduce(f, __tsplusTrace) {
2029
2237
  */
2030
2238
  function scanReduceIO_1(f, __tsplusTrace) {
2031
2239
  return fa => {
2032
- return mapAccumIO_1(tsplus_module_3.nothing(), (s, a) => tsplus_module_20.match(() => tsplus_module_1.succeedNow([a, tsplus_module_3.just(a)], __tsplusTrace), b => tsplus_module_1.map(b => [b, tsplus_module_3.just(b)], __tsplusTrace)(f(b, a)))(s), __tsplusTrace)(fa);
2240
+ return mapAccumIO_1(tsplus_module_3.nothing(__tsplusTrace), (s, a) => tsplus_module_20.match(() => tsplus_module_1.succeedNow([a, tsplus_module_3.just(a, __tsplusTrace)], __tsplusTrace), b => tsplus_module_1.map(b => [b, tsplus_module_3.just(b, __tsplusTrace)], __tsplusTrace)(f(b, a)))(s), __tsplusTrace)(fa);
2241
+ };
2242
+ }
2243
+ /**
2244
+ * @tsplus pipeable fncts.io.Stream split
2245
+ */
2246
+ function split(predicate, __tsplusTrace) {
2247
+ return self => {
2248
+ function split(leftovers, input) {
2249
+ const [chunk, remaining] = tsplus_module_12.splitWhere(predicate)(tsplus_module_12.concat(input)(leftovers));
2250
+ if (tsplus_module_12.isEmpty(chunk) || tsplus_module_12.isEmpty(remaining)) {
2251
+ return loop(tsplus_module_12.concat(tsplus_module_12.drop(1)(remaining))(chunk));
2252
+ } else {
2253
+ return tsplus_module_11.zipRight(split(tsplus_module_7.empty(), tsplus_module_12.drop(1)(remaining)))(tsplus_module_10.writeNow(tsplus_module_19.single(chunk)));
2254
+ }
2255
+ }
2256
+ function loop(leftovers) {
2257
+ return tsplus_module_10.readWith(input => split(leftovers, input), tsplus_module_10.failNow, _ => {
2258
+ if (tsplus_module_12.isEmpty(leftovers)) {
2259
+ return tsplus_module_10.unit;
2260
+ } else if (tsplus_module_64.isNothing(tsplus_module_12.find(predicate)(leftovers))) {
2261
+ return tsplus_module_11.zipRight(tsplus_module_10.unit)(tsplus_module_10.writeNow(tsplus_module_19.single(leftovers)));
2262
+ } else {
2263
+ return tsplus_module_11.zipRight(tsplus_module_10.unit)(split(tsplus_module_7.empty(), leftovers));
2264
+ }
2265
+ });
2266
+ }
2267
+ return new _definition4.Stream(tsplus_module_10.pipeTo(loop(tsplus_module_7.empty()))(self.channel));
2033
2268
  };
2034
2269
  }
2035
2270
  /**
@@ -2070,9 +2305,9 @@ function take(n, __tsplusTrace) {
2070
2305
  return empty_1;
2071
2306
  }
2072
2307
  if (!Number.isInteger(n)) {
2073
- return halt_1(() => new tsplus_module_63.IllegalArgumentError(`${n} should be an integer`, "Stream.take"), __tsplusTrace);
2308
+ return halt_1(() => new tsplus_module_65.IllegalArgumentError(`${n} should be an integer`, "Stream.take"), __tsplusTrace);
2074
2309
  }
2075
- return new _definition2.Stream(tsplus_module_10.pipeTo(takeLoop(n, __tsplusTrace))(stream.channel));
2310
+ return new _definition4.Stream(tsplus_module_10.pipeTo(takeLoop(n, __tsplusTrace))(stream.channel));
2076
2311
  };
2077
2312
  }
2078
2313
  /**
@@ -2080,7 +2315,7 @@ function take(n, __tsplusTrace) {
2080
2315
  */
2081
2316
  function takeUntilIO(f, __tsplusTrace) {
2082
2317
  return ma => {
2083
- return new _definition2.Stream(tsplus_module_10.pipeTo(takeUntilIOLoop(tsplus_module_40.empty()[Symbol.iterator](), f, __tsplusTrace))(ma.channel));
2318
+ return new _definition4.Stream(tsplus_module_10.pipeTo(takeUntilIOLoop(tsplus_module_40.empty()[Symbol.iterator](), f, __tsplusTrace))(ma.channel));
2084
2319
  };
2085
2320
  }
2086
2321
  function takeUntilIOLoop(iterator, f, __tsplusTrace) {
@@ -2110,17 +2345,64 @@ function takeUntilLoop(p, __tsplusTrace) {
2110
2345
  */
2111
2346
  function takeUntil(p, __tsplusTrace) {
2112
2347
  return fa => {
2113
- return new _definition2.Stream(tsplus_module_10.pipeTo(takeUntilLoop(p, __tsplusTrace))(fa.channel));
2348
+ return new _definition4.Stream(tsplus_module_10.pipeTo(takeUntilLoop(p, __tsplusTrace))(fa.channel));
2114
2349
  };
2115
2350
  }
2116
2351
  /**
2117
2352
  * @tsplus pipeable fncts.io.Stream tap
2118
2353
  */
2119
- function tap(f, __tsplusTrace) {
2354
+ function tap_1(f, __tsplusTrace) {
2120
2355
  return ma => {
2121
2356
  return mapIO_1(a => tsplus_module_1.as(() => a, __tsplusTrace)(f(a)), __tsplusTrace)(ma);
2122
2357
  };
2123
2358
  }
2359
+ /**
2360
+ * Returns a stream that effectfully "peeks" at the failure and adds an effect
2361
+ * to consumption of every element of the stream
2362
+ *
2363
+ * @tsplus pipeable fncts.io.Stream tapBoth
2364
+ */
2365
+ function tapBoth(f, g, __tsplusTrace) {
2366
+ return self => {
2367
+ return tap_1(g, __tsplusTrace)(tapError_1(f, __tsplusTrace)(self));
2368
+ };
2369
+ }
2370
+ /**
2371
+ * Returns a stream that effectfully "peeks" at the failure of the stream.
2372
+ *
2373
+ * @tsplus pipeable fncts.io.Stream tapError
2374
+ */
2375
+ function tapError_1(f, __tsplusTrace) {
2376
+ return self => {
2377
+ return catchAll_1(e => fromIO_1(f(e), __tsplusTrace), __tsplusTrace)(self);
2378
+ };
2379
+ }
2380
+ /**
2381
+ * Returns a stream that effectfully "peeks" at the cause of failure of the
2382
+ * stream.
2383
+ *
2384
+ * @tsplus pipeable fncts.io.Stream tapErrorCause
2385
+ */
2386
+ function tapErrorCause(f, __tsplusTrace) {
2387
+ return self => {
2388
+ return catchAllCause_1(e => fromIO_1(tsplus_module_1.zipRight(tsplus_module_1.refailCause(e, __tsplusTrace), __tsplusTrace)(f(e)), __tsplusTrace), __tsplusTrace)(self);
2389
+ };
2390
+ }
2391
+ /**
2392
+ * Sends all elements emitted by this stream to the specified sink in addition
2393
+ * to emitting them.
2394
+ *
2395
+ * @tsplus pipeable fncts.io.Stream tapSink
2396
+ */
2397
+ function tapSink(sink, __tsplusTrace) {
2398
+ return self => {
2399
+ return flatMap_1(([queue, future]) => {
2400
+ const right = flattenTake_1(fromQueue_1(queue, 1, __tsplusTrace), __tsplusTrace);
2401
+ const loop = tsplus_module_10.readWithCause(chunk => tsplus_module_11.zipRight(loop)(tsplus_module_11.zipRight(tsplus_module_10.writeNow(chunk))(tsplus_module_10.fromIO(() => tsplus_module_28.offer(tsplus_module_27.chunk(chunk), __tsplusTrace)(queue)))), cause => tsplus_module_10.fromIO(() => tsplus_module_28.offer(tsplus_module_27.failCause(cause), __tsplusTrace)(queue)), () => tsplus_module_10.fromIO(() => tsplus_module_28.offer(tsplus_module_27.end, __tsplusTrace)(queue)));
2402
+ return merge_1(execute_1(tsplus_module_66.ensuring(tsplus_module_37.succeed_(undefined, __tsplusTrace)(future), __tsplusTrace)(run_1(sink, __tsplusTrace)(right)), __tsplusTrace), "Both", __tsplusTrace)(new _definition4.Stream(tsplus_module_10.ensuring(tsplus_module_1.zipRight(tsplus_module_37.wait(future, __tsplusTrace), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_28.offer(tsplus_module_27.end, __tsplusTrace)(queue), __tsplusTrace)))(tsplus_module_10.pipeTo(loop)(self.channel))));
2403
+ }, __tsplusTrace)(fromIO_1(tsplus_module_1.zip(tsplus_module_38.make(__tsplusTrace), __tsplusTrace)(tsplus_module_30.makeBounded(1, __tsplusTrace)), __tsplusTrace));
2404
+ };
2405
+ }
2124
2406
  /**
2125
2407
  * Throttles the chunks of this stream according to the given bandwidth parameters using the token bucket
2126
2408
  * algorithm. Allows for burst in the processing of elements by allowing the token bucket to accumulate
@@ -2156,7 +2438,7 @@ function throttleEnforceIOLoop(costFn, units, duration, burst, tokens, timestamp
2156
2438
  */
2157
2439
  function throttleEnforceIO_1(costFn, units, duration, burst = 0, __tsplusTrace) {
2158
2440
  return sa => {
2159
- return new _definition2.Stream(tsplus_module_11.flatMap(current => tsplus_module_10.pipeTo(throttleEnforceIOLoop(costFn, units, duration, burst, units, current, __tsplusTrace))(sa.channel))(tsplus_module_10.fromIO(() => tsplus_module_43.currentTime)));
2441
+ return new _definition4.Stream(tsplus_module_11.flatMap(current => tsplus_module_10.pipeTo(throttleEnforceIOLoop(costFn, units, duration, burst, units, current, __tsplusTrace))(sa.channel))(tsplus_module_10.fromIO(() => tsplus_module_43.currentTime)));
2160
2442
  };
2161
2443
  }
2162
2444
  /**
@@ -2176,7 +2458,7 @@ function toHub_1(capacity, __tsplusTrace) {
2176
2458
  * @tsplus getter fncts.io.Stream toPull
2177
2459
  */
2178
2460
  function toPull_1(stream, __tsplusTrace) {
2179
- return tsplus_module_1.map(io => tsplus_module_1.flatMap(r => tsplus_module_4.match(() => tsplus_module_1.failNow(tsplus_module_3.nothing(), __tsplusTrace), tsplus_module_1.succeedNow)(r), __tsplusTrace)(tsplus_module_1.mapError(tsplus_module_3.just, __tsplusTrace)(io)), __tsplusTrace)(tsplus_module_64.toPull(stream.channel));
2461
+ return tsplus_module_1.map(io => tsplus_module_1.flatMap(r => tsplus_module_4.match(() => tsplus_module_1.failNow(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), tsplus_module_1.succeedNow)(r), __tsplusTrace)(tsplus_module_1.mapError(tsplus_module_3.just, __tsplusTrace)(io)), __tsplusTrace)(tsplus_module_67.toPull(stream.channel));
2180
2462
  }
2181
2463
  /**
2182
2464
  * Converts the stream to a managed queue of chunks. After the managed queue is used,
@@ -2202,7 +2484,7 @@ function toQueueDropping(capacity = 2, __tsplusTrace) {
2202
2484
  */
2203
2485
  function toQueueOfElements_1(capacity = 2, __tsplusTrace) {
2204
2486
  return stream => {
2205
- return tsplus_module_1.flatMap(queue => tsplus_module_1.map(() => queue, __tsplusTrace)(tsplus_module_33.fork(runIntoElementsScoped_1(queue, __tsplusTrace)(stream), __tsplusTrace)), __tsplusTrace)(tsplus_module_31.acquireRelease(() => tsplus_module_30.makeBounded(capacity, __tsplusTrace), _ => tsplus_module_28.shutdown(_, __tsplusTrace), __tsplusTrace));
2487
+ return tsplus_module_1.flatMap(queue => tsplus_module_1.map(() => queue, __tsplusTrace)(tsplus_module_17.forkScoped(runIntoQueueElementsScoped_1(() => queue)(stream), __tsplusTrace)), __tsplusTrace)(tsplus_module_31.acquireRelease(() => tsplus_module_30.makeBounded(capacity, __tsplusTrace), _ => tsplus_module_28.shutdown(_, __tsplusTrace), __tsplusTrace));
2206
2488
  };
2207
2489
  }
2208
2490
  /**
@@ -2231,7 +2513,7 @@ function unfoldChunkIOLoop(s, f, __tsplusTrace) {
2231
2513
  * @tsplus static fncts.io.StreamOps unfoldChunkIO
2232
2514
  */
2233
2515
  function unfoldChunkIO_1(s, f, __tsplusTrace) {
2234
- return new _definition2.Stream(unfoldChunkIOLoop(s, f, __tsplusTrace));
2516
+ return new _definition4.Stream(unfoldChunkIOLoop(s, f, __tsplusTrace));
2235
2517
  }
2236
2518
  /**
2237
2519
  * Creates a stream by effectfully peeling off the "layers" of a value of type `S`
@@ -2248,7 +2530,7 @@ function unfoldChunkLoop(s, f, __tsplusTrace) {
2248
2530
  * @tsplus static fncts.io.StreamOps unfoldChunk
2249
2531
  */
2250
2532
  function unfoldChunk_1(s, f, __tsplusTrace) {
2251
- return new _definition2.Stream(tsplus_module_10.defer(() => unfoldChunkLoop(s, f, __tsplusTrace)));
2533
+ return new _definition4.Stream(tsplus_module_10.defer(() => unfoldChunkLoop(s, f, __tsplusTrace)));
2252
2534
  }
2253
2535
  /**
2254
2536
  * @tsplus static fncts.io.StreamOps unfold