@fncts/io 0.0.31 → 0.0.33

Sign up to get free protection for your applications and to get access to all the features.
Files changed (342) hide show
  1. package/Channel/api/runScoped.d.ts +1 -0
  2. package/Channel/api.d.ts +1 -0
  3. package/Channel/internal/ChannelExecutor.d.ts +2 -2
  4. package/Fiber/FiberMessage.d.ts +5 -5
  5. package/Fiber/FiberRuntime.d.ts +3 -3
  6. package/IO/api/provideSomeLayer.d.ts +1 -2
  7. package/IO/api/zipConcurrent.d.ts +2 -1
  8. package/IO/api.d.ts +2 -1
  9. package/IO/definition.d.ts +34 -24
  10. package/IO/runtime.d.ts +10 -18
  11. package/STM/definition.d.ts +1 -1
  12. package/Stream/api.d.ts +113 -5
  13. package/_cjs/Channel/api/mapOutConcurrentIO.cjs +1 -1
  14. package/_cjs/Channel/api/mapOutConcurrentIO.cjs.map +1 -1
  15. package/_cjs/Channel/api/mergeAllWith.cjs +3 -3
  16. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  17. package/_cjs/Channel/api/mergeWith.cjs +4 -4
  18. package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
  19. package/_cjs/Channel/api/runScoped.cjs +19 -3
  20. package/_cjs/Channel/api/runScoped.cjs.map +1 -1
  21. package/_cjs/Channel/api/toPull.cjs +3 -3
  22. package/_cjs/Channel/api/toPull.cjs.map +1 -1
  23. package/_cjs/Channel/api.cjs +8 -7
  24. package/_cjs/Channel/api.cjs.map +1 -1
  25. package/_cjs/Channel/internal/ChannelExecutor.cjs +71 -62
  26. package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
  27. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +3 -3
  28. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
  29. package/_cjs/Clock/live.cjs +1 -1
  30. package/_cjs/Clock/live.cjs.map +1 -1
  31. package/_cjs/Fiber/FiberMessage.cjs +12 -11
  32. package/_cjs/Fiber/FiberMessage.cjs.map +1 -1
  33. package/_cjs/Fiber/FiberRuntime.cjs +102 -70
  34. package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
  35. package/_cjs/Fiber/api/collectAll.cjs +1 -1
  36. package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
  37. package/_cjs/Fiber/api/mapIO.cjs +1 -1
  38. package/_cjs/Fiber/api/mapIO.cjs.map +1 -1
  39. package/_cjs/Fiber/api/zipWith.cjs +1 -1
  40. package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
  41. package/_cjs/Fiber/constructors.cjs +5 -5
  42. package/_cjs/Fiber/constructors.cjs.map +1 -1
  43. package/_cjs/FiberRef/unsafe.cjs +3 -2
  44. package/_cjs/FiberRef/unsafe.cjs.map +1 -1
  45. package/_cjs/FiberScope/definition.cjs +2 -2
  46. package/_cjs/FiberScope/definition.cjs.map +1 -1
  47. package/_cjs/Future/api.cjs +4 -4
  48. package/_cjs/Future/api.cjs.map +1 -1
  49. package/_cjs/Hub/api.cjs.map +1 -1
  50. package/_cjs/Hub/internal.cjs +1 -1
  51. package/_cjs/Hub/internal.cjs.map +1 -1
  52. package/_cjs/IO/api/asyncIO.cjs +1 -1
  53. package/_cjs/IO/api/asyncIO.cjs.map +1 -1
  54. package/_cjs/IO/api/asyncInterrupt.cjs +2 -2
  55. package/_cjs/IO/api/asyncInterrupt.cjs.map +1 -1
  56. package/_cjs/IO/api/concurrency.cjs +3 -3
  57. package/_cjs/IO/api/concurrency.cjs.map +1 -1
  58. package/_cjs/IO/api/daemonChildren.cjs +1 -1
  59. package/_cjs/IO/api/daemonChildren.cjs.map +1 -1
  60. package/_cjs/IO/api/fork.cjs +2 -1
  61. package/_cjs/IO/api/fork.cjs.map +1 -1
  62. package/_cjs/IO/api/interrupt.cjs +2 -2
  63. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  64. package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
  65. package/_cjs/IO/api/raceWith.cjs +9 -12
  66. package/_cjs/IO/api/raceWith.cjs.map +1 -1
  67. package/_cjs/IO/api/repeat.cjs +2 -2
  68. package/_cjs/IO/api/repeat.cjs.map +1 -1
  69. package/_cjs/IO/api/stateful.cjs +3 -3
  70. package/_cjs/IO/api/stateful.cjs.map +1 -1
  71. package/_cjs/IO/api/timeout.cjs +1 -1
  72. package/_cjs/IO/api/timeout.cjs.map +1 -1
  73. package/_cjs/IO/api/transplant.cjs +1 -1
  74. package/_cjs/IO/api/transplant.cjs.map +1 -1
  75. package/_cjs/IO/api/withChildren.cjs +5 -4
  76. package/_cjs/IO/api/withChildren.cjs.map +1 -1
  77. package/_cjs/IO/api/withEarlyRelease.cjs +1 -1
  78. package/_cjs/IO/api/withEarlyRelease.cjs.map +1 -1
  79. package/_cjs/IO/api/zipConcurrent.cjs +23 -23
  80. package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
  81. package/_cjs/IO/api.cjs +33 -32
  82. package/_cjs/IO/api.cjs.map +1 -1
  83. package/_cjs/IO/definition.cjs +17 -31
  84. package/_cjs/IO/definition.cjs.map +1 -1
  85. package/_cjs/IO/runtime.cjs +47 -40
  86. package/_cjs/IO/runtime.cjs.map +1 -1
  87. package/_cjs/Logger/api.cjs +3 -2
  88. package/_cjs/Logger/api.cjs.map +1 -1
  89. package/_cjs/MVar/api.cjs +11 -11
  90. package/_cjs/MVar/api.cjs.map +1 -1
  91. package/_cjs/Push/api.cjs +3 -3
  92. package/_cjs/Push/api.cjs.map +1 -1
  93. package/_cjs/Push/internal.cjs +1 -1
  94. package/_cjs/Push/internal.cjs.map +1 -1
  95. package/_cjs/Queue/api/filterInputIO.cjs +2 -2
  96. package/_cjs/Queue/api/filterInputIO.cjs.map +1 -1
  97. package/_cjs/Queue/api/filterOutputIO.cjs.map +1 -1
  98. package/_cjs/Ref/Derived.cjs +4 -4
  99. package/_cjs/Ref/Derived.cjs.map +1 -1
  100. package/_cjs/Ref/DerivedAll.cjs +5 -5
  101. package/_cjs/Ref/DerivedAll.cjs.map +1 -1
  102. package/_cjs/Ref/Synchronized/api.cjs +3 -3
  103. package/_cjs/Ref/Synchronized/api.cjs.map +1 -1
  104. package/_cjs/Ref/api/collect.cjs +1 -1
  105. package/_cjs/Ref/api/collect.cjs.map +1 -1
  106. package/_cjs/Ref/api/dimap.cjs +3 -3
  107. package/_cjs/Ref/api/dimap.cjs.map +1 -1
  108. package/_cjs/Ref/api/filter.cjs +2 -2
  109. package/_cjs/Ref/api/filter.cjs.map +1 -1
  110. package/_cjs/Ref/api.cjs +2 -3
  111. package/_cjs/Ref/api.cjs.map +1 -1
  112. package/_cjs/RefSubject/Atomic.cjs +6 -6
  113. package/_cjs/RefSubject/Atomic.cjs.map +1 -1
  114. package/_cjs/STM/api.cjs +5 -5
  115. package/_cjs/STM/api.cjs.map +1 -1
  116. package/_cjs/STM/definition.cjs +1 -1
  117. package/_cjs/STM/definition.cjs.map +1 -1
  118. package/_cjs/STM/internal/CommitState.cjs +5 -4
  119. package/_cjs/STM/internal/CommitState.cjs.map +1 -1
  120. package/_cjs/STM/internal/Journal.cjs +8 -8
  121. package/_cjs/STM/internal/Journal.cjs.map +1 -1
  122. package/_cjs/Schedule/api/driver.cjs +3 -3
  123. package/_cjs/Schedule/api/driver.cjs.map +1 -1
  124. package/_cjs/Schedule/api.cjs +8 -8
  125. package/_cjs/Schedule/api.cjs.map +1 -1
  126. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +1 -1
  127. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
  128. package/_cjs/Scope/ReleaseMap/api.cjs +3 -3
  129. package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
  130. package/_cjs/ScopedRef/api.cjs +1 -1
  131. package/_cjs/ScopedRef/api.cjs.map +1 -1
  132. package/_cjs/Semaphore.cjs +2 -2
  133. package/_cjs/Semaphore.cjs.map +1 -1
  134. package/_cjs/Sink/api.cjs +6 -6
  135. package/_cjs/Sink/api.cjs.map +1 -1
  136. package/_cjs/Stream/api/zipAllWith.cjs +8 -8
  137. package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
  138. package/_cjs/Stream/api/zipWithChunks.cjs +6 -6
  139. package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
  140. package/_cjs/Stream/api.cjs +415 -133
  141. package/_cjs/Stream/api.cjs.map +1 -1
  142. package/_cjs/Stream/internal/Handoff.cjs +2 -2
  143. package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
  144. package/_cjs/Stream/internal/Pull.cjs +2 -2
  145. package/_cjs/Stream/internal/Pull.cjs.map +1 -1
  146. package/_cjs/Stream/internal/Take.cjs +6 -6
  147. package/_cjs/Stream/internal/Take.cjs.map +1 -1
  148. package/_cjs/Stream/internal/util.cjs +3 -2
  149. package/_cjs/Stream/internal/util.cjs.map +1 -1
  150. package/_cjs/TFuture/api.cjs +3 -3
  151. package/_cjs/TFuture/api.cjs.map +1 -1
  152. package/_cjs/TFuture/constructors.cjs +1 -1
  153. package/_cjs/TFuture/constructors.cjs.map +1 -1
  154. package/_cjs/TRef/definition.cjs +9 -9
  155. package/_cjs/TRef/definition.cjs.map +1 -1
  156. package/_cjs/collection/immutable/Conc/findIO.cjs +3 -3
  157. package/_cjs/collection/immutable/Conc/findIO.cjs.map +1 -1
  158. package/_cjs/data/Exit/foreachIO.cjs +1 -1
  159. package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
  160. package/_mjs/Cached/definition.mjs.map +1 -1
  161. package/_mjs/Channel/api/mapOutConcurrentIO.mjs +1 -1
  162. package/_mjs/Channel/api/mapOutConcurrentIO.mjs.map +1 -1
  163. package/_mjs/Channel/api/mergeAllWith.mjs +3 -3
  164. package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
  165. package/_mjs/Channel/api/mergeWith.mjs +4 -4
  166. package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
  167. package/_mjs/Channel/api/runScoped.mjs +19 -3
  168. package/_mjs/Channel/api/runScoped.mjs.map +1 -1
  169. package/_mjs/Channel/api/toPull.mjs +3 -3
  170. package/_mjs/Channel/api/toPull.mjs.map +1 -1
  171. package/_mjs/Channel/api.mjs +8 -7
  172. package/_mjs/Channel/api.mjs.map +1 -1
  173. package/_mjs/Channel/internal/ChannelExecutor.mjs +71 -62
  174. package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
  175. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +3 -3
  176. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
  177. package/_mjs/Clock/live.mjs +1 -1
  178. package/_mjs/Clock/live.mjs.map +1 -1
  179. package/_mjs/Fiber/FiberMessage.mjs +5 -5
  180. package/_mjs/Fiber/FiberMessage.mjs.map +1 -1
  181. package/_mjs/Fiber/FiberRuntime.mjs +102 -70
  182. package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
  183. package/_mjs/Fiber/api/collectAll.mjs +1 -1
  184. package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
  185. package/_mjs/Fiber/api/mapIO.mjs +1 -1
  186. package/_mjs/Fiber/api/mapIO.mjs.map +1 -1
  187. package/_mjs/Fiber/api/zipWith.mjs +1 -1
  188. package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
  189. package/_mjs/Fiber/constructors.mjs +5 -5
  190. package/_mjs/Fiber/constructors.mjs.map +1 -1
  191. package/_mjs/FiberRef/unsafe.mjs +3 -2
  192. package/_mjs/FiberRef/unsafe.mjs.map +1 -1
  193. package/_mjs/FiberScope/definition.mjs +2 -2
  194. package/_mjs/FiberScope/definition.mjs.map +1 -1
  195. package/_mjs/Future/api.mjs +4 -4
  196. package/_mjs/Future/api.mjs.map +1 -1
  197. package/_mjs/Hub/api.mjs.map +1 -1
  198. package/_mjs/Hub/internal.mjs +1 -1
  199. package/_mjs/Hub/internal.mjs.map +1 -1
  200. package/_mjs/IO/api/asyncIO.mjs +1 -1
  201. package/_mjs/IO/api/asyncIO.mjs.map +1 -1
  202. package/_mjs/IO/api/asyncInterrupt.mjs +2 -2
  203. package/_mjs/IO/api/asyncInterrupt.mjs.map +1 -1
  204. package/_mjs/IO/api/concurrency.mjs +3 -3
  205. package/_mjs/IO/api/concurrency.mjs.map +1 -1
  206. package/_mjs/IO/api/daemonChildren.mjs +1 -1
  207. package/_mjs/IO/api/daemonChildren.mjs.map +1 -1
  208. package/_mjs/IO/api/fork.mjs +2 -1
  209. package/_mjs/IO/api/fork.mjs.map +1 -1
  210. package/_mjs/IO/api/interrupt.mjs +2 -2
  211. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  212. package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
  213. package/_mjs/IO/api/raceWith.mjs +9 -12
  214. package/_mjs/IO/api/raceWith.mjs.map +1 -1
  215. package/_mjs/IO/api/repeat.mjs +2 -2
  216. package/_mjs/IO/api/repeat.mjs.map +1 -1
  217. package/_mjs/IO/api/stateful.mjs +3 -3
  218. package/_mjs/IO/api/stateful.mjs.map +1 -1
  219. package/_mjs/IO/api/timeout.mjs +1 -1
  220. package/_mjs/IO/api/timeout.mjs.map +1 -1
  221. package/_mjs/IO/api/transplant.mjs +1 -1
  222. package/_mjs/IO/api/transplant.mjs.map +1 -1
  223. package/_mjs/IO/api/withChildren.mjs +5 -4
  224. package/_mjs/IO/api/withChildren.mjs.map +1 -1
  225. package/_mjs/IO/api/withEarlyRelease.mjs +1 -1
  226. package/_mjs/IO/api/withEarlyRelease.mjs.map +1 -1
  227. package/_mjs/IO/api/zipConcurrent.mjs +23 -23
  228. package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
  229. package/_mjs/IO/api.mjs +32 -30
  230. package/_mjs/IO/api.mjs.map +1 -1
  231. package/_mjs/IO/definition.mjs +16 -27
  232. package/_mjs/IO/definition.mjs.map +1 -1
  233. package/_mjs/IO/runtime.mjs +43 -34
  234. package/_mjs/IO/runtime.mjs.map +1 -1
  235. package/_mjs/Logger/api.mjs +3 -2
  236. package/_mjs/Logger/api.mjs.map +1 -1
  237. package/_mjs/MVar/api.mjs +11 -11
  238. package/_mjs/MVar/api.mjs.map +1 -1
  239. package/_mjs/Push/api.mjs +3 -3
  240. package/_mjs/Push/api.mjs.map +1 -1
  241. package/_mjs/Push/internal.mjs +1 -1
  242. package/_mjs/Push/internal.mjs.map +1 -1
  243. package/_mjs/Queue/api/filterInputIO.mjs +2 -2
  244. package/_mjs/Queue/api/filterInputIO.mjs.map +1 -1
  245. package/_mjs/Queue/api/filterOutputIO.mjs.map +1 -1
  246. package/_mjs/Ref/Derived.mjs +4 -4
  247. package/_mjs/Ref/Derived.mjs.map +1 -1
  248. package/_mjs/Ref/DerivedAll.mjs +5 -5
  249. package/_mjs/Ref/DerivedAll.mjs.map +1 -1
  250. package/_mjs/Ref/Synchronized/api.mjs +3 -3
  251. package/_mjs/Ref/Synchronized/api.mjs.map +1 -1
  252. package/_mjs/Ref/api/collect.mjs +1 -1
  253. package/_mjs/Ref/api/collect.mjs.map +1 -1
  254. package/_mjs/Ref/api/dimap.mjs +3 -3
  255. package/_mjs/Ref/api/dimap.mjs.map +1 -1
  256. package/_mjs/Ref/api/filter.mjs +2 -2
  257. package/_mjs/Ref/api/filter.mjs.map +1 -1
  258. package/_mjs/Ref/api.mjs +2 -1
  259. package/_mjs/Ref/api.mjs.map +1 -1
  260. package/_mjs/RefSubject/Atomic.mjs +6 -6
  261. package/_mjs/RefSubject/Atomic.mjs.map +1 -1
  262. package/_mjs/STM/api.mjs +5 -5
  263. package/_mjs/STM/api.mjs.map +1 -1
  264. package/_mjs/STM/definition.mjs +1 -1
  265. package/_mjs/STM/definition.mjs.map +1 -1
  266. package/_mjs/STM/internal/CommitState.mjs +5 -4
  267. package/_mjs/STM/internal/CommitState.mjs.map +1 -1
  268. package/_mjs/STM/internal/Journal.mjs +8 -8
  269. package/_mjs/STM/internal/Journal.mjs.map +1 -1
  270. package/_mjs/Schedule/api/driver.mjs +3 -3
  271. package/_mjs/Schedule/api/driver.mjs.map +1 -1
  272. package/_mjs/Schedule/api.mjs +8 -8
  273. package/_mjs/Schedule/api.mjs.map +1 -1
  274. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +1 -1
  275. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
  276. package/_mjs/Scope/ReleaseMap/api.mjs +3 -3
  277. package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
  278. package/_mjs/ScopedRef/api.mjs +1 -1
  279. package/_mjs/ScopedRef/api.mjs.map +1 -1
  280. package/_mjs/Semaphore.mjs +2 -2
  281. package/_mjs/Semaphore.mjs.map +1 -1
  282. package/_mjs/Sink/api.mjs +6 -6
  283. package/_mjs/Sink/api.mjs.map +1 -1
  284. package/_mjs/Stream/api/zipAllWith.mjs +8 -8
  285. package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
  286. package/_mjs/Stream/api/zipWithChunks.mjs +6 -6
  287. package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
  288. package/_mjs/Stream/api.mjs +321 -60
  289. package/_mjs/Stream/api.mjs.map +1 -1
  290. package/_mjs/Stream/internal/Handoff.mjs +2 -2
  291. package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
  292. package/_mjs/Stream/internal/Pull.mjs +2 -2
  293. package/_mjs/Stream/internal/Pull.mjs.map +1 -1
  294. package/_mjs/Stream/internal/Take.mjs +6 -6
  295. package/_mjs/Stream/internal/Take.mjs.map +1 -1
  296. package/_mjs/Stream/internal/util.mjs +3 -2
  297. package/_mjs/Stream/internal/util.mjs.map +1 -1
  298. package/_mjs/TFuture/api.mjs +3 -3
  299. package/_mjs/TFuture/api.mjs.map +1 -1
  300. package/_mjs/TFuture/constructors.mjs +1 -1
  301. package/_mjs/TFuture/constructors.mjs.map +1 -1
  302. package/_mjs/TRef/definition.mjs +9 -9
  303. package/_mjs/TRef/definition.mjs.map +1 -1
  304. package/_mjs/collection/immutable/Conc/findIO.mjs +3 -3
  305. package/_mjs/collection/immutable/Conc/findIO.mjs.map +1 -1
  306. package/_mjs/data/Exit/foreachIO.mjs +1 -1
  307. package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
  308. package/_src/Cached/definition.ts +1 -1
  309. package/_src/Channel/api/runScoped.ts +30 -5
  310. package/_src/Channel/api/toPull.ts +1 -1
  311. package/_src/Channel/api.ts +1 -0
  312. package/_src/Channel/internal/ChannelExecutor.ts +24 -20
  313. package/_src/Fiber/FiberMessage.ts +5 -5
  314. package/_src/Fiber/FiberRuntime.ts +40 -17
  315. package/_src/FiberRefs/api.ts +1 -1
  316. package/_src/Hub/api.ts +1 -1
  317. package/_src/IO/api/asyncIO.ts +1 -1
  318. package/_src/IO/api/provideSomeLayer.ts +1 -3
  319. package/_src/IO/api/raceWith.ts +1 -3
  320. package/_src/IO/api/stateful.ts +1 -1
  321. package/_src/IO/api/zipConcurrent.ts +26 -30
  322. package/_src/IO/api.ts +4 -3
  323. package/_src/IO/definition.ts +35 -28
  324. package/_src/IO/runtime.ts +39 -38
  325. package/_src/Queue/api/filterInputIO.ts +1 -1
  326. package/_src/Queue/api/filterOutputIO.ts +1 -1
  327. package/_src/RefSubject/Atomic.ts +4 -4
  328. package/_src/STM/definition.ts +1 -1
  329. package/_src/State/definition.ts +1 -1
  330. package/_src/Stream/api.ts +315 -14
  331. package/_src/Subject/Atomic.ts +1 -1
  332. package/_src/global.ts +0 -4
  333. package/_src/index.ts +2 -2
  334. package/global.d.ts +0 -4
  335. package/index.d.ts +2 -2
  336. package/package.json +3 -3
  337. package/RuntimeConfig.d.ts +0 -11
  338. package/_cjs/RuntimeConfig.cjs +0 -12
  339. package/_cjs/RuntimeConfig.cjs.map +0 -1
  340. package/_mjs/RuntimeConfig.mjs +0 -3
  341. package/_mjs/RuntimeConfig.mjs.map +0 -1
  342. package/_src/RuntimeConfig.ts +0 -6
