@fncts/io 0.0.22 → 0.0.24

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 (486) hide show
  1. package/Cached/definition.d.ts +6 -4
  2. package/Cached/internal.d.ts +4 -4
  3. package/Channel/api.d.ts +4 -4
  4. package/Channel/definition.d.ts +35 -14
  5. package/Channel/internal/ChannelExecutor.d.ts +1 -0
  6. package/Channel/internal/MergeDecision.d.ts +10 -6
  7. package/CountdownLatch.d.ts +1 -1
  8. package/Differ/definition.d.ts +2 -4
  9. package/Fiber/FiberRuntime.d.ts +9 -11
  10. package/Fiber/definition.d.ts +12 -6
  11. package/FiberRef/definition.d.ts +6 -2
  12. package/FiberRefs/api.d.ts +1 -1
  13. package/FiberRefs/definition.d.ts +1 -1
  14. package/Hub/definition.d.ts +29 -15
  15. package/IO/api/descriptor.d.ts +12 -0
  16. package/IO/api/interrupt.d.ts +19 -19
  17. package/IO/api/onTermination.d.ts +0 -1
  18. package/IO/api/sequenceT.d.ts +19 -3
  19. package/IO/api.d.ts +5 -0
  20. package/IO/definition.d.ts +40 -26
  21. package/IO.d.ts +1 -1
  22. package/Layer/definition.d.ts +17 -13
  23. package/Logger/definition.d.ts +10 -6
  24. package/MVar/api.d.ts +101 -0
  25. package/MVar/definition.d.ts +43 -0
  26. package/MVar.d.ts +2 -0
  27. package/Push/api.d.ts +7 -4
  28. package/Push/definition.d.ts +10 -3
  29. package/Push/internal.d.ts +1 -1
  30. package/Queue/api/dimapIO.d.ts +17 -13
  31. package/Queue/definition.d.ts +26 -18
  32. package/Ref/Derived.d.ts +3 -1
  33. package/Ref/Synchronized/constructors.d.ts +6 -1
  34. package/Ref/Synchronized/definition.d.ts +4 -2
  35. package/Ref/definition.d.ts +36 -25
  36. package/Ref.d.ts +0 -1
  37. package/RefSubject/definition.d.ts +17 -11
  38. package/Reloadable/definition.d.ts +5 -1
  39. package/STM/api/atomically.d.ts +9 -0
  40. package/STM/api.d.ts +12 -6
  41. package/STM/definition.d.ts +28 -15
  42. package/STM/internal/Entry.d.ts +2 -2
  43. package/STM/internal/TryCommit.d.ts +2 -2
  44. package/STM/internal/Versioned.d.ts +1 -1
  45. package/STM.d.ts +1 -0
  46. package/Schedule/definition.d.ts +7 -3
  47. package/Scope/definition.d.ts +1 -1
  48. package/ScopedRef/definition.d.ts +1 -1
  49. package/State/api.d.ts +1 -1
  50. package/State/definition.d.ts +5 -2
  51. package/State/internal.d.ts +6 -2
  52. package/Stream/definition.d.ts +26 -5
  53. package/Stream/internal/Handoff.d.ts +21 -15
  54. package/Stream/internal/SinkEndReason.d.ts +2 -2
  55. package/Subject/Atomic.d.ts +8 -4
  56. package/SupervisorPatch.d.ts +1 -1
  57. package/TExit/definition.d.ts +5 -5
  58. package/TRef/definition.d.ts +16 -14
  59. package/TRef.d.ts +0 -1
  60. package/_cjs/Cached/definition.cjs +4 -2
  61. package/_cjs/Cached/definition.cjs.map +1 -1
  62. package/_cjs/Cached/internal.cjs +7 -6
  63. package/_cjs/Cached/internal.cjs.map +1 -1
  64. package/_cjs/Channel/api/mapOutConcurrentIO.cjs +1 -1
  65. package/_cjs/Channel/api/mergeAllWith.cjs +1 -1
  66. package/_cjs/Channel/api.cjs +20 -20
  67. package/_cjs/Channel/api.cjs.map +1 -1
  68. package/_cjs/Channel/definition.cjs +13 -3
  69. package/_cjs/Channel/definition.cjs.map +1 -1
  70. package/_cjs/Channel/internal/ChannelExecutor.cjs +11 -6
  71. package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
  72. package/_cjs/Channel/internal/MergeDecision.cjs +7 -3
  73. package/_cjs/Channel/internal/MergeDecision.cjs.map +1 -1
  74. package/_cjs/CountdownLatch.cjs +4 -2
  75. package/_cjs/CountdownLatch.cjs.map +1 -1
  76. package/_cjs/Differ/definition.cjs +3 -1
  77. package/_cjs/Differ/definition.cjs.map +1 -1
  78. package/_cjs/Fiber/FiberRuntime.cjs +96 -89
  79. package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
  80. package/_cjs/Fiber/definition.cjs +8 -4
  81. package/_cjs/Fiber/definition.cjs.map +1 -1
  82. package/_cjs/FiberRef/definition.cjs +8 -4
  83. package/_cjs/FiberRef/definition.cjs.map +1 -1
  84. package/_cjs/Future/api.cjs +17 -6
  85. package/_cjs/Future/api.cjs.map +1 -1
  86. package/_cjs/Hub/api.cjs +5 -5
  87. package/_cjs/Hub/api.cjs.map +1 -1
  88. package/_cjs/Hub/definition.cjs +9 -7
  89. package/_cjs/Hub/definition.cjs.map +1 -1
  90. package/_cjs/Hub/internal.cjs +6 -6
  91. package/_cjs/Hub/internal.cjs.map +1 -1
  92. package/_cjs/IO/api/asyncIO.cjs +1 -1
  93. package/_cjs/IO/api/asyncIO.cjs.map +1 -1
  94. package/_cjs/IO/api/asyncInterrupt.cjs +2 -2
  95. package/_cjs/IO/api/asyncInterrupt.cjs.map +1 -1
  96. package/_cjs/IO/api/bracketExit.cjs +1 -1
  97. package/_cjs/IO/api/bracketExit.cjs.map +1 -1
  98. package/_cjs/IO/api/{onExit.cjs → descriptor.cjs} +20 -9
  99. package/_cjs/IO/api/descriptor.cjs.map +1 -0
  100. package/_cjs/IO/api/foreachConcurrent.cjs +2 -2
  101. package/_cjs/IO/api/foreachConcurrent.cjs.map +1 -1
  102. package/_cjs/IO/api/forkIn.cjs +1 -1
  103. package/_cjs/IO/api/forkIn.cjs.map +1 -1
  104. package/_cjs/IO/api/forkScoped.cjs +1 -1
  105. package/_cjs/IO/api/forkScoped.cjs.map +1 -1
  106. package/_cjs/IO/api/fulfill.cjs +1 -1
  107. package/_cjs/IO/api/fulfill.cjs.map +1 -1
  108. package/_cjs/IO/api/interrupt.cjs +52 -43
  109. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  110. package/_cjs/IO/api/onTermination.cjs +7 -6
  111. package/_cjs/IO/api/onTermination.cjs.map +1 -1
  112. package/_cjs/IO/api/race.cjs +1 -1
  113. package/_cjs/IO/api/race.cjs.map +1 -1
  114. package/_cjs/IO/api/sequenceT.cjs +1 -1
  115. package/_cjs/IO/api/sequenceT.cjs.map +1 -1
  116. package/_cjs/IO/api/zipConcurrent.cjs +1 -1
  117. package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
  118. package/_cjs/IO/api.cjs +13 -5
  119. package/_cjs/IO/api.cjs.map +1 -1
  120. package/_cjs/IO/definition.cjs +26 -21
  121. package/_cjs/IO/definition.cjs.map +1 -1
  122. package/_cjs/IO.cjs +11 -11
  123. package/_cjs/Layer/MemoMap.cjs +30 -31
  124. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  125. package/_cjs/Layer/api.cjs +1 -1
  126. package/_cjs/Layer/api.cjs.map +1 -1
  127. package/_cjs/Layer/definition.cjs +12 -10
  128. package/_cjs/Layer/definition.cjs.map +1 -1
  129. package/_cjs/Logger/definition.cjs +3 -1
  130. package/_cjs/Logger/definition.cjs.map +1 -1
  131. package/_cjs/MVar/api.cjs +170 -0
  132. package/_cjs/MVar/api.cjs.map +1 -0
  133. package/_cjs/MVar/definition.cjs +28 -0
  134. package/_cjs/MVar/definition.cjs.map +1 -0
  135. package/_cjs/MVar.cjs +28 -0
  136. package/_cjs/MVar.cjs.map +1 -0
  137. package/_cjs/Push/api.cjs +39 -36
  138. package/_cjs/Push/api.cjs.map +1 -1
  139. package/_cjs/Push/definition.cjs +9 -2
  140. package/_cjs/Push/definition.cjs.map +1 -1
  141. package/_cjs/Push/internal.cjs +4 -2
  142. package/_cjs/Push/internal.cjs.map +1 -1
  143. package/_cjs/Queue/api/dimapIO.cjs +10 -10
  144. package/_cjs/Queue/api/dimapIO.cjs.map +1 -1
  145. package/_cjs/Queue/api/filterInputIO.cjs +4 -4
  146. package/_cjs/Queue/api/filterInputIO.cjs.map +1 -1
  147. package/_cjs/Queue/api/filterOutputIO.cjs +7 -7
  148. package/_cjs/Queue/api/filterOutputIO.cjs.map +1 -1
  149. package/_cjs/Queue/definition.cjs +3 -1
  150. package/_cjs/Queue/definition.cjs.map +1 -1
  151. package/_cjs/Queue/internal.cjs +2 -2
  152. package/_cjs/Queue/internal.cjs.map +1 -1
  153. package/_cjs/Queue/strategy.cjs +2 -2
  154. package/_cjs/Queue/strategy.cjs.map +1 -1
  155. package/_cjs/Ref/Derived.cjs +8 -4
  156. package/_cjs/Ref/Derived.cjs.map +1 -1
  157. package/_cjs/Ref/Synchronized/constructors.cjs +16 -7
  158. package/_cjs/Ref/Synchronized/constructors.cjs.map +1 -1
  159. package/_cjs/Ref/Synchronized/definition.cjs +16 -12
  160. package/_cjs/Ref/Synchronized/definition.cjs.map +1 -1
  161. package/_cjs/Ref/definition.cjs +3 -2
  162. package/_cjs/Ref/definition.cjs.map +1 -1
  163. package/_cjs/Ref.cjs +0 -11
  164. package/_cjs/Ref.cjs.map +1 -1
  165. package/_cjs/RefSubject/Synchronized/api.cjs +1 -1
  166. package/_cjs/RefSubject/definition.cjs +9 -5
  167. package/_cjs/RefSubject/definition.cjs.map +1 -1
  168. package/_cjs/Reloadable/definition.cjs +4 -2
  169. package/_cjs/Reloadable/definition.cjs.map +1 -1
  170. package/_cjs/STM/api/atomically.cjs +55 -0
  171. package/_cjs/STM/api/atomically.cjs.map +1 -0
  172. package/_cjs/STM/api.cjs +65 -91
  173. package/_cjs/STM/api.cjs.map +1 -1
  174. package/_cjs/STM/definition.cjs +32 -19
  175. package/_cjs/STM/definition.cjs.map +1 -1
  176. package/_cjs/STM/driver.cjs +3 -3
  177. package/_cjs/STM/driver.cjs.map +1 -1
  178. package/_cjs/STM/internal/Entry.cjs +6 -3
  179. package/_cjs/STM/internal/Entry.cjs.map +1 -1
  180. package/_cjs/STM/internal/TryCommit.cjs +5 -2
  181. package/_cjs/STM/internal/TryCommit.cjs.map +1 -1
  182. package/_cjs/STM/internal/Versioned.cjs +3 -1
  183. package/_cjs/STM/internal/Versioned.cjs.map +1 -1
  184. package/_cjs/STM.cjs +11 -0
  185. package/_cjs/STM.cjs.map +1 -1
  186. package/_cjs/Schedule/definition.cjs +3 -1
  187. package/_cjs/Schedule/definition.cjs.map +1 -1
  188. package/_cjs/Scope/api.cjs +1 -2
  189. package/_cjs/Scope/api.cjs.map +1 -1
  190. package/_cjs/Scope/definition.cjs +5 -3
  191. package/_cjs/Scope/definition.cjs.map +1 -1
  192. package/_cjs/ScopedRef/api.cjs +2 -2
  193. package/_cjs/ScopedRef/api.cjs.map +1 -1
  194. package/_cjs/ScopedRef/definition.cjs +3 -1
  195. package/_cjs/ScopedRef/definition.cjs.map +1 -1
  196. package/_cjs/State/api.cjs +2 -2
  197. package/_cjs/State/api.cjs.map +1 -1
  198. package/_cjs/State/definition.cjs +4 -2
  199. package/_cjs/State/definition.cjs.map +1 -1
  200. package/_cjs/State/internal.cjs +7 -3
  201. package/_cjs/State/internal.cjs.map +1 -1
  202. package/_cjs/Stream/api.cjs +1 -1
  203. package/_cjs/Stream/definition.cjs +4 -2
  204. package/_cjs/Stream/definition.cjs.map +1 -1
  205. package/_cjs/Stream/internal/Handoff.cjs +37 -37
  206. package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
  207. package/_cjs/Stream/internal/SinkEndReason.cjs +6 -3
  208. package/_cjs/Stream/internal/SinkEndReason.cjs.map +1 -1
  209. package/_cjs/Subject/Atomic.cjs +6 -4
  210. package/_cjs/Subject/Atomic.cjs.map +1 -1
  211. package/_cjs/SubscriptionRef.cjs +1 -1
  212. package/_cjs/SupervisorPatch.cjs +3 -1
  213. package/_cjs/SupervisorPatch.cjs.map +1 -1
  214. package/_cjs/TExit/definition.cjs +25 -24
  215. package/_cjs/TExit/definition.cjs.map +1 -1
  216. package/_cjs/TFuture/constructors.cjs +1 -1
  217. package/_cjs/TReentrantLock/api.cjs +10 -9
  218. package/_cjs/TReentrantLock/api.cjs.map +1 -1
  219. package/_cjs/TRef/constructors.cjs +1 -1
  220. package/_cjs/TRef/definition.cjs +21 -21
  221. package/_cjs/TRef/definition.cjs.map +1 -1
  222. package/_cjs/TRef.cjs +0 -11
  223. package/_cjs/TRef.cjs.map +1 -1
  224. package/_cjs/TSemaphore/api.cjs +2 -2
  225. package/_cjs/TSemaphore/api.cjs.map +1 -1
  226. package/_cjs/TSemaphore/constructors.cjs +1 -1
  227. package/_cjs/internal/IsFatal.cjs +3 -1
  228. package/_cjs/internal/IsFatal.cjs.map +1 -1
  229. package/_mjs/Cached/definition.mjs +4 -2
  230. package/_mjs/Cached/definition.mjs.map +1 -1
  231. package/_mjs/Cached/internal.mjs +3 -5
  232. package/_mjs/Cached/internal.mjs.map +1 -1
  233. package/_mjs/Channel/api/mapOutConcurrentIO.mjs +1 -1
  234. package/_mjs/Channel/api/mergeAllWith.mjs +1 -1
  235. package/_mjs/Channel/api.mjs +15 -14
  236. package/_mjs/Channel/api.mjs.map +1 -1
  237. package/_mjs/Channel/definition.mjs +9 -1
  238. package/_mjs/Channel/definition.mjs.map +1 -1
  239. package/_mjs/Channel/internal/ChannelExecutor.mjs +11 -6
  240. package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
  241. package/_mjs/Channel/internal/MergeDecision.mjs +4 -1
  242. package/_mjs/Channel/internal/MergeDecision.mjs.map +1 -1
  243. package/_mjs/CountdownLatch.mjs +3 -1
  244. package/_mjs/CountdownLatch.mjs.map +1 -1
  245. package/_mjs/Differ/definition.mjs +3 -1
  246. package/_mjs/Differ/definition.mjs.map +1 -1
  247. package/_mjs/Fiber/FiberRuntime.mjs +97 -90
  248. package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
  249. package/_mjs/Fiber/definition.mjs +5 -2
  250. package/_mjs/Fiber/definition.mjs.map +1 -1
  251. package/_mjs/FiberRef/definition.mjs +6 -3
  252. package/_mjs/FiberRef/definition.mjs.map +1 -1
  253. package/_mjs/Future/api.mjs +17 -6
  254. package/_mjs/Future/api.mjs.map +1 -1
  255. package/_mjs/Hub/api.mjs +6 -6
  256. package/_mjs/Hub/api.mjs.map +1 -1
  257. package/_mjs/Hub/definition.mjs +5 -4
  258. package/_mjs/Hub/definition.mjs.map +1 -1
  259. package/_mjs/Hub/internal.mjs +6 -6
  260. package/_mjs/Hub/internal.mjs.map +1 -1
  261. package/_mjs/IO/api/asyncIO.mjs +1 -1
  262. package/_mjs/IO/api/asyncIO.mjs.map +1 -1
  263. package/_mjs/IO/api/asyncInterrupt.mjs +2 -2
  264. package/_mjs/IO/api/asyncInterrupt.mjs.map +1 -1
  265. package/_mjs/IO/api/bracketExit.mjs +1 -1
  266. package/_mjs/IO/api/bracketExit.mjs.map +1 -1
  267. package/_mjs/IO/api/descriptor.mjs +20 -0
  268. package/_mjs/IO/api/descriptor.mjs.map +1 -0
  269. package/_mjs/IO/api/foreachConcurrent.mjs +2 -2
  270. package/_mjs/IO/api/foreachConcurrent.mjs.map +1 -1
  271. package/_mjs/IO/api/forkIn.mjs +1 -1
  272. package/_mjs/IO/api/forkIn.mjs.map +1 -1
  273. package/_mjs/IO/api/forkScoped.mjs +1 -1
  274. package/_mjs/IO/api/forkScoped.mjs.map +1 -1
  275. package/_mjs/IO/api/fulfill.mjs +1 -1
  276. package/_mjs/IO/api/fulfill.mjs.map +1 -1
  277. package/_mjs/IO/api/interrupt.mjs +46 -38
  278. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  279. package/_mjs/IO/api/onTermination.mjs +7 -6
  280. package/_mjs/IO/api/onTermination.mjs.map +1 -1
  281. package/_mjs/IO/api/race.mjs +1 -1
  282. package/_mjs/IO/api/race.mjs.map +1 -1
  283. package/_mjs/IO/api/sequenceT.mjs +1 -1
  284. package/_mjs/IO/api/sequenceT.mjs.map +1 -1
  285. package/_mjs/IO/api/zipConcurrent.mjs +1 -1
  286. package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
  287. package/_mjs/IO/api.mjs +10 -3
  288. package/_mjs/IO/api.mjs.map +1 -1
  289. package/_mjs/IO/definition.mjs +23 -19
  290. package/_mjs/IO/definition.mjs.map +1 -1
  291. package/_mjs/IO.mjs +1 -1
  292. package/_mjs/IO.mjs.map +1 -1
  293. package/_mjs/Layer/MemoMap.mjs +28 -29
  294. package/_mjs/Layer/MemoMap.mjs.map +1 -1
  295. package/_mjs/Layer/api.mjs +2 -2
  296. package/_mjs/Layer/api.mjs.map +1 -1
  297. package/_mjs/Layer/definition.mjs +9 -8
  298. package/_mjs/Layer/definition.mjs.map +1 -1
  299. package/_mjs/Logger/definition.mjs +1 -0
  300. package/_mjs/Logger/definition.mjs.map +1 -1
  301. package/_mjs/MVar/api.mjs +150 -0
  302. package/_mjs/MVar/api.mjs.map +1 -0
  303. package/_mjs/MVar/definition.mjs +18 -0
  304. package/_mjs/MVar/definition.mjs.map +1 -0
  305. package/_mjs/MVar.mjs +4 -0
  306. package/_mjs/MVar.mjs.map +1 -0
  307. package/_mjs/Push/api.mjs +39 -36
  308. package/_mjs/Push/api.mjs.map +1 -1
  309. package/_mjs/Push/definition.mjs +5 -0
  310. package/_mjs/Push/definition.mjs.map +1 -1
  311. package/_mjs/Push/internal.mjs +4 -2
  312. package/_mjs/Push/internal.mjs.map +1 -1
  313. package/_mjs/Queue/api/dimapIO.mjs +11 -11
  314. package/_mjs/Queue/api/dimapIO.mjs.map +1 -1
  315. package/_mjs/Queue/api/filterInputIO.mjs +5 -5
  316. package/_mjs/Queue/api/filterInputIO.mjs.map +1 -1
  317. package/_mjs/Queue/api/filterOutputIO.mjs +8 -8
  318. package/_mjs/Queue/api/filterOutputIO.mjs.map +1 -1
  319. package/_mjs/Queue/definition.mjs +1 -0
  320. package/_mjs/Queue/definition.mjs.map +1 -1
  321. package/_mjs/Queue/internal.mjs +2 -2
  322. package/_mjs/Queue/internal.mjs.map +1 -1
  323. package/_mjs/Queue/strategy.mjs +2 -2
  324. package/_mjs/Queue/strategy.mjs.map +1 -1
  325. package/_mjs/Ref/Derived.mjs +6 -3
  326. package/_mjs/Ref/Derived.mjs.map +1 -1
  327. package/_mjs/Ref/Synchronized/constructors.mjs +15 -7
  328. package/_mjs/Ref/Synchronized/constructors.mjs.map +1 -1
  329. package/_mjs/Ref/Synchronized/definition.mjs +13 -10
  330. package/_mjs/Ref/Synchronized/definition.mjs.map +1 -1
  331. package/_mjs/Ref/definition.mjs +1 -1
  332. package/_mjs/Ref/definition.mjs.map +1 -1
  333. package/_mjs/Ref.mjs +0 -1
  334. package/_mjs/Ref.mjs.map +1 -1
  335. package/_mjs/RefSubject/Synchronized/api.mjs +1 -1
  336. package/_mjs/RefSubject/definition.mjs +10 -3
  337. package/_mjs/RefSubject/definition.mjs.map +1 -1
  338. package/_mjs/Reloadable/definition.mjs +2 -1
  339. package/_mjs/Reloadable/definition.mjs.map +1 -1
  340. package/_mjs/STM/api/atomically.mjs +47 -0
  341. package/_mjs/STM/api/atomically.mjs.map +1 -0
  342. package/_mjs/STM/api.mjs +61 -88
  343. package/_mjs/STM/api.mjs.map +1 -1
  344. package/_mjs/STM/definition.mjs +27 -17
  345. package/_mjs/STM/definition.mjs.map +1 -1
  346. package/_mjs/STM/driver.mjs +3 -3
  347. package/_mjs/STM/driver.mjs.map +1 -1
  348. package/_mjs/STM/internal/Entry.mjs +5 -2
  349. package/_mjs/STM/internal/Entry.mjs.map +1 -1
  350. package/_mjs/STM/internal/TryCommit.mjs +6 -2
  351. package/_mjs/STM/internal/TryCommit.mjs.map +1 -1
  352. package/_mjs/STM/internal/Versioned.mjs +3 -1
  353. package/_mjs/STM/internal/Versioned.mjs.map +1 -1
  354. package/_mjs/STM.mjs +1 -0
  355. package/_mjs/STM.mjs.map +1 -1
  356. package/_mjs/Schedule/definition.mjs +1 -0
  357. package/_mjs/Schedule/definition.mjs.map +1 -1
  358. package/_mjs/Scope/api.mjs +1 -2
  359. package/_mjs/Scope/api.mjs.map +1 -1
  360. package/_mjs/Scope/definition.mjs +4 -2
  361. package/_mjs/Scope/definition.mjs.map +1 -1
  362. package/_mjs/ScopedRef/api.mjs +2 -2
  363. package/_mjs/ScopedRef/api.mjs.map +1 -1
  364. package/_mjs/ScopedRef/definition.mjs +3 -1
  365. package/_mjs/ScopedRef/definition.mjs.map +1 -1
  366. package/_mjs/State/api.mjs +1 -1
  367. package/_mjs/State/api.mjs.map +1 -1
  368. package/_mjs/State/definition.mjs +4 -1
  369. package/_mjs/State/definition.mjs.map +1 -1
  370. package/_mjs/State/internal.mjs +5 -2
  371. package/_mjs/State/internal.mjs.map +1 -1
  372. package/_mjs/Stream/api.mjs +1 -1
  373. package/_mjs/Stream/definition.mjs +2 -1
  374. package/_mjs/Stream/definition.mjs.map +1 -1
  375. package/_mjs/Stream/internal/Handoff.mjs +40 -32
  376. package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
  377. package/_mjs/Stream/internal/SinkEndReason.mjs +6 -2
  378. package/_mjs/Stream/internal/SinkEndReason.mjs.map +1 -1
  379. package/_mjs/Subject/Atomic.mjs +4 -2
  380. package/_mjs/Subject/Atomic.mjs.map +1 -1
  381. package/_mjs/SubscriptionRef.mjs +1 -1
  382. package/_mjs/SupervisorPatch.mjs +3 -1
  383. package/_mjs/SupervisorPatch.mjs.map +1 -1
  384. package/_mjs/TExit/definition.mjs +25 -24
  385. package/_mjs/TExit/definition.mjs.map +1 -1
  386. package/_mjs/TFuture/constructors.mjs +1 -1
  387. package/_mjs/TReentrantLock/api.mjs +10 -9
  388. package/_mjs/TReentrantLock/api.mjs.map +1 -1
  389. package/_mjs/TRef/constructors.mjs +1 -1
  390. package/_mjs/TRef/definition.mjs +19 -20
  391. package/_mjs/TRef/definition.mjs.map +1 -1
  392. package/_mjs/TRef.mjs +0 -1
  393. package/_mjs/TRef.mjs.map +1 -1
  394. package/_mjs/TSemaphore/api.mjs +2 -2
  395. package/_mjs/TSemaphore/api.mjs.map +1 -1
  396. package/_mjs/TSemaphore/constructors.mjs +1 -1
  397. package/_mjs/internal/IsFatal.mjs +3 -1
  398. package/_mjs/internal/IsFatal.mjs.map +1 -1
  399. package/_src/Cached/definition.ts +6 -4
  400. package/_src/Cached/internal.ts +4 -4
  401. package/_src/Channel/api.ts +14 -15
  402. package/_src/Channel/definition.ts +37 -14
  403. package/_src/Channel/internal/ChannelExecutor.ts +14 -3
  404. package/_src/Channel/internal/MergeDecision.ts +11 -6
  405. package/_src/CountdownLatch.ts +1 -1
  406. package/_src/Differ/definition.ts +2 -4
  407. package/_src/Fiber/FiberRuntime.ts +54 -50
  408. package/_src/Fiber/definition.ts +15 -8
  409. package/_src/FiberRef/definition.ts +9 -4
  410. package/_src/FiberRefs/api.ts +1 -1
  411. package/_src/FiberRefs/definition.ts +1 -1
  412. package/_src/Future/api.ts +14 -5
  413. package/_src/Hub/api.ts +9 -7
  414. package/_src/Hub/definition.ts +30 -15
  415. package/_src/IO/api/descriptor.ts +14 -0
  416. package/_src/IO/api/interrupt.ts +72 -55
  417. package/_src/IO/api/onTermination.ts +8 -7
  418. package/_src/IO/api/sequenceT.ts +4 -6
  419. package/_src/IO/api.ts +8 -1
  420. package/_src/IO/definition.ts +36 -27
  421. package/_src/IO.ts +1 -1
  422. package/_src/Layer/MemoMap.ts +1 -1
  423. package/_src/Layer/api.ts +2 -2
  424. package/_src/Layer/definition.ts +18 -13
  425. package/_src/Logger/definition.ts +9 -4
  426. package/_src/MVar/api.ts +185 -0
  427. package/_src/MVar/definition.ts +45 -0
  428. package/_src/MVar.ts +4 -0
  429. package/_src/Push/api.ts +7 -4
  430. package/_src/Push/definition.ts +12 -3
  431. package/_src/Push/internal.ts +2 -2
  432. package/_src/Queue/api/dimapIO.ts +24 -13
  433. package/_src/Queue/api/filterInputIO.ts +9 -7
  434. package/_src/Queue/api/filterOutputIO.ts +9 -7
  435. package/_src/Queue/definition.ts +27 -18
  436. package/_src/Ref/Derived.ts +4 -1
  437. package/_src/Ref/Synchronized/constructors.ts +9 -0
  438. package/_src/Ref/Synchronized/definition.ts +5 -2
  439. package/_src/Ref/definition.ts +36 -25
  440. package/_src/Ref.ts +0 -1
  441. package/_src/RefSubject/definition.ts +19 -12
  442. package/_src/Reloadable/definition.ts +6 -1
  443. package/_src/STM/api/atomically.ts +43 -0
  444. package/_src/STM/api.ts +20 -38
  445. package/_src/STM/definition.ts +33 -20
  446. package/_src/STM/driver.ts +3 -3
  447. package/_src/STM/internal/Entry.ts +2 -2
  448. package/_src/STM/internal/TryCommit.ts +4 -4
  449. package/_src/STM/internal/Versioned.ts +1 -1
  450. package/_src/STM.ts +1 -0
  451. package/_src/Schedule/definition.ts +8 -3
  452. package/_src/Scope/definition.ts +2 -2
  453. package/_src/ScopedRef/definition.ts +1 -1
  454. package/_src/State/api.ts +1 -1
  455. package/_src/State/definition.ts +6 -3
  456. package/_src/State/internal.ts +8 -3
  457. package/_src/Stream/definition.ts +17 -5
  458. package/_src/Stream/internal/Handoff.ts +31 -24
  459. package/_src/Stream/internal/SinkEndReason.ts +2 -2
  460. package/_src/Subject/Atomic.ts +8 -4
  461. package/_src/SupervisorPatch.ts +1 -1
  462. package/_src/TExit/definition.ts +11 -12
  463. package/_src/TRef/definition.ts +18 -14
  464. package/_src/TRef.ts +0 -1
  465. package/_src/global.ts +4 -0
  466. package/_src/internal/IsFatal.ts +1 -1
  467. package/global.d.ts +4 -0
  468. package/internal/IsFatal.d.ts +1 -1
  469. package/package.json +2 -2
  470. package/IO/api/onExit.d.ts +0 -7
  471. package/Ref/symbols.d.ts +0 -30
  472. package/TRef/symbols.d.ts +0 -20
  473. package/_cjs/IO/api/onExit.cjs.map +0 -1
  474. package/_cjs/Ref/symbols.cjs +0 -37
  475. package/_cjs/Ref/symbols.cjs.map +0 -1
  476. package/_cjs/TRef/symbols.cjs +0 -27
  477. package/_cjs/TRef/symbols.cjs.map +0 -1
  478. package/_mjs/IO/api/onExit.mjs +0 -11
  479. package/_mjs/IO/api/onExit.mjs.map +0 -1
  480. package/_mjs/Ref/symbols.mjs +0 -25
  481. package/_mjs/Ref/symbols.mjs.map +0 -1
  482. package/_mjs/TRef/symbols.mjs +0 -17
  483. package/_mjs/TRef/symbols.mjs.map +0 -1
  484. package/_src/IO/api/onExit.ts +0 -11
  485. package/_src/Ref/symbols.ts +0 -29
  486. package/_src/TRef/symbols.ts +0 -19
