@fncts/io 0.0.22 → 0.0.24

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