@@ -1,16 +1,14 @@
1
1
  import type { InterruptibilityRestorer } from "./interrupt.js";
2
2
  import type { Grafter } from "./transplant.js";
3
3
 
4
- import { tuple } from "@fncts/base/data/function";
5
4
  import { AtomicBoolean } from "@fncts/base/internal/AtomicBoolean";
6
- import { AtomicReference } from "@fncts/base/internal/AtomicReference";
7
5
 
8
6
  /**
9
7
  * @tsplus pipeable fncts.io.IO zipConcurrent
10
8
  */
11
9
  export function zipConcurrent<R1, E1, B>(that: IO<R1, E1, B>, __tsplusTrace?: string) {
12
- return <R, E, A>(self: IO<R, E, A>): IO<R | R1, E | E1, readonly [A, B]> => {
13
- return self.zipWithConcurrent(that, tuple);
10
+ return <R, E, A>(self: IO<R, E, A>): IO<R | R1, E | E1, Zipped.Make<A, B>> => {
11
+ return self.zipWithConcurrent(that, (a, b) => Zipped(a, b));
14
12
  };
15
13
  }
16
14
 
@@ -19,32 +17,30 @@ export function zipConcurrent<R1, E1, B>(that: IO<R1, E1, B>, __tsplusTrace?: st
19
17
  */
20
18
  export function zipWithConcurrent<A, R1, E1, B, C>(that: IO<R1, E1, B>, f: (a: A, b: B) => C, __tsplusTrace?: string) {
21
19
  return <R, E>(self: IO<R, E, A>): IO<R | R1, E | E1, C> => {
22
- return IO.fiberId.flatMap((fiberId) =>
23
- IO.uninterruptibleMask((restore) => {
24
- return IO.transplant((graft) => {
25
- const future = Future.unsafeMake<void, void>(FiberId.none);
26
- const ref = new AtomicBoolean(false);
27
- return fork(self, restore, graft, future, ref)
28
- .zip(fork(that, restore, graft, future, ref))
29
- .flatMap(([left, right]) =>
30
- restore(future.await).matchCauseIO(
31
- (cause) =>
32
- left.interruptFork >
33
- right.interruptFork >
34
- left.await.zip(right.await).flatMap(([left, right]) =>
35
- left
36
- .zipWithCause(right, f, (a, b) => Cause.both(a, b))
37
- .match(
38
- (causes) => IO.refailCause(Cause.both(cause.stripFailures, causes)),
39
- () => IO.refailCause(cause.stripFailures),
40
- ),
41
- ),
42
- () => left.join.zipWith(right.join, f),
43
- ),
44
- );
45
- });
46
- }),
47
- );
20
+ return IO.uninterruptibleMask((restore) => {
21
+ return IO.transplant((graft) => {
22
+ const future = Future.unsafeMake<void, void>(FiberId.none);
23
+ const ref = new AtomicBoolean(false);
24
+ return fork(self, restore, graft, future, ref)
25
+ .zip(fork(that, restore, graft, future, ref))
26
+ .flatMap(([left, right]) =>
27
+ restore(future.await).matchCauseIO(
28
+ (cause) =>
29
+ left.interruptFork >
30
+ right.interruptFork >
31
+ left.await.zip(right.await).flatMap(([left, right]) =>
32
+ left
33
+ .zipWithCause(right, f, (a, b) => Cause.both(a, b))
34
+ .match(
35
+ (causes) => IO.refailCause(Cause.both(cause.stripFailures, causes)),
36
+ () => IO.refailCause(cause.stripFailures),
37
+ ),
38
+ ),
39
+ () => left.join.zipWith(right.join, f),
40
+ ),
41
+ );
42
+ });
43
+ });
48
44
  };
49
45
  }
50
46
 
package/_src/IO/api.ts CHANGED
@@ -4,6 +4,7 @@ import type { _E, _R } from "@fncts/base/types";
4
4
  import type { FiberRuntime } from "@fncts/io/Fiber/FiberRuntime";
5
5
  import type { RuntimeFlags } from "@fncts/io/RuntimeFlags";
6
6
 
7
+ import { IOError } from "@fncts/base/data/exceptions";
7
8
  import { identity, pipe, tuple } from "@fncts/base/data/function";
8
9
  import {
9
10
  Async,
@@ -15,7 +16,7 @@ import {
15
16
  YieldNow,
16
17
  } from "@fncts/io/IO/definition";
17
18
  import { Stateful } from "@fncts/io/IO/definition";
18
- import { Fail, IO, IOError, SucceedNow } from "@fncts/io/IO/definition";
19
+ import { Fail, IO, SucceedNow } from "@fncts/io/IO/definition";
19
20
 
20
21
  /**
21
22
  * Imports an asynchronous side-effect into a `IO`
@@ -851,8 +852,8 @@ export function fromMaybe<A>(maybe: Lazy<Maybe<A>>, __tsplusTrace?: string): FIO
851
852
  * @tsplus static fncts.io.IOOps fromMaybeNow
852
853
  * @tsplus getter fncts.Maybe toIO
853
854
  */
854
- export function fromMaybeNow<A = never>(maybe: Maybe<A>, __tsplusTrace?: string): IO<unknown, Maybe<never>, A> {
855
- return maybe.match(() => IO.failNow(Nothing()), IO.succeedNow);
855
+ export function fromMaybeNow<A = never>(maybe: Maybe<A>, __tsplusTrace?: string): IO<never, NoSuchElementError, A> {
856
+ return maybe.match(() => IO.failNow(new NoSuchElementError("IO.fromMaybeNow")), IO.succeedNow);
856
857
  }
857
858
 
858
859
  /**
@@ -1,6 +1,8 @@
1
1
  import type { FiberRuntime } from "../Fiber/FiberRuntime.js";
2
2
  import type { Running } from "../FiberStatus.js";
3
3
  import type { RuntimeFlagsPatch } from "../RuntimeFlags.js";
4
+ import type { Left, Right } from "@fncts/base/data/Either";
5
+ import type { Failure, Success } from "@fncts/base/data/Exit";
4
6
  import type { Trace } from "@fncts/base/data/Trace";
5
7
 
6
8
  import { RuntimeFlag } from "../RuntimeFlag.js";
@@ -34,6 +36,17 @@ export abstract class IO<R, E, A> {
34
36
  };
35
37
  }
36
38
 
39
+ declare module "@fncts/base/data/Either/definition" {
40
+ interface Either<E, A> extends IO<never, E, A> {}
41
+ }
42
+ declare module "@fncts/base/data/Maybe/definition" {
43
+ interface Maybe<A> extends IO<never, NoSuchElementError, A> {}
44
+ }
45
+ declare module "@fncts/base/data/Exit/definition" {
46
+ interface Success<A> extends IO<never, never, A> {}
47
+ interface Failure<E> extends IO<never, E, never> {}
48
+ }
49
+
37
50
  /**
38
51
  * @tsplus type fncts.io.IOAspects
39
52
  */
@@ -87,14 +100,14 @@ export function isIO(u: unknown): u is IO<any, any, any> {
87
100
  }
88
101
 
89
102
  export class Sync<A> extends IO<never, never, A> {
90
- readonly ioOpCode = IOOpCode.Sync;
103
+ readonly _tag = IOOpCode.Sync;
91
104
  constructor(readonly evaluate: () => A, readonly trace?: string) {
92
105
  super();
93
106
  }
94
107
  }
95
108
 
96
109
  export class Async<R, E, A> extends IO<R, E, A> {
97
- readonly ioOpCode = IOOpCode.Async;
110
+ readonly _tag = IOOpCode.Async;
98
111
  constructor(
99
112
  readonly registerCallback: (f: (_: IO<R, E, A>) => void) => any,
100
113
  readonly blockingOn: () => FiberId,
@@ -108,7 +121,7 @@ export class Async<R, E, A> extends IO<R, E, A> {
108
121
  * @internal
109
122
  */
110
123
  export class OnSuccessAndFailure<R, E, A, R1, E1, B, R2, E2, C> extends IO<R | R1 | R2, E1 | E2, B | C> {
111
- readonly ioOpCode = IOOpCode.OnSuccessAndFailure;
124
+ readonly _tag = IOOpCode.OnSuccessAndFailure;
112
125
 
113
126
  constructor(
114
127
  readonly first: IO<R, E, A>,
@@ -128,7 +141,7 @@ export class OnSuccessAndFailure<R, E, A, R1, E1, B, R2, E2, C> extends IO<R | R
128
141
  }
129
142
 
130
143
  export class OnFailure<R, E, A, R1, E1, B> extends IO<R | R1, E1, A | B> {
131
- readonly ioOpCode = IOOpCode.OnFailure;
144
+ readonly _tag = IOOpCode.OnFailure;
132
145
  constructor(
133
146
  readonly first: IO<R, E, A>,
134
147
  readonly failureK: (cause: Cause<E>) => IO<R1, E1, B>,
@@ -149,7 +162,7 @@ export class OnFailure<R, E, A, R1, E1, B> extends IO<R | R1, E1, A | B> {
149
162
  * @internal
150
163
  */
151
164
  export class OnSuccess<R, R1, E, E1, A, A1> extends IO<R | R1, E | E1, A1> {
152
- readonly ioOpCode = IOOpCode.OnSuccess;
165
+ readonly _tag = IOOpCode.OnSuccess;
153
166
  constructor(readonly first: IO<R, E, A>, readonly successK: (a: A) => IO<R1, E1, A1>, readonly trace?: string) {
154
167
  super();
155
168
  }
@@ -165,21 +178,21 @@ export class OnSuccess<R, R1, E, E1, A, A1> extends IO<R | R1, E | E1, A1> {
165
178
  * @internal
166
179
  */
167
180
  export class SucceedNow<A> extends IO<never, never, A> {
168
- readonly ioOpCode = IOOpCode.SucceedNow;
181
+ readonly _tag = IOOpCode.SucceedNow;
169
182
  constructor(readonly value: A, readonly trace?: string) {
170
183
  super();
171
184
  }
172
185
  }
173
186
 
174
187
  export class UpdateRuntimeFlags extends IO<never, never, void> {
175
- readonly ioOpCode = IOOpCode.UpdateRuntimeFlags;
188
+ readonly _tag = IOOpCode.UpdateRuntimeFlags;
176
189
  constructor(readonly update: RuntimeFlags.Patch, readonly trace?: string) {
177
190
  super();
178
191
  }
179
192
  }
180
193
 
181
194
  export class Interruptible<R, E, A> extends IO<R, E, A> {
182
- readonly ioOpCode = IOOpCode.UpdateRuntimeFlagsWithin;
195
+ readonly _tag = IOOpCode.UpdateRuntimeFlagsWithin;
183
196
  constructor(readonly effect: IO<R, E, A>, readonly trace?: string) {
184
197
  super();
185
198
  }
@@ -191,7 +204,7 @@ export class Interruptible<R, E, A> extends IO<R, E, A> {
191
204
  }
192
205
 
193
206
  export class Uninterruptible<R, E, A> extends IO<R, E, A> {
194
- readonly ioOpCode = IOOpCode.UpdateRuntimeFlagsWithin;
207
+ readonly _tag = IOOpCode.UpdateRuntimeFlagsWithin;
195
208
  constructor(readonly effect: IO<R, E, A>, readonly trace?: string) {
196
209
  super();
197
210
  }
@@ -203,7 +216,7 @@ export class Uninterruptible<R, E, A> extends IO<R, E, A> {
203
216
  }
204
217
 
205
218
  export class Dynamic<R, E, A> extends IO<R, E, A> {
206
- readonly ioOpCode = IOOpCode.UpdateRuntimeFlagsWithin;
219
+ readonly _tag = IOOpCode.UpdateRuntimeFlagsWithin;
207
220
  constructor(
208
221
  readonly update: RuntimeFlagsPatch,
209
222
  readonly f: (oldRuntimeFlags: RuntimeFlags) => IO<R, E, A>,
@@ -218,21 +231,21 @@ export class Dynamic<R, E, A> extends IO<R, E, A> {
218
231
  }
219
232
 
220
233
  export class GenerateStackTrace extends IO<never, never, Trace> {
221
- readonly ioOpCode = IOOpCode.GenerateStackTrace;
234
+ readonly _tag = IOOpCode.GenerateStackTrace;
222
235
  constructor(readonly trace?: string) {
223
236
  super();
224
237
  }
225
238
  }
226
239
 
227
240
  export class Stateful<R, E, A> extends IO<R, E, A> {
228
- readonly ioOpCode = IOOpCode.Stateful;
241
+ readonly _tag = IOOpCode.Stateful;
229
242
  constructor(readonly onState: (fiber: FiberRuntime<E, A>, status: Running) => IO<R, E, A>, readonly trace?: string) {
230
243
  super();
231
244
  }
232
245
  }
233
246
 
234
247
  export class WhileLoop<R, E, A> extends IO<R, E, void> {
235
- readonly ioOpCode = IOOpCode.WhileLoop;
248
+ readonly _tag = IOOpCode.WhileLoop;
236
249
  constructor(
237
250
  readonly check: () => boolean,
238
251
  readonly body: () => IO<R, E, A>,
@@ -244,7 +257,7 @@ export class WhileLoop<R, E, A> extends IO<R, E, void> {
244
257
  }
245
258
 
246
259
  export class YieldNow extends IO<never, never, void> {
247
- readonly ioOpCode = IOOpCode.YieldNow;
260
+ readonly _tag = IOOpCode.YieldNow;
248
261
  constructor(readonly trace?: string) {
249
262
  super();
250
263
  }
@@ -254,7 +267,7 @@ export class YieldNow extends IO<never, never, void> {
254
267
  * @internal
255
268
  */
256
269
  export class Fail<E> extends IO<never, E, never> {
257
- readonly ioOpCode = IOOpCode.Fail;
270
+ readonly _tag = IOOpCode.Fail;
258
271
 
259
272
  constructor(readonly cause: Lazy<Cause<E>>, readonly trace?: string) {
260
273
  super();
@@ -275,7 +288,13 @@ export type Concrete =
275
288
  | WhileLoop<any, any, any>
276
289
  | YieldNow
277
290
  | Fail<any>
278
- | STM<any, any, any>;
291
+ | STM<any, any, any>
292
+ | Left<any>
293
+ | Right<any>
294
+ | Nothing
295
+ | Just<any>
296
+ | Failure<any>
297
+ | Success<any>;
279
298
 
280
299
  /**
281
300
  * @tsplus static fncts.io.IOOps concrete
@@ -296,15 +315,3 @@ export type UpdateRuntimeFlagsWithin =
296
315
  | Dynamic<any, any, any>;
297
316
 
298
317
  export type Canceler<R> = URIO<R, void>;
299
-
300
- export const IOErrorTypeId = Symbol.for("fncts.io.IO.IOError");
301
- export type IOErrorTypeId = typeof IOErrorTypeId;
302
-
303
- export class IOError<E> {
304
- readonly [IOErrorTypeId]: IOErrorTypeId = IOErrorTypeId;
305
- constructor(readonly cause: Cause<E>) {}
306
- }
307
-
308
- export function isIOError(u: unknown): u is IOError<unknown> {
309
- return isObject(u) && IOErrorTypeId in u;
310
- }
@@ -1,4 +1,5 @@
1
- import { FiberMessage, FiberRuntime } from "@fncts/io/Fiber";
1
+ import { IOError } from "@fncts/base/data/exceptions";
2
+ import { FiberRuntime } from "@fncts/io/Fiber";
2
3
  import { FiberRefs } from "@fncts/io/FiberRefs";
3
4
  import { RuntimeFlag } from "@fncts/io/RuntimeFlag";
4
5
  import { RuntimeFlags } from "@fncts/io/RuntimeFlags";
@@ -12,7 +13,7 @@ export class Runtime<R> {
12
13
  readonly fiberRefs: FiberRefs,
13
14
  ) {}
14
15
 
15
- unsafeRunFiber = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): FiberRuntime<E, A> => {
16
+ makeFiber = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): FiberRuntime<E, A> => {
16
17
  const fiberId = FiberId.unsafeMake(__tsplusTrace);
17
18
  const fiberRefs = this.fiberRefs.updateAs(fiberId, FiberRef.currentEnvironment, this.environment);
18
19
 
@@ -31,35 +32,39 @@ export class Runtime<R> {
31
32
 
32
33
  FiberScope.global.unsafeAdd(null!, fiber.runtimeFlags0, fiber);
33
34
 
34
- fiber.start(io);
35
-
36
35
  return fiber;
37
36
  };
38
37
 
39
- unsafeRunWith = <E, A>(
40
- io: IO<R, E, A>,
41
- k: (exit: Exit<E, A>) => any,
42
- __tsplusTrace?: string,
43
- ): ((fiberId: FiberId) => (f: (exit: Exit<E, A>) => any) => void) => {
44
- const fiber = this.unsafeRunFiber(io);
45
- fiber.tell(FiberMessage.Stateful((fiber) => fiber.addObserver(k)));
46
- return (fiberId) => (k) => this.unsafeRunAsyncWith(fiber.interruptAs(fiberId), (exit) => k(exit.flatten));
47
- };
48
-
49
- unsafeRunAsync = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string) => {
50
- this.unsafeRunAsyncWith(io, () => void 0);
38
+ unsafeRunFiber = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): FiberRuntime<E, A> => {
39
+ const fiber = this.makeFiber(io);
40
+ fiber.start(io);
41
+ return fiber;
51
42
  };
52
43
 
53
- unsafeRunAsyncWith = <E, A>(io: IO<R, E, A>, k: (exit: Exit<E, A>) => any, __tsplusTrace?: string) => {
54
- this.unsafeRunWith(io, k);
44
+ unsafeRunPromiseExit = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): Promise<Exit<E, A>> => {
45
+ return new Promise((resolve) => {
46
+ const fiber = this.makeFiber(io);
47
+ fiber.addObserver((exit) => {
48
+ resolve(exit);
49
+ });
50
+ fiber.start(io);
51
+ });
55
52
  };
56
53
 
57
- unsafeRunPromiseExit = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): Promise<Exit<E, A>> =>
58
- new Promise((resolve) => {
59
- this.unsafeRunAsyncWith(io, resolve);
54
+ unsafeRunPromise = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): Promise<A> => {
55
+ return new Promise((resolve, reject) => {
56
+ const fiber = this.makeFiber(io);
57
+ fiber.addObserver((exit) => {
58
+ if (exit.isFailure()) {
59
+ reject(new IOError(exit.cause));
60
+ } else {
61
+ resolve(exit.value);
62
+ }
63
+ });
60
64
  });
65
+ };
61
66
 
62
- unsafeRunSyncExit = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): Exit<E, A> => {
67
+ unsafeRunOrFork = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): Either<Fiber.Runtime<E, A>, Exit<E, A>> => {
63
68
  const fiberId = FiberId.unsafeMake(__tsplusTrace);
64
69
  const scheduler = new StagedScheduler();
65
70
  const fiberRefs = this.fiberRefs.updateAs(fiberId, FiberRef.currentEnvironment, this.environment);
@@ -83,10 +88,16 @@ export class Runtime<R> {
83
88
 
84
89
  const result = fiber.exitValue();
85
90
  if (result !== null) {
86
- return result;
91
+ return Either.right(result);
87
92
  }
88
93
 
89
- return Exit.halt(fiber);
94
+ return Either.left(fiber);
95
+ };
96
+
97
+ unsafeRun = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): Exit<E, A> => {
98
+ return this.unsafeRunOrFork(io).match(() => {
99
+ throw new Error("Encountered async boundary");
100
+ }, Function.identity);
90
101
  };
91
102
  }
92
103
 
@@ -112,27 +123,17 @@ export const defaultRuntime = new Runtime(Environment.empty, RuntimeFlags.defaul
112
123
  */
113
124
  export const unsafeRunFiber = defaultRuntime.unsafeRunFiber;
114
125
 
115
- /**
116
- * @tsplus fluent fncts.io.IO unsafeRunAsync
117
- */
118
- export const unsafeRunAsync = defaultRuntime.unsafeRunAsync;
119
-
120
- /**
121
- * @tsplus fluent fncts.io.IO unsafeRunAsyncWith
122
- */
123
- export const unsafeRunAsyncWith = defaultRuntime.unsafeRunAsyncWith;
124
-
125
126
  /**
126
127
  * @tsplus fluent fncts.io.IO unsafeRunPromiseExit
127
128
  */
128
129
  export const unsafeRunPromiseExit = defaultRuntime.unsafeRunPromiseExit;
129
130
 
130
131
  /**
131
- * @tsplus fluent fncts.io.IO unsafeRunWith
132
+ * @tsplus getter fncts.io.IO unsafeRunOrFork
132
133
  */
133
- export const unsafeRunWith = defaultRuntime.unsafeRunWith;
134
+ export const unsafeRunOrFork = defaultRuntime.unsafeRunOrFork;
134
135
 
135
136
  /**
136
- * @tsplus getter fncts.io.IO unsafeRunSyncExit
137
+ * @tsplus getter fncts.io.IO unsafeRun
137
138
  */
138
- export const unsafeRunSyncExit = defaultRuntime.unsafeRunSyncExit;
139
+ export const unsafeRun = defaultRuntime.unsafeRun;
@@ -1,6 +1,6 @@
1
1
  import type { PEnqueue, PEnqueueInternal } from "@fncts/io/Queue/definition";
2
2
 
3
- import { concrete, EnqueueTypeId, QueueInternal, QueueTypeId , QueueVariance } from "@fncts/io/Queue/definition";
3
+ import { concrete, EnqueueTypeId, QueueInternal, QueueTypeId, QueueVariance } from "@fncts/io/Queue/definition";
4
4
 
5
5
  class FilterInputIO<RA, RB, EA, EB, B, A, A1 extends A, R2, E2> extends QueueInternal<RA | R2, RB, EA | E2, EB, A1, B> {
6
6
  constructor(readonly queue: QueueInternal<RA, RB, EA, EB, A, B>, readonly f: (_: A1) => IO<R2, E2, boolean>) {
@@ -1,6 +1,6 @@
1
1
  import type { PDequeue, PDequeueInternal } from "@fncts/io/Queue/definition";
2
2
 
3
- import { concrete, DequeueTypeId, QueueInternal, QueueTypeId , QueueVariance } from "@fncts/io/Queue/definition";
3
+ import { concrete, DequeueTypeId, QueueInternal, QueueTypeId, QueueVariance } from "@fncts/io/Queue/definition";
4
4
 
5
5
  class FilterOutputIO<RA, RB, EA, EB, A, B, RB1, EB1> extends QueueInternal<RA, RB | RB1, EA, EB | EB1, A, B> {
6
6
  constructor(readonly queue: QueueInternal<RA, RB, EA, EB, A, B>, readonly f: (b: B) => IO<RB1, EB1, boolean>) {
@@ -53,15 +53,15 @@ export class AtomicRefSubject<E, A> extends RefSubjectInternal<never, E, A, A> {
53
53
  end: IO<never, never, void> = this.stream.end;
54
54
 
55
55
  unsafeEmit(value: A): void {
56
- return this.stream.emit(value).unsafeRunAsync();
56
+ this.stream.emit(value).unsafeRunFiber();
57
57
  }
58
58
 
59
59
  unsafeFailCause(cause: Cause<E>): void {
60
- return this.stream.failCause(cause).unsafeRunAsync();
60
+ this.stream.failCause(cause).unsafeRunFiber();
61
61
  }
62
62
 
63
63
  unsafeEnd(): void {
64
- return this.stream.end.unsafeRunAsync();
64
+ this.stream.end.unsafeRunFiber();
65
65
  }
66
66
 
67
67
  get unsafeGet(): A {
@@ -111,7 +111,7 @@ class AtomicEmitRef<E, A> extends Atomic<A> {
111
111
 
112
112
  unsafeSet(value: A) {
113
113
  this.ref.unsafeSet(value);
114
- this.emitter.emit(value).unsafeRunAsync();
114
+ this.emitter.emit(value).unsafeRunFiber();
115
115
  }
116
116
 
117
117
  set(value: A, __tsplusTrace?: string) {
@@ -25,7 +25,7 @@ export type STMTypeId = typeof STMTypeId;
25
25
  */
26
26
  export abstract class STM<R, E, A> {
27
27
  readonly [IOTypeId]: IOTypeId = IOTypeId;
28
- readonly ioOpCode = IOOpCode.Commit;
28
+ readonly _tag = IOOpCode.Commit;
29
29
  readonly trace?: string;
30
30
  readonly [STMTypeId]: STMTypeId = STMTypeId;
31
31
  declare [IOVariance]: {
@@ -1,4 +1,4 @@
1
- import type { StateInternal} from "./internal.js";
1
+ import type { StateInternal } from "./internal.js";
2
2
 
3
3
  import { StateVariance } from "./internal.js";
4
4
  import { StateTypeId } from "./internal.js";