@@ -1,5 +1,5 @@
1
1
  import type { CachedInternal } from "@fncts/io/Cached/internal";
2
- import { CachedTypeId } from "@fncts/io/Cached/internal";
2
+ import { CachedTypeId, CachedVariance } from "@fncts/io/Cached/internal";
3
3
  /**
4
4
  * A Cached is a possibly resourceful value that is loaded into memory, and
5
5
  * which can be refreshed either manually or automatically
@@ -8,9 +8,11 @@ import { CachedTypeId } from "@fncts/io/Cached/internal";
8
8
  * @tsplus companion fncts.io.CachedOps
9
9
  */
10
10
  export declare class Cached<Error, Resource> {
11
- readonly _E: () => Error;
12
- readonly _A: () => Resource;
13
- readonly _typeId: CachedTypeId;
11
+ readonly [CachedTypeId]: CachedTypeId;
12
+ [CachedVariance]: {
13
+ readonly _E: (_: never) => Error;
14
+ readonly _A: (_: never) => Resource;
15
+ };
14
16
  }
15
17
  /**
16
18
  * @tsplus macro remove
@@ -1,10 +1,10 @@
1
+ import { Cached } from "@fncts/io/Cached/definition";
1
2
  import { FIO } from "@fncts/io/IO/definition";
3
+ export declare const CachedVariance: unique symbol;
4
+ export type CachedVariance = typeof CachedVariance;
2
5
  export declare const CachedTypeId: unique symbol;
3
6
  export type CachedTypeId = typeof CachedTypeId;
4
- export declare abstract class CachedInternal<Error, Resource> {
5
- readonly _E: () => Error;
6
- readonly _A: () => Resource;
7
- readonly _typeId: CachedTypeId;
7
+ export declare abstract class CachedInternal<Error, Resource> extends Cached<Error, Resource> {
8
8
  abstract get: FIO<Error, Resource>;
9
9
  abstract refresh: FIO<Error, void>;
10
10
  }
package/Channel/api.d.ts CHANGED
@@ -49,16 +49,16 @@ export declare function acquireReleaseWith<Env, InErr, InElem, InDone, OutErr, O
49
49
  export declare function acquireReleaseExitWith<Env, InErr, InElem, InDone, OutErr, OutElem1, OutDone, Acquired>(acquire: IO<Env, OutErr, Acquired>, use: (a: Acquired) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem1, OutDone>, release: (a: Acquired, exit: Exit<OutErr, OutDone>) => URIO<Env, any>): Channel<Env, InErr, InElem, InDone, OutErr, OutElem1, OutDone>;
50
50
  /**
51
51
  * Construct a resource Channel with Acquire / Release
52
- * @tsplus static fncts.io.ChannelOps acquireReleaseOut
52
+ * @tsplus static fncts.io.ChannelOps acquireReleaseOutWith
53
53
  * @tsplus location "@fncts/io/Channel/api"
54
54
  */
55
- export declare function acquireReleaseOut<Env, OutErr, Acquired, Z>(acquire: IO<Env, OutErr, Acquired>, release: (a: Acquired) => URIO<Env, Z>): Channel<Env, unknown, unknown, unknown, OutErr, Acquired, void>;
55
+ export declare function acquireReleaseOutWith<Env, OutErr, Acquired, Z>(acquire: IO<Env, OutErr, Acquired>, release: (a: Acquired) => URIO<Env, Z>): Channel<Env, unknown, unknown, unknown, OutErr, Acquired, void>;
56
56
  /**
57
57
  * Construct a resource Channel with Acquire / Release
58
- * @tsplus static fncts.io.ChannelOps acquireReleaseOutExit
58
+ * @tsplus static fncts.io.ChannelOps acquireReleaseOutExitWith
59
59
  * @tsplus location "@fncts/io/Channel/api"
60
60
  */
61
- export declare function acquireReleaseOutExit<R, R2, E, Z>(self: IO<R, E, Z>, release: (z: Z, e: Exit<unknown, unknown>) => URIO<R2, unknown>): Channel<R | R2, unknown, unknown, unknown, E, Z, void>;
61
+ export declare function acquireReleaseOutExitWith<R, R2, E, Z>(self: IO<R, E, Z>, release: (z: Z, e: Exit<unknown, unknown>) => URIO<R2, unknown>): Channel<R | R2, unknown, unknown, unknown, E, Z, void>;
62
62
  /**
63
63
  * Creates a channel backed by a buffer. When the buffer is empty, the channel will simply
64
64
  * passthrough its input as output. However, when the buffer is non-empty, the value inside
@@ -23,18 +23,25 @@ export declare const enum ChannelTag {
23
23
  BracketOut = "BracketOut",
24
24
  Provide = "Provide"
25
25
  }
26
+ export declare const ChannelVariance: unique symbol;
27
+ export type ChannelVariance = typeof ChannelVariance;
28
+ export declare const ChannelTypeId: unique symbol;
29
+ export type ChannelTypeId = typeof ChannelTypeId;
26
30
  /**
27
31
  * @tsplus type fncts.io.Channel
28
32
  * @tsplus companion fncts.io.ChannelOps
29
33
  */
30
34
  export declare abstract class Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> {
31
- _Env: () => Env;
32
- _InErr: (_: InErr) => void;
33
- _InElem: (_: InElem) => void;
34
- _InDone: (_: InDone) => void;
35
- _OutErr: () => OutErr;
36
- _OutElem: () => OutElem;
37
- _OutDone: () => OutDone;
35
+ readonly [ChannelTypeId]: ChannelTypeId;
36
+ [ChannelVariance]: {
37
+ _Env: () => Env;
38
+ _InErr: (_: InErr) => void;
39
+ _InElem: (_: InElem) => void;
40
+ _InDone: (_: InDone) => void;
41
+ _OutErr: () => OutErr;
42
+ _OutElem: () => OutElem;
43
+ _OutDone: () => OutDone;
44
+ };
38
45
  }
39
46
  /**
40
47
  * @tsplus unify fncts.io.Channel
@@ -43,43 +50,57 @@ export declare function unifyChannel<X extends Channel<any, any, any, any, any,
43
50
  X
44
51
  ] extends [
45
52
  {
46
- _Env: () => infer Env;
53
+ [ChannelVariance]: {
54
+ _Env: () => infer Env;
55
+ };
47
56
  }
48
57
  ] ? Env : never, [
49
58
  X
50
59
  ] extends [
51
60
  {
52
- _InErr: (_: infer InErr) => void;
61
+ [ChannelVariance]: {
62
+ _InErr: (_: infer InErr) => void;
63
+ };
53
64
  }
54
65
  ] ? InErr : never, [
55
66
  X
56
67
  ] extends [
57
68
  {
58
- _InElem: (_: infer InElem) => void;
69
+ [ChannelVariance]: {
70
+ _InElem: (_: infer InElem) => void;
71
+ };
59
72
  }
60
73
  ] ? InElem : never, [
61
74
  X
62
75
  ] extends [
63
76
  {
64
- _InDone: (_: infer InDone) => void;
77
+ [ChannelVariance]: {
78
+ _InDone: (_: infer InDone) => void;
79
+ };
65
80
  }
66
81
  ] ? InDone : never, [
67
82
  X
68
83
  ] extends [
69
84
  {
70
- _OutErr: () => infer OutErr;
85
+ [ChannelVariance]: {
86
+ _OutErr: () => infer OutErr;
87
+ };
71
88
  }
72
89
  ] ? OutErr : never, [
73
90
  X
74
91
  ] extends [
75
92
  {
76
- _OutElem: () => infer OutElem;
93
+ [ChannelVariance]: {
94
+ _OutElem: () => infer OutElem;
95
+ };
77
96
  }
78
97
  ] ? OutElem : never, [
79
98
  X
80
99
  ] extends [
81
100
  {
82
- _OutDone: () => infer OutDone;
101
+ [ChannelVariance]: {
102
+ _OutDone: () => infer OutDone;
103
+ };
83
104
  }
84
105
  ] ? OutDone : never>;
85
106
  export declare abstract class Continuation<Env, InErr, InElem, InDone, OutErr, OutErr2, OutElem, OutDone, OutDone2> {
@@ -47,6 +47,7 @@ export declare class ChannelExecutor<Env, InErr, InElem, InDone, OutErr, OutElem
47
47
  private doneSucceed;
48
48
  private doneHalt;
49
49
  private addFinalizer;
50
+ private provide;
50
51
  private runBracketOut;
51
52
  private runEnsuring;
52
53
  }
@@ -4,6 +4,8 @@ export declare const enum MergeDecisionTag {
4
4
  Done = "Done",
5
5
  Await = "Await"
6
6
  }
7
+ export declare const MergeDecisionVariance: unique symbol;
8
+ export type MergeDecisionVariance = typeof MergeDecisionVariance;
7
9
  export declare const MergeDecisionTypeId: unique symbol;
8
10
  export type MergeDecisionTypeId = typeof MergeDecisionTypeId;
9
11
  /**
@@ -11,12 +13,14 @@ export type MergeDecisionTypeId = typeof MergeDecisionTypeId;
11
13
  * @tsplus companion fncts.io.Channel.MergeDecisionOps
12
14
  */
13
15
  export declare abstract class MergeDecision<R, E0, Z0, E, Z> {
14
- readonly _typeId: MergeDecisionTypeId;
15
- readonly _R: () => R;
16
- readonly _E0: (_: E0) => void;
17
- readonly _Z0: (_: Z0) => void;
18
- readonly _E: () => E;
19
- readonly _Z: () => Z;
16
+ readonly [MergeDecisionTypeId]: MergeDecisionTypeId;
17
+ [MergeDecisionVariance]: {
18
+ readonly _R: (_: never) => R;
19
+ readonly _E0: (_: E0) => void;
20
+ readonly _Z0: (_: Z0) => void;
21
+ readonly _E: (_: never) => E;
22
+ readonly _Z: (_: never) => Z;
23
+ };
20
24
  }
21
25
  /**
22
26
  * @tsplus unify fncts.io.Channel.MergeDecision
@@ -10,7 +10,7 @@ export type CountdownLatchTypeId = typeof CountdownLatchTypeId;
10
10
  export declare class CountdownLatch {
11
11
  private _count;
12
12
  private _waiters;
13
- readonly _typeId: CountdownLatchTypeId;
13
+ readonly [CountdownLatchTypeId]: CountdownLatchTypeId;
14
14
  constructor(_count: Ref<number>, _waiters: Future<never, void>);
15
15
  readonly await: UIO<void>;
16
16
  readonly countDown: UIO<void>;
@@ -4,10 +4,8 @@ export type DifferTypeId = typeof DifferTypeId;
4
4
  * @tsplus type fncts.io.Differ
5
5
  * @tsplus companion fncts.io.DifferOps
6
6
  */
7
- export declare abstract class Differ<Value, Patch> {
8
- readonly _typeId: DifferTypeId;
9
- _Value: Value;
10
- _Patch: Patch;
7
+ export declare abstract class Differ<in out Value, in out Patch> {
8
+ readonly [DifferTypeId]: DifferTypeId;
11
9
  abstract readonly empty: Patch;
12
10
  abstract combine(first: Patch, second: Patch): Patch;
13
11
  abstract diff(oldValue: Value, newValue: Value): Patch;
@@ -20,22 +20,19 @@ import type { FiberStatus } from "../FiberStatus.js";
20
20
  import type { OnFailure, OnSuccess, OnSuccessAndFailure, UIO } from "../IO/definition.js";
21
21
  import type { RuntimeFlags } from "../RuntimeFlags.js";
22
22
  import { Trace } from "@fncts/base/data/Trace";
23
- import { FiberTypeId } from "@fncts/io/Fiber/definition";
23
+ import { FiberTypeId, FiberVariance } from "@fncts/io/Fiber/definition";
24
24
  import { WhileLoop } from "../IO/definition.js";
25
+ import { IOOpCode } from "../IO/definition.js";
25
26
  import { FiberMessage } from "./FiberMessage.js";
26
- declare const enum ContinuationTag {
27
- RevertFlags = "RevertFlags",
28
- UpdateTrace = "UpdateTrace"
29
- }
30
27
  export declare class RevertFlags {
31
28
  readonly patch: RuntimeFlags.Patch;
32
29
  readonly trace?: string | undefined;
33
- readonly _tag = ContinuationTag.RevertFlags;
30
+ readonly ioOpCode = IOOpCode.RevertFlags;
34
31
  constructor(patch: RuntimeFlags.Patch, trace?: string | undefined);
35
32
  }
36
33
  export declare class UpdateTrace {
37
34
  readonly trace?: string | undefined;
38
- readonly _tag = ContinuationTag.UpdateTrace;
35
+ readonly ioOpCode = IOOpCode.UpdateTrace;
39
36
  constructor(trace?: string | undefined);
40
37
  }
41
38
  export type Continuation = OnSuccess<any, any, any, any, any, any> | OnSuccessAndFailure<any, any, any, any, any, any, any, any, any> | OnFailure<any, any, any, any, any, any> | WhileLoop<any, any, any> | UpdateTrace | RevertFlags;
@@ -45,9 +42,11 @@ export type Continuation = OnSuccess<any, any, any, any, any, any> | OnSuccessAn
45
42
  export declare class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
46
43
  readonly fiberId: FiberId.Runtime;
47
44
  readonly runtimeFlags0: RuntimeFlags;
48
- readonly _E: () => E;
49
- readonly _A: () => A;
50
- readonly _typeId: FiberTypeId;
45
+ readonly [FiberTypeId]: FiberTypeId;
46
+ [FiberVariance]: {
47
+ readonly _E: (_: never) => E;
48
+ readonly _A: (_: never) => A;
49
+ };
51
50
  readonly _tag = "RuntimeFiber";
52
51
  constructor(fiberId: FiberId.Runtime, fiberRefs0: FiberRefs, runtimeFlags0: RuntimeFlags);
53
52
  private _fiberRefs;
@@ -113,4 +112,3 @@ export declare class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
113
112
  getNextFailCont(): OnSuccessAndFailure<any, any, any, any, any, any, any, any, any> | OnFailure<any, any, any, any, any, any> | RevertFlags | UpdateTrace | undefined;
114
113
  isFatal(t: unknown): boolean;
115
114
  }
116
- export {};
@@ -7,15 +7,19 @@ import type { FiberRuntime } from "@fncts/io/Fiber/FiberRuntime";
7
7
  import type { FiberStatus } from "@fncts/io/FiberStatus";
8
8
  import type { UIO } from "@fncts/io/IO/definition";
9
9
  import { IterableWeakSet } from "@fncts/base/collection/weak/IterableWeakSet";
10
+ export declare const FiberVariance: unique symbol;
11
+ export type FiberVariance = typeof FiberVariance;
10
12
  export declare const FiberTypeId: unique symbol;
11
13
  export type FiberTypeId = typeof FiberTypeId;
12
14
  /**
13
15
  * @tsplus type fncts.io.Fiber
14
16
  */
15
17
  export interface Fiber<E, A> {
16
- readonly _typeId: FiberTypeId;
17
- readonly _E: () => E;
18
- readonly _A: () => A;
18
+ readonly [FiberTypeId]: FiberTypeId;
19
+ readonly [FiberVariance]: {
20
+ readonly _E: (_: never) => E;
21
+ readonly _A: (_: never) => A;
22
+ };
19
23
  }
20
24
  /**
21
25
  * @tsplus type fncts.io.FiberOps
@@ -80,9 +84,11 @@ export declare class SyntheticFiber<E, A> implements FiberCommon<E, A> {
80
84
  readonly poll: UIO<Maybe<Exit<E, A>>>;
81
85
  readonly interruptAsFork: (fiberId: FiberId) => UIO<void>;
82
86
  readonly _tag = "SyntheticFiber";
83
- readonly _typeId: FiberTypeId;
84
- readonly _E: () => E;
85
- readonly _A: () => A;
87
+ readonly [FiberTypeId]: FiberTypeId;
88
+ [FiberVariance]: {
89
+ readonly _E: (_: never) => E;
90
+ readonly _A: (_: never) => A;
91
+ };
86
92
  readonly await: UIO<import("@fncts/base/data/Exit").Exit<E, A>>;
87
93
  constructor(id: FiberId, wait: UIO<Exit<E, A>>, children: UIO<Conc<Fiber.Runtime<any, any>>>, inheritAll: UIO<void>, poll: UIO<Maybe<Exit<E, A>>>, interruptAsFork: (fiberId: FiberId) => UIO<void>);
88
94
  }
@@ -1,5 +1,7 @@
1
1
  import { Hashable } from "@fncts/base/data/Hashable";
2
2
  import { Equatable } from "@fncts/base/data/Equatable";
3
+ export declare const FiberRefVariance: unique symbol;
4
+ export type FiberRefVariance = typeof FiberRefVariance;
3
5
  export declare const FiberRefTypeId: unique symbol;
4
6
  export type FiberRefTypeId = typeof FiberRefTypeId;
5
7
  /**
@@ -7,8 +9,10 @@ export type FiberRefTypeId = typeof FiberRefTypeId;
7
9
  * @tsplus companion fncts.io.FiberRefOps
8
10
  */
9
11
  export declare abstract class FiberRef<Value> {
10
- readonly _typeId: FiberRefTypeId;
11
- readonly _A: () => Value;
12
+ readonly [FiberRefTypeId]: FiberRefTypeId;
13
+ [FiberRefVariance]: {
14
+ readonly _Value: (_: Value) => Value;
15
+ };
12
16
  readonly _Patch: unknown;
13
17
  }
14
18
  export declare namespace FiberRef {
@@ -46,4 +46,4 @@ export declare function remove(self: FiberRefs, fiberRef: FiberRef<any>): FiberR
46
46
  * @tsplus macro identity
47
47
  * @tsplus location "@fncts/io/FiberRefs/api"
48
48
  */
49
- export declare function unFiberRefs(self: FiberRefs): HashMap<FiberRef<unknown>, Cons<readonly [FiberId.Runtime, unknown]>>;
49
+ export declare function unFiberRefs(self: FiberRefs): HashMap<FiberRef<any>, Cons<readonly [FiberId.Runtime, unknown]>>;
@@ -12,7 +12,7 @@ export interface FiberRefsN extends HKT {
12
12
  */
13
13
  export interface FiberRefs extends Newtype<{
14
14
  readonly FiberRefs: unique symbol;
15
- }, HashMap<FiberRef<unknown>, Cons<readonly [FiberId.Runtime, unknown]>>> {
15
+ }, HashMap<FiberRef<any>, Cons<readonly [FiberId.Runtime, unknown]>>> {
16
16
  }
17
17
  /**
18
18
  * @tsplus type fncts.io.FiberRefsOps
@@ -2,7 +2,9 @@ import { UIO } from "@fncts/io/IO/definition";
2
2
  import { Scope } from "@fncts/io/Scope/definition";
3
3
  import type { IO } from "@fncts/io/IO";
4
4
  import type { PDequeue, PEnqueue, PEnqueueInternal } from "@fncts/io/Queue";
5
- import { EnqueueTypeId, QueueTypeId } from "@fncts/io/Queue";
5
+ import { EnqueueTypeId, QueueTypeId, QueueVariance } from "@fncts/io/Queue/definition";
6
+ export declare const HubVariance: unique symbol;
7
+ export type HubVariance = typeof HubVariance;
6
8
  export declare const HubTypeId: unique symbol;
7
9
  export type HubTypeId = typeof HubTypeId;
8
10
  /**
@@ -16,13 +18,15 @@ export type HubTypeId = typeof HubTypeId;
16
18
  * @tsplus type fncts.io.Hub
17
19
  */
18
20
  export interface PHub<RA, RB, EA, EB, A, B> extends PEnqueue<RA, RB, EA, EB, A, B> {
19
- readonly _typeId: HubTypeId;
20
- readonly _RA: () => RA;
21
- readonly _RB: () => RB;
22
- readonly _EA: () => EA;
23
- readonly _EB: () => EB;
24
- readonly _A: (_: A) => void;
25
- readonly _B: () => B;
21
+ readonly [HubTypeId]: HubTypeId;
22
+ readonly [HubVariance]: {
23
+ readonly _RA: (_: never) => RA;
24
+ readonly _RB: (_: never) => RB;
25
+ readonly _EA: (_: never) => EA;
26
+ readonly _EB: (_: never) => EB;
27
+ readonly _A: (_: A) => void;
28
+ readonly _B: (_: never) => B;
29
+ };
26
30
  }
27
31
  /**
28
32
  * @tsplus type fncts.io.Hub
@@ -40,13 +44,23 @@ export declare namespace Hub { }
40
44
  export declare abstract class PHubInternal<RA, RB, EA, EB, A, B> implements PHub<RA, RB, EA, EB, A, B>, PEnqueueInternal<RA, RB, EA, EB, A, B> {
41
45
  readonly [QueueTypeId]: QueueTypeId;
42
46
  readonly [EnqueueTypeId]: EnqueueTypeId;
43
- _typeId: HubTypeId;
44
- readonly _RA: () => RA;
45
- readonly _RB: () => RB;
46
- readonly _EA: () => EA;
47
- readonly _EB: () => EB;
48
- readonly _A: (_: A) => void;
49
- readonly _B: () => B;
47
+ readonly [HubTypeId]: HubTypeId;
48
+ [HubVariance]: {
49
+ readonly _RA: (_: never) => RA;
50
+ readonly _RB: (_: never) => RB;
51
+ readonly _EA: (_: never) => EA;
52
+ readonly _EB: (_: never) => EB;
53
+ readonly _A: (_: A) => void;
54
+ readonly _B: (_: never) => B;
55
+ };
56
+ [QueueVariance]: {
57
+ readonly _RA: (_: never) => RA;
58
+ readonly _RB: (_: never) => RB;
59
+ readonly _EA: (_: never) => EA;
60
+ readonly _EB: (_: never) => EB;
61
+ readonly _A: (_: A) => void;
62
+ readonly _B: (_: never) => B;
63
+ };
50
64
  /**
51
65
  * Waits for the hub to be shut down.
52
66
  */
@@ -0,0 +1,12 @@
1
+ import { FiberDescriptor } from "@fncts/io/FiberDescriptor";
2
+ import { IO, UIO } from "@fncts/io/IO/definition";
3
+ /**
4
+ * @tsplus static fncts.io.IOOps descriptorWith
5
+ * @tsplus location "@fncts/io/IO/api/descriptor"
6
+ */
7
+ export declare function descriptorWith<R, E, A>(f: (descriptor: FiberDescriptor) => IO<R, E, A>): IO<R, E, A>;
8
+ /**
9
+ * @tsplus static fncts.io.IOOps descriptor
10
+ * @tsplus location "@fncts/io/IO/api/descriptor"
11
+ */
12
+ export declare const descriptor: UIO<FiberDescriptor>;
@@ -1,8 +1,12 @@
1
+ import { IO, FIO } from "@fncts/io/IO/definition";
1
2
  import { FiberId } from "@fncts/base/data/FiberId/definition";
2
- import { FIO, IO } from "@fncts/io/IO/definition";
3
- import { HashSet } from "@fncts/base/collection/immutable/HashSet/definition";
4
3
  import { Lazy } from "@fncts/base/data/function/definition";
5
- import { InterruptStatus } from "@fncts/io/InterruptStatus";
4
+ import { HashSet } from "@fncts/base/collection/immutable/HashSet/definition";
5
+ import { Exit } from "@fncts/base/data/Exit/definition";
6
+ export interface InterruptibilityRestorer {
7
+ readonly restore: <R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string) => IO<R, E, A>;
8
+ readonly force: <R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string) => IO<R, E, A>;
9
+ }
6
10
  /**
7
11
  * Returns an effect that is interrupted as if by the specified fiber.
8
12
  * @tsplus static fncts.io.IOOps interruptAs
@@ -50,7 +54,7 @@ export declare function uninterruptible<R, E, A>(self: IO<R, E, A>, __tsplusTrac
50
54
  * @tsplus static fncts.io.IOOps uninterruptibleMask
51
55
  * @tsplus location "@fncts/io/IO/api/interrupt"
52
56
  */
53
- export declare function uninterruptibleMask<R, E, A>(f: (restore: InterruptStatusRestore) => IO<R, E, A>): IO<R, E, A>;
57
+ export declare function uninterruptibleMask<R, E, A>(f: (restore: InterruptibilityRestorer) => IO<R, E, A>): IO<R, E, A>;
54
58
  /**
55
59
  * @tsplus pipeable fncts.io.IO ensuring
56
60
  * @tsplus location "@fncts/io/IO/api/interrupt"
@@ -63,21 +67,26 @@ export declare function ensuring<R1>(finalizer: IO<R1, never, any>, __tsplusTrac
63
67
  * @tsplus static fncts.io.IOOps interruptibleMask
64
68
  * @tsplus location "@fncts/io/IO/api/interrupt"
65
69
  */
66
- export declare function interruptibleMask<R, E, A>(k: (restore: InterruptStatusRestore) => IO<R, E, A>, __tsplusTrace?: string): IO<R, E, A>;
70
+ export declare function interruptibleMask<R, E, A>(k: (restore: InterruptibilityRestorer) => IO<R, E, A>, __tsplusTrace?: string): IO<R, E, A>;
67
71
  /**
68
72
  * Calls the specified function, and runs the effect it returns, if this
69
73
  * effect is interrupted.
70
- * @tsplus fluent fncts.io.IO onInterrupt
74
+ * @tsplus pipeable fncts.io.IO onInterrupt
71
75
  * @tsplus location "@fncts/io/IO/api/interrupt"
72
76
  */
73
- export declare function onInterrupt_<R, E, A, R1>(ma: IO<R, E, A>, cleanup: (interruptors: HashSet<FiberId>) => IO<R1, never, any>, __tsplusTrace?: string): IO<R | R1, E, A>;
77
+ export declare function onInterrupt<R1, E1>(cleanup: Lazy<IO<R1, E1, any>>, __tsplusTrace?: string): <R, E, A>(ma: import("@fncts/io/IO/definition").IO<R, E, A>) => import("@fncts/io/IO/definition").IO<R1 | R, E1 | E, A>;
74
78
  /**
75
79
  * Calls the specified function, and runs the effect it returns, if this
76
- * effect is interrupted (allows for expanding error).
77
- * @tsplus fluent fncts.io.IO onInterruptExtended
80
+ * effect is interrupted.
81
+ * @tsplus pipeable fncts.io.IO onInterrupt
82
+ * @tsplus location "@fncts/io/IO/api/interrupt"
83
+ */
84
+ export declare function onInterruptWith<R1, E1>(cleanup: (interruptors: HashSet<FiberId>) => IO<R1, E1, any>, __tsplusTrace?: string): <R, E, A>(ma: import("@fncts/io/IO/definition").IO<R, E, A>) => import("@fncts/io/IO/definition").IO<R1 | R, E1 | E, A>;
85
+ /**
86
+ * @tsplus pipeable fncts.io.IO onExit
78
87
  * @tsplus location "@fncts/io/IO/api/interrupt"
79
88
  */
80
- export declare function onInterruptExtended_<R, E, A, R2, E2>(self: IO<R, E, A>, cleanup: Lazy<IO<R2, E2, any>>, __tsplusTrace?: string): IO<R | R2, E | E2, A>;
89
+ export declare function onExit<E, A, R1, E1>(cleanup: (exit: Exit<E, A>) => IO<R1, E1, any>, __tsplusTrace?: string): <R>(self: import("@fncts/io/IO/definition").IO<R, E, A>) => import("@fncts/io/IO/definition").IO<R1 | R, E | E1, A>;
81
90
  /**
82
91
  * Returns an IO whose interruption will be disconnected from the
83
92
  * fiber's own interruption, being performed in the background without
@@ -94,12 +103,3 @@ export declare function onInterruptExtended_<R, E, A, R2, E2>(self: IO<R, E, A>,
94
103
  * @tsplus location "@fncts/io/IO/api/interrupt"
95
104
  */
96
105
  export declare function disconnect<R, E, A>(self: IO<R, E, A>, __tsplusTrace?: string): IO<R, E, A>;
97
- /**
98
- * Used to restore the inherited interruptibility
99
- */
100
- export declare class InterruptStatusRestore {
101
- readonly flag: InterruptStatus;
102
- constructor(flag: InterruptStatus);
103
- restore: <R, E, A>(io: import("@fncts/io/IO/definition").IO<R, E, A>) => import("@fncts/io/IO/definition").IO<R, E, A>;
104
- force: <R, E, A>(io: import("@fncts/io/IO/definition").IO<R, E, A>) => import("@fncts/io/IO/definition").IO<R, E, A>;
105
- }
@@ -1,7 +1,6 @@
1
1
  import { Cause } from "@fncts/base/data/Cause/definition";
2
2
  import { URIO, IO } from "@fncts/io/IO/definition";
3
3
  import { Lazy } from "@fncts/base/data/function/definition";
4
- import { Exit } from "@fncts/base/data/Exit/definition";
5
4
  /**
6
5
  * @tsplus pipeable fncts.io.IO onTermination
7
6
  * @tsplus location "@fncts/io/IO/api/onTermination"
@@ -1,10 +1,26 @@
1
1
  import { ReadonlyNonEmptyArray } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/definition";
2
2
  import { IO } from "@fncts/io/IO/definition";
3
- import type { _A, _E, _R } from "@fncts/base/types";
3
+ import type { IOVariance } from "@fncts/io/IO/definition";
4
4
  /**
5
5
  * @tsplus static fncts.io.IOOps sequenceT
6
6
  * @tsplus location "@fncts/io/IO/api/sequenceT"
7
7
  */
8
- export declare function sequenceT<T extends ReadonlyNonEmptyArray<IO<any, any, any>>>(...ios: T): IO<_R<T[number]>, _E<T[number]>, {
9
- [K in keyof T]: _A<T[K]>;
8
+ export declare function sequenceT<T extends ReadonlyNonEmptyArray<IO<any, any, any>>>(...ios: T): IO<[
9
+ T[number]
10
+ ] extends [{
11
+ [IOVariance]: {
12
+ _R: () => infer R;
13
+ };
14
+ }] ? R : never, [
15
+ T[number]
16
+ ] extends [{
17
+ [IOVariance]: {
18
+ _E: () => infer E;
19
+ };
20
+ }] ? E : never, {
21
+ [K in keyof T]: T[K] extends {
22
+ [IOVariance]: {
23
+ _A: () => infer A;
24
+ };
25
+ } ? A : never;
10
26
  }>;
package/IO/api.d.ts CHANGED
@@ -264,6 +264,11 @@ export declare function failCause<E = never, A = never>(cause: Lazy<Cause<E>>, _
264
264
  * @tsplus location "@fncts/io/IO/api"
265
265
  */
266
266
  export declare const fiberId: IO<never, never, FiberId>;
267
+ /**
268
+ * @tsplus static fncts.io.IOOps fiberIdWith
269
+ * @tsplus location "@fncts/io/IO/api"
270
+ */
271
+ export declare function fiberIdWith<R, E, A>(f: (id: FiberId.Runtime) => IO<R, E, A>): IO<R, E, A>;
267
272
  /**
268
273
  * Filters the collection using the specified effectual predicate.
269
274
  * @tsplus static fncts.io.IOOps filter