@typed/fx 2.0.0-beta.1 → 2.0.0-beta.11

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 (664) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -21
  3. package/dist/Fx/Fx.d.ts +371 -19
  4. package/dist/Fx/Fx.d.ts.map +1 -1
  5. package/dist/Fx/Fx.js +37 -6
  6. package/dist/Fx/TypeId.d.ts +52 -6
  7. package/dist/Fx/TypeId.d.ts.map +1 -1
  8. package/dist/Fx/TypeId.js +41 -4
  9. package/dist/Fx/combinators/additive.d.ts +162 -11
  10. package/dist/Fx/combinators/additive.d.ts.map +1 -1
  11. package/dist/Fx/combinators/additive.js +162 -11
  12. package/dist/Fx/combinators/catch.d.ts +202 -29
  13. package/dist/Fx/combinators/catch.d.ts.map +1 -1
  14. package/dist/Fx/combinators/catch.js +193 -23
  15. package/dist/Fx/combinators/causes.d.ts +25 -2
  16. package/dist/Fx/combinators/causes.d.ts.map +1 -1
  17. package/dist/Fx/combinators/causes.js +25 -2
  18. package/dist/Fx/combinators/changesWithEffect.d.ts +21 -1
  19. package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -1
  20. package/dist/Fx/combinators/changesWithEffect.js +21 -1
  21. package/dist/Fx/combinators/compact.d.ts +18 -1
  22. package/dist/Fx/combinators/compact.d.ts.map +1 -1
  23. package/dist/Fx/combinators/compact.js +18 -1
  24. package/dist/Fx/combinators/concatMap.d.ts +86 -0
  25. package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
  26. package/dist/Fx/combinators/concatMap.js +86 -0
  27. package/dist/Fx/combinators/continueWith.d.ts +113 -5
  28. package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
  29. package/dist/Fx/combinators/continueWith.js +113 -5
  30. package/dist/Fx/combinators/debounce.d.ts +34 -0
  31. package/dist/Fx/combinators/debounce.d.ts.map +1 -0
  32. package/dist/Fx/combinators/debounce.js +35 -0
  33. package/dist/Fx/combinators/delay.d.ts +36 -0
  34. package/dist/Fx/combinators/delay.d.ts.map +1 -0
  35. package/dist/Fx/combinators/delay.js +33 -0
  36. package/dist/Fx/combinators/dropUntil.d.ts +44 -2
  37. package/dist/Fx/combinators/dropUntil.d.ts.map +1 -1
  38. package/dist/Fx/combinators/dropUntil.js +44 -2
  39. package/dist/Fx/combinators/during.d.ts +38 -0
  40. package/dist/Fx/combinators/during.d.ts.map +1 -0
  41. package/dist/Fx/combinators/during.js +85 -0
  42. package/dist/Fx/combinators/ensuring.d.ts +34 -4
  43. package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
  44. package/dist/Fx/combinators/ensuring.js +34 -4
  45. package/dist/Fx/combinators/exhaustLatestMap.d.ts +41 -5
  46. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
  47. package/dist/Fx/combinators/exhaustLatestMap.js +41 -5
  48. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +40 -4
  49. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
  50. package/dist/Fx/combinators/exhaustLatestMapEffect.js +40 -4
  51. package/dist/Fx/combinators/exhaustMap.d.ts +38 -1
  52. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
  53. package/dist/Fx/combinators/exhaustMap.js +38 -1
  54. package/dist/Fx/combinators/exhaustMapEffect.d.ts +33 -1
  55. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
  56. package/dist/Fx/combinators/exhaustMapEffect.js +33 -1
  57. package/dist/Fx/combinators/exit.d.ts +23 -2
  58. package/dist/Fx/combinators/exit.d.ts.map +1 -1
  59. package/dist/Fx/combinators/exit.js +23 -2
  60. package/dist/Fx/combinators/filter.d.ts +17 -1
  61. package/dist/Fx/combinators/filter.d.ts.map +1 -1
  62. package/dist/Fx/combinators/filter.js +17 -1
  63. package/dist/Fx/combinators/filterEffect.d.ts +22 -1
  64. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
  65. package/dist/Fx/combinators/filterEffect.js +22 -1
  66. package/dist/Fx/combinators/filterMap.d.ts +20 -1
  67. package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
  68. package/dist/Fx/combinators/filterMap.js +20 -1
  69. package/dist/Fx/combinators/filterMapEffect.d.ts +21 -1
  70. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
  71. package/dist/Fx/combinators/filterMapEffect.js +21 -1
  72. package/dist/Fx/combinators/filterMapLoop.d.ts +20 -1
  73. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
  74. package/dist/Fx/combinators/filterMapLoop.js +20 -1
  75. package/dist/Fx/combinators/filterMapLoopCause.d.ts +21 -1
  76. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
  77. package/dist/Fx/combinators/filterMapLoopCause.js +21 -1
  78. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +21 -1
  79. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
  80. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +21 -1
  81. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +21 -1
  82. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
  83. package/dist/Fx/combinators/filterMapLoopEffect.js +21 -1
  84. package/dist/Fx/combinators/flatMap.d.ts +50 -5
  85. package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
  86. package/dist/Fx/combinators/flatMap.js +36 -3
  87. package/dist/Fx/combinators/flatMapConcurrently.d.ts +51 -4
  88. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
  89. package/dist/Fx/combinators/flatMapConcurrently.js +48 -2
  90. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +48 -4
  91. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
  92. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +40 -2
  93. package/dist/Fx/combinators/flatMapEffect.d.ts +46 -4
  94. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
  95. package/dist/Fx/combinators/flatMapEffect.js +32 -2
  96. package/dist/Fx/combinators/flip.d.ts +34 -2
  97. package/dist/Fx/combinators/flip.d.ts.map +1 -1
  98. package/dist/Fx/combinators/flip.js +34 -2
  99. package/dist/Fx/combinators/gen.d.ts +29 -10
  100. package/dist/Fx/combinators/gen.d.ts.map +1 -1
  101. package/dist/Fx/combinators/gen.js +28 -4
  102. package/dist/Fx/combinators/genScoped.d.ts +33 -10
  103. package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
  104. package/dist/Fx/combinators/genScoped.js +31 -3
  105. package/dist/Fx/combinators/grouped.d.ts +89 -0
  106. package/dist/Fx/combinators/grouped.d.ts.map +1 -0
  107. package/dist/Fx/combinators/grouped.js +146 -0
  108. package/dist/Fx/combinators/index.d.ts +35 -0
  109. package/dist/Fx/combinators/index.d.ts.map +1 -1
  110. package/dist/Fx/combinators/index.js +35 -0
  111. package/dist/Fx/combinators/keyed.d.ts +123 -9
  112. package/dist/Fx/combinators/keyed.d.ts.map +1 -1
  113. package/dist/Fx/combinators/keyed.js +69 -11
  114. package/dist/Fx/combinators/loop.d.ts +17 -1
  115. package/dist/Fx/combinators/loop.d.ts.map +1 -1
  116. package/dist/Fx/combinators/loop.js +17 -1
  117. package/dist/Fx/combinators/loopCause.d.ts +18 -1
  118. package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
  119. package/dist/Fx/combinators/loopCause.js +18 -1
  120. package/dist/Fx/combinators/loopCauseEffect.d.ts +19 -1
  121. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
  122. package/dist/Fx/combinators/loopCauseEffect.js +19 -1
  123. package/dist/Fx/combinators/loopEffect.d.ts +24 -1
  124. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
  125. package/dist/Fx/combinators/loopEffect.js +24 -1
  126. package/dist/Fx/combinators/map.d.ts +46 -1
  127. package/dist/Fx/combinators/map.d.ts.map +1 -1
  128. package/dist/Fx/combinators/map.js +43 -1
  129. package/dist/Fx/combinators/mapBoth.d.ts +20 -1
  130. package/dist/Fx/combinators/mapBoth.d.ts.map +1 -1
  131. package/dist/Fx/combinators/mapBoth.js +20 -1
  132. package/dist/Fx/combinators/mapEffect.d.ts +25 -1
  133. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
  134. package/dist/Fx/combinators/mapEffect.js +25 -1
  135. package/dist/Fx/combinators/mapError.d.ts +21 -5
  136. package/dist/Fx/combinators/mapError.d.ts.map +1 -1
  137. package/dist/Fx/combinators/mapError.js +21 -5
  138. package/dist/Fx/combinators/mergeAll.d.ts +35 -1
  139. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
  140. package/dist/Fx/combinators/mergeAll.js +35 -1
  141. package/dist/Fx/combinators/mergeOrdered.d.ts +36 -4
  142. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
  143. package/dist/Fx/combinators/mergeOrdered.js +68 -14
  144. package/dist/Fx/combinators/onError.d.ts +34 -4
  145. package/dist/Fx/combinators/onError.d.ts.map +1 -1
  146. package/dist/Fx/combinators/onError.js +34 -4
  147. package/dist/Fx/combinators/onExit.d.ts +29 -3
  148. package/dist/Fx/combinators/onExit.d.ts.map +1 -1
  149. package/dist/Fx/combinators/onExit.js +29 -3
  150. package/dist/Fx/combinators/onInterrupt.d.ts +49 -4
  151. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
  152. package/dist/Fx/combinators/onInterrupt.js +49 -4
  153. package/dist/Fx/combinators/pairwise.d.ts +28 -0
  154. package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
  155. package/dist/Fx/combinators/pairwise.js +31 -0
  156. package/dist/Fx/combinators/provide.d.ts +141 -20
  157. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  158. package/dist/Fx/combinators/provide.js +137 -16
  159. package/dist/Fx/combinators/race.d.ts +92 -0
  160. package/dist/Fx/combinators/race.d.ts.map +1 -0
  161. package/dist/Fx/combinators/race.js +149 -0
  162. package/dist/Fx/combinators/repeat.d.ts +41 -0
  163. package/dist/Fx/combinators/repeat.d.ts.map +1 -0
  164. package/dist/Fx/combinators/repeat.js +57 -0
  165. package/dist/Fx/combinators/result.d.ts +23 -1
  166. package/dist/Fx/combinators/result.d.ts.map +1 -1
  167. package/dist/Fx/combinators/result.js +27 -13
  168. package/dist/Fx/combinators/retry.d.ts +53 -0
  169. package/dist/Fx/combinators/retry.d.ts.map +1 -0
  170. package/dist/Fx/combinators/retry.js +71 -0
  171. package/dist/Fx/combinators/sample.d.ts +31 -0
  172. package/dist/Fx/combinators/sample.d.ts.map +1 -0
  173. package/dist/Fx/combinators/sample.js +42 -0
  174. package/dist/Fx/combinators/scan.d.ts +41 -2
  175. package/dist/Fx/combinators/scan.d.ts.map +1 -1
  176. package/dist/Fx/combinators/scan.js +43 -4
  177. package/dist/Fx/combinators/since.d.ts +30 -0
  178. package/dist/Fx/combinators/since.d.ts.map +1 -0
  179. package/dist/Fx/combinators/since.js +39 -0
  180. package/dist/Fx/combinators/skip.d.ts +33 -2
  181. package/dist/Fx/combinators/skip.d.ts.map +1 -1
  182. package/dist/Fx/combinators/skip.js +33 -2
  183. package/dist/Fx/combinators/skipRepeats.d.ts +17 -1
  184. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
  185. package/dist/Fx/combinators/skipRepeats.js +17 -1
  186. package/dist/Fx/combinators/skipRepeatsWith.d.ts +18 -1
  187. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
  188. package/dist/Fx/combinators/skipRepeatsWith.js +18 -1
  189. package/dist/Fx/combinators/skipWhile.d.ts +72 -4
  190. package/dist/Fx/combinators/skipWhile.d.ts.map +1 -1
  191. package/dist/Fx/combinators/skipWhile.js +72 -4
  192. package/dist/Fx/combinators/slice.d.ts +85 -3
  193. package/dist/Fx/combinators/slice.d.ts.map +1 -1
  194. package/dist/Fx/combinators/slice.js +35 -2
  195. package/dist/Fx/combinators/switchMap.d.ts +39 -1
  196. package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
  197. package/dist/Fx/combinators/switchMap.js +43 -5
  198. package/dist/Fx/combinators/switchMapEffect.d.ts +38 -1
  199. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
  200. package/dist/Fx/combinators/switchMapEffect.js +38 -1
  201. package/dist/Fx/combinators/take.d.ts +34 -2
  202. package/dist/Fx/combinators/take.d.ts.map +1 -1
  203. package/dist/Fx/combinators/take.js +34 -2
  204. package/dist/Fx/combinators/takeUntil.d.ts +49 -3
  205. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
  206. package/dist/Fx/combinators/takeUntil.js +49 -3
  207. package/dist/Fx/combinators/takeWhile.d.ts +33 -2
  208. package/dist/Fx/combinators/takeWhile.d.ts.map +1 -1
  209. package/dist/Fx/combinators/takeWhile.js +33 -2
  210. package/dist/Fx/combinators/tapEffect.d.ts +17 -1
  211. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
  212. package/dist/Fx/combinators/tapEffect.js +17 -1
  213. package/dist/Fx/combinators/throttle.d.ts +79 -0
  214. package/dist/Fx/combinators/throttle.d.ts.map +1 -0
  215. package/dist/Fx/combinators/throttle.js +99 -0
  216. package/dist/Fx/combinators/timeout.d.ts +76 -0
  217. package/dist/Fx/combinators/timeout.d.ts.map +1 -0
  218. package/dist/Fx/combinators/timeout.js +110 -0
  219. package/dist/Fx/combinators/tuple.d.ts +32 -2
  220. package/dist/Fx/combinators/tuple.d.ts.map +1 -1
  221. package/dist/Fx/combinators/tuple.js +36 -5
  222. package/dist/Fx/combinators/until.d.ts +27 -0
  223. package/dist/Fx/combinators/until.d.ts.map +1 -0
  224. package/dist/Fx/combinators/until.js +56 -0
  225. package/dist/Fx/combinators/unwrap.d.ts +31 -2
  226. package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
  227. package/dist/Fx/combinators/unwrap.js +30 -1
  228. package/dist/Fx/combinators/unwrapScoped.d.ts +34 -1
  229. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
  230. package/dist/Fx/combinators/unwrapScoped.js +34 -1
  231. package/dist/Fx/combinators/when.d.ts +37 -2
  232. package/dist/Fx/combinators/when.d.ts.map +1 -1
  233. package/dist/Fx/combinators/when.js +38 -3
  234. package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
  235. package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
  236. package/dist/Fx/combinators/withLatestFrom.js +68 -0
  237. package/dist/Fx/combinators/withSpan.d.ts +35 -1
  238. package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
  239. package/dist/Fx/combinators/withSpan.js +34 -3
  240. package/dist/Fx/combinators/zip.d.ts +64 -4
  241. package/dist/Fx/combinators/zip.d.ts.map +1 -1
  242. package/dist/Fx/combinators/zip.js +64 -4
  243. package/dist/Fx/constructors/at.d.ts +21 -1
  244. package/dist/Fx/constructors/at.d.ts.map +1 -1
  245. package/dist/Fx/constructors/at.js +21 -1
  246. package/dist/Fx/constructors/die.d.ts +22 -1
  247. package/dist/Fx/constructors/die.d.ts.map +1 -1
  248. package/dist/Fx/constructors/die.js +22 -1
  249. package/dist/Fx/constructors/empty.d.ts +19 -1
  250. package/dist/Fx/constructors/empty.d.ts.map +1 -1
  251. package/dist/Fx/constructors/empty.js +19 -1
  252. package/dist/Fx/constructors/fail.d.ts +22 -1
  253. package/dist/Fx/constructors/fail.d.ts.map +1 -1
  254. package/dist/Fx/constructors/fail.js +22 -1
  255. package/dist/Fx/constructors/failCause.d.ts +23 -1
  256. package/dist/Fx/constructors/failCause.d.ts.map +1 -1
  257. package/dist/Fx/constructors/failCause.js +23 -1
  258. package/dist/Fx/constructors/fn.d.ts +116 -16
  259. package/dist/Fx/constructors/fn.d.ts.map +1 -1
  260. package/dist/Fx/constructors/fn.js +36 -0
  261. package/dist/Fx/constructors/fromEffect.d.ts +45 -3
  262. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
  263. package/dist/Fx/constructors/fromEffect.js +45 -3
  264. package/dist/Fx/constructors/fromFailures.d.ts +25 -1
  265. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
  266. package/dist/Fx/constructors/fromFailures.js +25 -1
  267. package/dist/Fx/constructors/fromIterable.d.ts +23 -1
  268. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
  269. package/dist/Fx/constructors/fromIterable.js +23 -1
  270. package/dist/Fx/constructors/fromSchedule.d.ts +26 -1
  271. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
  272. package/dist/Fx/constructors/fromSchedule.js +28 -3
  273. package/dist/Fx/constructors/index.d.ts +2 -1
  274. package/dist/Fx/constructors/index.d.ts.map +1 -1
  275. package/dist/Fx/constructors/index.js +2 -1
  276. package/dist/Fx/constructors/interrupt.d.ts +22 -2
  277. package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
  278. package/dist/Fx/constructors/interrupt.js +22 -2
  279. package/dist/Fx/constructors/make.d.ts +151 -4
  280. package/dist/Fx/constructors/make.d.ts.map +1 -1
  281. package/dist/Fx/constructors/make.js +60 -7
  282. package/dist/Fx/constructors/periodic.d.ts +30 -1
  283. package/dist/Fx/constructors/periodic.d.ts.map +1 -1
  284. package/dist/Fx/constructors/periodic.js +30 -1
  285. package/dist/Fx/constructors/succeed.d.ts +79 -7
  286. package/dist/Fx/constructors/succeed.d.ts.map +1 -1
  287. package/dist/Fx/constructors/succeed.js +79 -7
  288. package/dist/Fx/constructors/suspend.d.ts +28 -0
  289. package/dist/Fx/constructors/suspend.d.ts.map +1 -1
  290. package/dist/Fx/constructors/suspend.js +28 -0
  291. package/dist/Fx/constructors/sync.d.ts +32 -0
  292. package/dist/Fx/constructors/sync.d.ts.map +1 -0
  293. package/dist/Fx/constructors/sync.js +32 -0
  294. package/dist/Fx/internal/DeferredRef.d.ts +259 -7
  295. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
  296. package/dist/Fx/internal/DeferredRef.js +260 -9
  297. package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
  298. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
  299. package/dist/Fx/internal/diff.d.ts +586 -0
  300. package/dist/Fx/internal/diff.d.ts.map +1 -1
  301. package/dist/Fx/internal/diff.js +120 -9
  302. package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
  303. package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
  304. package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
  305. package/dist/Fx/internal/effectableWithOverride.d.ts +70 -0
  306. package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
  307. package/dist/Fx/internal/effectableWithOverride.js +54 -0
  308. package/dist/Fx/internal/equivalence.d.ts +29 -0
  309. package/dist/Fx/internal/equivalence.d.ts.map +1 -1
  310. package/dist/Fx/internal/equivalence.js +29 -0
  311. package/dist/Fx/internal/multicast.d.ts +145 -2
  312. package/dist/Fx/internal/multicast.d.ts.map +1 -1
  313. package/dist/Fx/internal/multicast.js +146 -4
  314. package/dist/Fx/internal/ring-buffer.d.ts +149 -0
  315. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
  316. package/dist/Fx/internal/ring-buffer.js +155 -0
  317. package/dist/Fx/internal/scope.d.ts +184 -0
  318. package/dist/Fx/internal/scope.d.ts.map +1 -1
  319. package/dist/Fx/internal/scope.js +150 -0
  320. package/dist/Fx/internal/yieldable.d.ts +117 -2
  321. package/dist/Fx/internal/yieldable.d.ts.map +1 -1
  322. package/dist/Fx/internal/yieldable.js +86 -3
  323. package/dist/Fx/run/collect.d.ts +93 -4
  324. package/dist/Fx/run/collect.d.ts.map +1 -1
  325. package/dist/Fx/run/collect.js +94 -5
  326. package/dist/Fx/run/first.d.ts +23 -1
  327. package/dist/Fx/run/first.d.ts.map +1 -1
  328. package/dist/Fx/run/first.js +23 -1
  329. package/dist/Fx/run/fork.d.ts +52 -2
  330. package/dist/Fx/run/fork.d.ts.map +1 -1
  331. package/dist/Fx/run/fork.js +52 -2
  332. package/dist/Fx/run/observe.d.ts +112 -4
  333. package/dist/Fx/run/observe.d.ts.map +1 -1
  334. package/dist/Fx/run/observe.js +137 -16
  335. package/dist/Fx/run/runPromise.d.ts +45 -2
  336. package/dist/Fx/run/runPromise.d.ts.map +1 -1
  337. package/dist/Fx/run/runPromise.js +45 -2
  338. package/dist/Fx/stream.d.ts +92 -0
  339. package/dist/Fx/stream.d.ts.map +1 -1
  340. package/dist/Fx/stream.js +60 -1
  341. package/dist/Push/Push.d.ts +1229 -104
  342. package/dist/Push/Push.d.ts.map +1 -1
  343. package/dist/Push/Push.js +1024 -95
  344. package/dist/RefArray.d.ts +2 -0
  345. package/dist/RefArray.d.ts.map +1 -0
  346. package/dist/RefArray.js +1 -0
  347. package/dist/RefBigDecimal.d.ts +2 -0
  348. package/dist/RefBigDecimal.d.ts.map +1 -0
  349. package/dist/RefBigDecimal.js +1 -0
  350. package/dist/RefBigInt.d.ts +2 -0
  351. package/dist/RefBigInt.d.ts.map +1 -0
  352. package/dist/RefBigInt.js +1 -0
  353. package/dist/RefBoolean.d.ts +2 -0
  354. package/dist/RefBoolean.d.ts.map +1 -0
  355. package/dist/RefBoolean.js +1 -0
  356. package/dist/RefCause.d.ts +2 -0
  357. package/dist/RefCause.d.ts.map +1 -0
  358. package/dist/RefCause.js +1 -0
  359. package/dist/RefChunk.d.ts +2 -0
  360. package/dist/RefChunk.d.ts.map +1 -0
  361. package/dist/RefChunk.js +1 -0
  362. package/dist/RefDateTime.d.ts +2 -0
  363. package/dist/RefDateTime.d.ts.map +1 -0
  364. package/dist/RefDateTime.js +1 -0
  365. package/dist/RefDuration.d.ts +2 -0
  366. package/dist/RefDuration.d.ts.map +1 -0
  367. package/dist/RefDuration.js +1 -0
  368. package/dist/RefGraph.d.ts +2 -0
  369. package/dist/RefGraph.d.ts.map +1 -0
  370. package/dist/RefGraph.js +1 -0
  371. package/dist/RefHashMap.d.ts +2 -0
  372. package/dist/RefHashMap.d.ts.map +1 -0
  373. package/dist/RefHashMap.js +1 -0
  374. package/dist/RefHashRing.d.ts +2 -0
  375. package/dist/RefHashRing.d.ts.map +1 -0
  376. package/dist/RefHashRing.js +1 -0
  377. package/dist/RefHashSet.d.ts +2 -0
  378. package/dist/RefHashSet.d.ts.map +1 -0
  379. package/dist/RefHashSet.js +1 -0
  380. package/dist/RefIterable.d.ts +2 -0
  381. package/dist/RefIterable.d.ts.map +1 -0
  382. package/dist/RefIterable.js +1 -0
  383. package/dist/RefOption.d.ts +2 -0
  384. package/dist/RefOption.d.ts.map +1 -0
  385. package/dist/RefOption.js +1 -0
  386. package/dist/RefRecord.d.ts +2 -0
  387. package/dist/RefRecord.d.ts.map +1 -0
  388. package/dist/RefRecord.js +1 -0
  389. package/dist/RefResult.d.ts +2 -0
  390. package/dist/RefResult.d.ts.map +1 -0
  391. package/dist/RefResult.js +1 -0
  392. package/dist/RefString.d.ts +2 -0
  393. package/dist/RefString.d.ts.map +1 -0
  394. package/dist/RefString.js +1 -0
  395. package/dist/RefStruct.d.ts +2 -0
  396. package/dist/RefStruct.d.ts.map +1 -0
  397. package/dist/RefStruct.js +1 -0
  398. package/dist/RefSubject/Hydration.d.ts +504 -0
  399. package/dist/RefSubject/Hydration.d.ts.map +1 -0
  400. package/dist/RefSubject/Hydration.js +300 -0
  401. package/dist/RefSubject/RefArray.d.ts +382 -35
  402. package/dist/RefSubject/RefArray.d.ts.map +1 -1
  403. package/dist/RefSubject/RefArray.js +374 -40
  404. package/dist/RefSubject/RefBigDecimal.d.ts +241 -21
  405. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
  406. package/dist/RefSubject/RefBigDecimal.js +229 -20
  407. package/dist/RefSubject/RefBigInt.d.ts +181 -16
  408. package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
  409. package/dist/RefSubject/RefBigInt.js +169 -15
  410. package/dist/RefSubject/RefBoolean.d.ts +181 -16
  411. package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
  412. package/dist/RefSubject/RefBoolean.js +169 -15
  413. package/dist/RefSubject/RefCause.d.ts +133 -12
  414. package/dist/RefSubject/RefCause.d.ts.map +1 -1
  415. package/dist/RefSubject/RefCause.js +121 -11
  416. package/dist/RefSubject/RefChunk.d.ts +481 -76
  417. package/dist/RefSubject/RefChunk.d.ts.map +1 -1
  418. package/dist/RefSubject/RefChunk.js +471 -75
  419. package/dist/RefSubject/RefDateTime.d.ts +133 -12
  420. package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
  421. package/dist/RefSubject/RefDateTime.js +122 -12
  422. package/dist/RefSubject/RefDuration.d.ts +169 -15
  423. package/dist/RefSubject/RefDuration.d.ts.map +1 -1
  424. package/dist/RefSubject/RefDuration.js +157 -14
  425. package/dist/RefSubject/RefGraph.d.ts +349 -35
  426. package/dist/RefSubject/RefGraph.d.ts.map +1 -1
  427. package/dist/RefSubject/RefGraph.js +334 -32
  428. package/dist/RefSubject/RefHashMap.d.ts +323 -28
  429. package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
  430. package/dist/RefSubject/RefHashMap.js +317 -29
  431. package/dist/RefSubject/RefHashRing.d.ts +159 -15
  432. package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
  433. package/dist/RefSubject/RefHashRing.js +145 -12
  434. package/dist/RefSubject/RefHashSet.d.ts +251 -22
  435. package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
  436. package/dist/RefSubject/RefHashSet.js +238 -20
  437. package/dist/RefSubject/RefIterable.d.ts +358 -32
  438. package/dist/RefSubject/RefIterable.d.ts.map +1 -1
  439. package/dist/RefSubject/RefIterable.js +350 -30
  440. package/dist/RefSubject/RefOption.d.ts +157 -14
  441. package/dist/RefSubject/RefOption.d.ts.map +1 -1
  442. package/dist/RefSubject/RefOption.js +145 -13
  443. package/dist/RefSubject/RefRecord.d.ts +402 -64
  444. package/dist/RefSubject/RefRecord.d.ts.map +1 -1
  445. package/dist/RefSubject/RefRecord.js +364 -39
  446. package/dist/RefSubject/RefResult.d.ts +167 -35
  447. package/dist/RefSubject/RefResult.d.ts.map +1 -1
  448. package/dist/RefSubject/RefResult.js +133 -12
  449. package/dist/RefSubject/RefString.d.ts +205 -18
  450. package/dist/RefSubject/RefString.d.ts.map +1 -1
  451. package/dist/RefSubject/RefString.js +193 -17
  452. package/dist/RefSubject/RefStruct.d.ts +169 -14
  453. package/dist/RefSubject/RefStruct.d.ts.map +1 -1
  454. package/dist/RefSubject/RefStruct.js +157 -13
  455. package/dist/RefSubject/RefSubject.d.ts +1197 -45
  456. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  457. package/dist/RefSubject/RefSubject.js +935 -88
  458. package/dist/RefSubject/RefTrie.d.ts +323 -37
  459. package/dist/RefSubject/RefTrie.d.ts.map +1 -1
  460. package/dist/RefSubject/RefTrie.js +311 -31
  461. package/dist/RefSubject/RefTuple.d.ts +127 -11
  462. package/dist/RefSubject/RefTuple.d.ts.map +1 -1
  463. package/dist/RefSubject/RefTuple.js +114 -9
  464. package/dist/RefSubject/index.d.ts +1 -0
  465. package/dist/RefSubject/index.d.ts.map +1 -1
  466. package/dist/RefSubject/index.js +1 -0
  467. package/dist/RefSubject.d.ts +2 -1
  468. package/dist/RefSubject.d.ts.map +1 -1
  469. package/dist/RefSubject.js +2 -1
  470. package/dist/RefTrie.d.ts +2 -0
  471. package/dist/RefTrie.d.ts.map +1 -0
  472. package/dist/RefTrie.js +1 -0
  473. package/dist/RefTuple.d.ts +2 -0
  474. package/dist/RefTuple.d.ts.map +1 -0
  475. package/dist/RefTuple.js +1 -0
  476. package/dist/Sink/Sink.d.ts +396 -23
  477. package/dist/Sink/Sink.d.ts.map +1 -1
  478. package/dist/Sink/Sink.js +55 -7
  479. package/dist/Sink/combinators.d.ts +740 -11
  480. package/dist/Sink/combinators.d.ts.map +1 -1
  481. package/dist/Sink/combinators.js +716 -14
  482. package/dist/Subject/Subject.d.ts +1022 -27
  483. package/dist/Subject/Subject.d.ts.map +1 -1
  484. package/dist/Subject/Subject.js +909 -43
  485. package/dist/Versioned/Versioned.d.ts +447 -27
  486. package/dist/Versioned/Versioned.d.ts.map +1 -1
  487. package/dist/Versioned/Versioned.js +282 -48
  488. package/dist/index.d.ts +22 -3
  489. package/dist/index.d.ts.map +1 -1
  490. package/dist/index.js +22 -3
  491. package/package.json +126 -16
  492. package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
  493. package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
  494. package/dist/Fx/constructors/fromYieldable.js +0 -12
  495. package/src/Fx/Fx.ts +0 -164
  496. package/src/Fx/TypeId.ts +0 -25
  497. package/src/Fx/combinators/additive.ts +0 -142
  498. package/src/Fx/combinators/catch.ts +0 -421
  499. package/src/Fx/combinators/causes.ts +0 -23
  500. package/src/Fx/combinators/changesWithEffect.ts +0 -66
  501. package/src/Fx/combinators/compact.ts +0 -15
  502. package/src/Fx/combinators/continueWith.ts +0 -78
  503. package/src/Fx/combinators/dropUntil.ts +0 -47
  504. package/src/Fx/combinators/ensuring.ts +0 -23
  505. package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
  506. package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
  507. package/src/Fx/combinators/exhaustMap.ts +0 -36
  508. package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
  509. package/src/Fx/combinators/exit.ts +0 -15
  510. package/src/Fx/combinators/filter.ts +0 -22
  511. package/src/Fx/combinators/filterEffect.ts +0 -31
  512. package/src/Fx/combinators/filterMap.ts +0 -23
  513. package/src/Fx/combinators/filterMapEffect.ts +0 -32
  514. package/src/Fx/combinators/filterMapLoop.ts +0 -35
  515. package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
  516. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
  517. package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
  518. package/src/Fx/combinators/flatMap.ts +0 -51
  519. package/src/Fx/combinators/flatMapConcurrently.ts +0 -39
  520. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
  521. package/src/Fx/combinators/flatMapEffect.ts +0 -42
  522. package/src/Fx/combinators/flip.ts +0 -14
  523. package/src/Fx/combinators/gen.ts +0 -24
  524. package/src/Fx/combinators/genScoped.ts +0 -24
  525. package/src/Fx/combinators/index.ts +0 -61
  526. package/src/Fx/combinators/keyed.ts +0 -369
  527. package/src/Fx/combinators/loop.ts +0 -27
  528. package/src/Fx/combinators/loopCause.ts +0 -34
  529. package/src/Fx/combinators/loopCauseEffect.ts +0 -36
  530. package/src/Fx/combinators/loopEffect.ts +0 -34
  531. package/src/Fx/combinators/map.ts +0 -22
  532. package/src/Fx/combinators/mapBoth.ts +0 -40
  533. package/src/Fx/combinators/mapEffect.ts +0 -32
  534. package/src/Fx/combinators/mapError.ts +0 -28
  535. package/src/Fx/combinators/mergeAll.ts +0 -22
  536. package/src/Fx/combinators/mergeOrdered.ts +0 -123
  537. package/src/Fx/combinators/onError.ts +0 -40
  538. package/src/Fx/combinators/onExit.ts +0 -82
  539. package/src/Fx/combinators/onInterrupt.ts +0 -87
  540. package/src/Fx/combinators/provide.ts +0 -124
  541. package/src/Fx/combinators/result.ts +0 -39
  542. package/src/Fx/combinators/scan.ts +0 -82
  543. package/src/Fx/combinators/skip.ts +0 -41
  544. package/src/Fx/combinators/skipRepeats.ts +0 -15
  545. package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
  546. package/src/Fx/combinators/skipWhile.ts +0 -100
  547. package/src/Fx/combinators/slice.ts +0 -55
  548. package/src/Fx/combinators/switchMap.ts +0 -55
  549. package/src/Fx/combinators/switchMapEffect.ts +0 -25
  550. package/src/Fx/combinators/take.ts +0 -38
  551. package/src/Fx/combinators/takeUntil.ts +0 -88
  552. package/src/Fx/combinators/takeWhile.ts +0 -47
  553. package/src/Fx/combinators/tapEffect.ts +0 -39
  554. package/src/Fx/combinators/tuple.ts +0 -79
  555. package/src/Fx/combinators/unwrap.ts +0 -21
  556. package/src/Fx/combinators/unwrapScoped.ts +0 -26
  557. package/src/Fx/combinators/when.ts +0 -64
  558. package/src/Fx/combinators/withSpan.ts +0 -24
  559. package/src/Fx/combinators/zip.ts +0 -175
  560. package/src/Fx/constructors/at.ts +0 -23
  561. package/src/Fx/constructors/die.ts +0 -17
  562. package/src/Fx/constructors/empty.ts +0 -10
  563. package/src/Fx/constructors/fail.ts +0 -14
  564. package/src/Fx/constructors/failCause.ts +0 -14
  565. package/src/Fx/constructors/fn.ts +0 -245
  566. package/src/Fx/constructors/fromEffect.ts +0 -24
  567. package/src/Fx/constructors/fromFailures.ts +0 -19
  568. package/src/Fx/constructors/fromIterable.ts +0 -15
  569. package/src/Fx/constructors/fromSchedule.ts +0 -18
  570. package/src/Fx/constructors/fromYieldable.ts +0 -17
  571. package/src/Fx/constructors/index.ts +0 -15
  572. package/src/Fx/constructors/interrupt.ts +0 -13
  573. package/src/Fx/constructors/make.ts +0 -103
  574. package/src/Fx/constructors/periodic.ts +0 -15
  575. package/src/Fx/constructors/succeed.ts +0 -37
  576. package/src/Fx/constructors/suspend.ts +0 -6
  577. package/src/Fx/index.ts +0 -6
  578. package/src/Fx/internal/DeferredRef.ts +0 -87
  579. package/src/Fx/internal/UnionToTuple.ts +0 -12
  580. package/src/Fx/internal/diff.ts +0 -191
  581. package/src/Fx/internal/equivalence.ts +0 -12
  582. package/src/Fx/internal/multicast.ts +0 -51
  583. package/src/Fx/internal/ring-buffer.ts +0 -60
  584. package/src/Fx/internal/scope.ts +0 -58
  585. package/src/Fx/internal/yieldable.ts +0 -31
  586. package/src/Fx/run/collect.ts +0 -79
  587. package/src/Fx/run/first.ts +0 -20
  588. package/src/Fx/run/fork.ts +0 -40
  589. package/src/Fx/run/index.ts +0 -5
  590. package/src/Fx/run/observe.ts +0 -114
  591. package/src/Fx/run/runPromise.ts +0 -32
  592. package/src/Fx/stream.ts +0 -42
  593. package/src/Fx.additive-combinators.test.ts +0 -126
  594. package/src/Fx.catch-additive.test.ts +0 -206
  595. package/src/Fx.catch.test.ts +0 -60
  596. package/src/Fx.dropUntil.test.ts +0 -61
  597. package/src/Fx.fn.test.ts +0 -51
  598. package/src/Fx.lifecycle.test.ts +0 -79
  599. package/src/Fx.mapError-mapBoth.test.ts +0 -101
  600. package/src/Fx.provide-combinators.test.ts +0 -94
  601. package/src/Fx.result-changesWithEffect.test.ts +0 -112
  602. package/src/Fx.scan.test.ts +0 -73
  603. package/src/Fx.takeWhile-skipWhile.test.ts +0 -84
  604. package/src/Fx.test.ts +0 -71
  605. package/src/Fx.ts +0 -1
  606. package/src/Fx.zip-merge-additive.test.ts +0 -171
  607. package/src/Fx.zip.test.ts +0 -133
  608. package/src/Push/Push.ts +0 -1072
  609. package/src/Push/index.ts +0 -1
  610. package/src/Push.additive.test.ts +0 -256
  611. package/src/Push.test.ts +0 -26
  612. package/src/Push.ts +0 -1
  613. package/src/RefSubject/RefArray.ts +0 -512
  614. package/src/RefSubject/RefBigDecimal.test.ts +0 -56
  615. package/src/RefSubject/RefBigDecimal.ts +0 -295
  616. package/src/RefSubject/RefBigInt.test.ts +0 -56
  617. package/src/RefSubject/RefBigInt.ts +0 -189
  618. package/src/RefSubject/RefBoolean.test.ts +0 -57
  619. package/src/RefSubject/RefBoolean.ts +0 -185
  620. package/src/RefSubject/RefCause.test.ts +0 -53
  621. package/src/RefSubject/RefCause.ts +0 -146
  622. package/src/RefSubject/RefChunk.ts +0 -510
  623. package/src/RefSubject/RefDateTime.test.ts +0 -43
  624. package/src/RefSubject/RefDateTime.ts +0 -264
  625. package/src/RefSubject/RefDuration.test.ts +0 -49
  626. package/src/RefSubject/RefDuration.ts +0 -188
  627. package/src/RefSubject/RefGraph.ts +0 -650
  628. package/src/RefSubject/RefHashMap.ts +0 -465
  629. package/src/RefSubject/RefHashRing.ts +0 -262
  630. package/src/RefSubject/RefHashSet.ts +0 -308
  631. package/src/RefSubject/RefIterable.ts +0 -445
  632. package/src/RefSubject/RefOption.test.ts +0 -67
  633. package/src/RefSubject/RefOption.ts +0 -193
  634. package/src/RefSubject/RefRecord.ts +0 -612
  635. package/src/RefSubject/RefResult.test.ts +0 -63
  636. package/src/RefSubject/RefResult.ts +0 -209
  637. package/src/RefSubject/RefString.test.ts +0 -61
  638. package/src/RefSubject/RefString.ts +0 -256
  639. package/src/RefSubject/RefStruct.test.ts +0 -60
  640. package/src/RefSubject/RefStruct.ts +0 -253
  641. package/src/RefSubject/RefSubject.ts +0 -2646
  642. package/src/RefSubject/RefTrie.ts +0 -356
  643. package/src/RefSubject/RefTuple.test.ts +0 -60
  644. package/src/RefSubject/RefTuple.ts +0 -231
  645. package/src/RefSubject/index.ts +0 -21
  646. package/src/RefSubject.additive-parity.test.ts +0 -101
  647. package/src/RefSubject.test.ts +0 -65
  648. package/src/RefSubject.ts +0 -1
  649. package/src/Sink/Sink.ts +0 -159
  650. package/src/Sink/combinators.ts +0 -1115
  651. package/src/Sink/index.ts +0 -2
  652. package/src/Sink.combinators.test.ts +0 -88
  653. package/src/Sink.reduce-collect-head-last.test.ts +0 -107
  654. package/src/Sink.ts +0 -1
  655. package/src/Subject/Subject.ts +0 -441
  656. package/src/Subject/index.ts +0 -1
  657. package/src/Subject.test.ts +0 -47
  658. package/src/Subject.ts +0 -1
  659. package/src/Versioned/Versioned.ts +0 -597
  660. package/src/Versioned/index.ts +0 -1
  661. package/src/Versioned.filterMap.test.ts +0 -91
  662. package/src/Versioned.test.ts +0 -23
  663. package/src/Versioned.ts +0 -1
  664. package/src/index.ts +0 -7
@@ -5,157 +5,377 @@
5
5
  import * as Chunk from "effect/Chunk";
6
6
  import { equals } from "effect/Equal";
7
7
  import { dual } from "effect/Function";
8
+ import * as Option from "effect/Option";
8
9
  import * as RefSubject from "./RefSubject.js";
10
+ import { Result } from "effect";
9
11
  /**
10
12
  * Creates a new `RefChunk` from a Chunk, `Effect`, or `Fx`.
11
- * @since 1.18.0
12
- * @category constructors
13
+ * @remarks
14
+ * ## Why
15
+ *
16
+ * Creates chunk state with equality suited to that Effect data type, so unchanged values do not
17
+ * produce redundant pushed updates.
18
+ *
19
+ * ## Ownership and lifetime
20
+ *
21
+ * The creation Effect requires Scope. It owns initializer acquisition, live source subscriptions,
22
+ * and cleanup; source failures and services stay on reads and pushes.
23
+ *
24
+ * @since 1.18.0
25
+ * @category Constructors
13
26
  */
14
27
  export function make(initial, eq = equals) {
15
28
  return RefSubject.make(initial, { eq: Chunk.makeEquivalence(eq) });
16
29
  }
17
30
  /**
18
31
  * Prepend a value to the current state of a RefChunk.
19
- * @since 1.18.0
20
- * @category combinators
32
+ * @remarks
33
+ * ## Why
34
+ *
35
+ * Expresses prepend as one ordered chunk transition; readers never observe the intermediate
36
+ * collection used to build the result.
37
+ *
38
+ * ## Ownership and lifetime
39
+ *
40
+ * Running prepend performs one serialized chunk transition and resolves with its committed value.
41
+ * It acquires no resource; failures and services remain those of the source ref.
42
+ *
43
+ * @since 1.18.0
44
+ * @category State updates
21
45
  */
22
46
  export const prepend = dual(2, function prepend(ref, value) {
23
47
  return RefSubject.update(ref, Chunk.prepend(value));
24
48
  });
25
49
  /**
26
50
  * Prepend an iterable of values to the current state of a RefChunk.
27
- * @since 1.18.0
28
- * @category combinators
51
+ * @remarks
52
+ * ## Why
53
+ *
54
+ * Expresses prepend all as one ordered chunk transition; readers never observe the intermediate
55
+ * collection used to build the result.
56
+ *
57
+ * ## Ownership and lifetime
58
+ *
59
+ * Running prepend all performs one serialized chunk transition and resolves with its committed
60
+ * value. It acquires no resource; failures and services remain those of the source ref.
61
+ *
62
+ * @since 1.18.0
63
+ * @category State updates
29
64
  */
30
65
  export const prependAll = dual(2, function prependAll(ref, value) {
31
66
  return RefSubject.update(ref, Chunk.prependAll(Chunk.fromIterable(value)));
32
67
  });
33
68
  /**
34
69
  * Append a value to the current state of a RefChunk.
35
- * @since 1.18.0
36
- * @category combinators
70
+ * @remarks
71
+ * ## Why
72
+ *
73
+ * Expresses append as one ordered chunk transition; readers never observe the intermediate
74
+ * collection used to build the result.
75
+ *
76
+ * ## Ownership and lifetime
77
+ *
78
+ * Running append performs one serialized chunk transition and resolves with its committed value.
79
+ * It acquires no resource; failures and services remain those of the source ref.
80
+ *
81
+ * @since 1.18.0
82
+ * @category State updates
37
83
  */
38
84
  export const append = dual(2, function append(ref, value) {
39
85
  return RefSubject.update(ref, Chunk.append(value));
40
86
  });
41
87
  /**
42
88
  * Append an iterable of values to the current state of a RefChunk.
43
- * @since 1.18.0
44
- * @category combinators
89
+ * @remarks
90
+ * ## Why
91
+ *
92
+ * Expresses append all as one ordered chunk transition; readers never observe the intermediate
93
+ * collection used to build the result.
94
+ *
95
+ * ## Ownership and lifetime
96
+ *
97
+ * Running append all performs one serialized chunk transition and resolves with its committed
98
+ * value. It acquires no resource; failures and services remain those of the source ref.
99
+ *
100
+ * @since 1.18.0
101
+ * @category State updates
45
102
  */
46
103
  export const appendAll = dual(2, function appendAll(ref, value) {
47
104
  return RefSubject.update(ref, Chunk.appendAll(Chunk.fromIterable(value)));
48
105
  });
49
106
  /**
50
107
  * Drop the first `n` values from a RefChunk.
51
- * @since 1.18.0
52
- * @category combinators
108
+ * @remarks
109
+ * ## Why
110
+ *
111
+ * Applies drop to the committed chunk value and publishes only the result, preserving its element
112
+ * order and equality rules.
113
+ *
114
+ * ## Ownership and lifetime
115
+ *
116
+ * Running drop performs one serialized chunk transition and resolves with its committed value. It
117
+ * acquires no resource; failures and services remain those of the source ref.
118
+ *
119
+ * @since 1.18.0
120
+ * @category State updates
53
121
  */
54
122
  export const drop = dual(2, function drop(ref, n) {
55
123
  return RefSubject.update(ref, Chunk.drop(n));
56
124
  });
57
125
  /**
58
126
  * Drop the last `n` values from a RefChunk.
59
- * @since 1.18.0
60
- * @category combinators
127
+ * @remarks
128
+ * ## Why
129
+ *
130
+ * Applies drop right to the committed chunk value and publishes only the result, preserving its
131
+ * element order and equality rules.
132
+ *
133
+ * ## Ownership and lifetime
134
+ *
135
+ * Running drop right performs one serialized chunk transition and resolves with its committed
136
+ * value. It acquires no resource; failures and services remain those of the source ref.
137
+ *
138
+ * @since 1.18.0
139
+ * @category State updates
61
140
  */
62
141
  export const dropRight = dual(2, function dropRight(ref, n) {
63
142
  return RefSubject.update(ref, Chunk.dropRight(n));
64
143
  });
65
144
  /**
66
145
  * Drop values from a RefChunk while a predicate is true.
67
- * @since 1.18.0
68
- * @category combinators
146
+ * @remarks
147
+ * ## Why
148
+ *
149
+ * Applies drop while to the committed chunk value and publishes only the result, preserving its
150
+ * element order and equality rules.
151
+ *
152
+ * ## Ownership and lifetime
153
+ *
154
+ * Running drop while performs one serialized chunk transition and resolves with its committed
155
+ * value. It acquires no resource; failures and services remain those of the source ref.
156
+ *
157
+ * @since 1.18.0
158
+ * @category State updates
69
159
  */
70
160
  export const dropWhile = dual(2, function dropWhile(ref, predicate) {
71
161
  return RefSubject.update(ref, Chunk.dropWhile(predicate));
72
162
  });
73
163
  /**
74
164
  * Take the first `n` values from a RefChunk.
75
- * @since 1.18.0
76
- * @category combinators
165
+ * @remarks
166
+ * ## Why
167
+ *
168
+ * Applies take to the committed chunk value and publishes only the result, preserving its element
169
+ * order and equality rules.
170
+ *
171
+ * ## Ownership and lifetime
172
+ *
173
+ * Running take performs one serialized chunk transition and resolves with its committed value. It
174
+ * acquires no resource; failures and services remain those of the source ref.
175
+ *
176
+ * @since 1.18.0
177
+ * @category State updates
77
178
  */
78
179
  export const take = dual(2, function take(ref, n) {
79
180
  return RefSubject.update(ref, Chunk.take(n));
80
181
  });
81
182
  /**
82
183
  * Take the last `n` values from a RefChunk.
83
- * @since 1.18.0
84
- * @category combinators
184
+ * @remarks
185
+ * ## Why
186
+ *
187
+ * Applies take right to the committed chunk value and publishes only the result, preserving its
188
+ * element order and equality rules.
189
+ *
190
+ * ## Ownership and lifetime
191
+ *
192
+ * Running take right performs one serialized chunk transition and resolves with its committed
193
+ * value. It acquires no resource; failures and services remain those of the source ref.
194
+ *
195
+ * @since 1.18.0
196
+ * @category State updates
85
197
  */
86
198
  export const takeRight = dual(2, function takeRight(ref, n) {
87
199
  return RefSubject.update(ref, Chunk.takeRight(n));
88
200
  });
89
201
  /**
90
202
  * Take values from a RefChunk while a predicate is true.
91
- * @since 1.18.0
92
- * @category combinators
203
+ * @remarks
204
+ * ## Why
205
+ *
206
+ * Applies take while to the committed chunk value and publishes only the result, preserving its
207
+ * element order and equality rules.
208
+ *
209
+ * ## Ownership and lifetime
210
+ *
211
+ * Running take while performs one serialized chunk transition and resolves with its committed
212
+ * value. It acquires no resource; failures and services remain those of the source ref.
213
+ *
214
+ * @since 1.18.0
215
+ * @category State updates
93
216
  */
94
217
  export const takeWhile = dual(2, function takeWhile(ref, predicate) {
95
218
  return RefSubject.update(ref, Chunk.takeWhile(predicate));
96
219
  });
97
220
  /**
98
221
  * Modify the value at a particular index of a RefChunk.
99
- * @since 1.18.0
100
- * @category combinators
222
+ * @remarks
223
+ * ## Why
224
+ *
225
+ * Keeps modify at atomic with respect to competing RefSubject writes instead of splitting the read
226
+ * and replacement into separate effects.
227
+ *
228
+ * ## Ownership and lifetime
229
+ *
230
+ * Running modify at performs one serialized chunk transition and resolves with its committed
231
+ * value. It acquires no resource; failures and services remain those of the source ref.
232
+ *
233
+ * @since 1.18.0
234
+ * @category State updates
101
235
  */
102
236
  export const modifyAt = dual(3, function modifyAt(ref, index, f) {
103
- return RefSubject.update(ref, (chunk) => Chunk.modify(chunk, index, f) ?? chunk);
237
+ return RefSubject.update(ref, (chunk) => Option.getOrElse(Chunk.modify(chunk, index, f), () => chunk));
104
238
  });
105
239
  /**
106
240
  * Replace a value at a particular index of a RefChunk.
107
- * @since 1.18.0
108
- * @category combinators
241
+ * @remarks
242
+ * ## Why
243
+ *
244
+ * Keeps replace at atomic with respect to competing RefSubject writes instead of splitting the
245
+ * read and replacement into separate effects.
246
+ *
247
+ * ## Ownership and lifetime
248
+ *
249
+ * Running replace at performs one serialized chunk transition and resolves with its committed
250
+ * value. It acquires no resource; failures and services remain those of the source ref.
251
+ *
252
+ * @since 1.18.0
253
+ * @category State updates
109
254
  */
110
255
  export const replaceAt = dual(3, function replaceAt(ref, index, a) {
111
- return RefSubject.update(ref, (chunk) => Chunk.replace(chunk, index, a) ?? chunk);
256
+ return RefSubject.update(ref, (chunk) => Option.getOrElse(Chunk.replace(chunk, index, a), () => chunk));
112
257
  });
113
258
  /**
114
259
  * Remove a value at a particular index of a RefChunk.
115
- * @since 1.18.0
116
- * @category combinators
260
+ * @remarks
261
+ * ## Why
262
+ *
263
+ * Applies remove to the committed chunk value and publishes only the result, preserving its
264
+ * element order and equality rules.
265
+ *
266
+ * ## Ownership and lifetime
267
+ *
268
+ * Running remove performs one serialized chunk transition and resolves with its committed value.
269
+ * It acquires no resource; failures and services remain those of the source ref.
270
+ *
271
+ * @since 1.18.0
272
+ * @category State updates
117
273
  */
118
274
  export const remove = dual(2, function remove(ref, index) {
119
275
  return RefSubject.update(ref, Chunk.remove(index));
120
276
  });
121
277
  /**
122
278
  * Filter the values of a RefChunk (mutating).
123
- * @since 1.18.0
124
- * @category combinators
279
+ * @remarks
280
+ * ## Why
281
+ *
282
+ * Applies filter to the committed chunk through `RefSubject.update` and publishes one coherent
283
+ * replacement; this is a mutation, not a read-only Computed projection.
284
+ *
285
+ * ## Ownership and lifetime
286
+ *
287
+ * The Effect starts when run, participates in the source ref's serialized update boundary, and
288
+ * acquires no resource. It returns the committed chunk and retains the ref's E and R channels.
289
+ * @since 1.18.0
290
+ * @category State updates
125
291
  */
126
292
  export const filter = dual(2, function filter(ref, predicate) {
127
293
  return RefSubject.update(ref, Chunk.filter(predicate));
128
294
  });
129
295
  /**
130
296
  * Map (Endomorphic) the values of a RefChunk.
131
- * @since 1.18.0
132
- * @category combinators
297
+ * @remarks
298
+ * ## Why
299
+ *
300
+ * Applies map to the committed chunk through `RefSubject.update` and publishes one coherent
301
+ * replacement; this is a mutation, not a read-only Computed projection.
302
+ *
303
+ * ## Ownership and lifetime
304
+ *
305
+ * The Effect starts when run, participates in the source ref's serialized update boundary, and
306
+ * acquires no resource. It returns the committed chunk and retains the ref's E and R channels.
307
+ * @since 1.18.0
308
+ * @category State updates
133
309
  */
134
310
  export const map = dual(2, function map(ref, f) {
135
311
  return RefSubject.update(ref, Chunk.map(f));
136
312
  });
137
313
  /**
138
314
  * Remove duplicate values from a RefChunk.
139
- * @since 1.18.0
140
- * @category combinators
315
+ * @remarks
316
+ * ## Why
317
+ *
318
+ * Derives the reordered chunk through its Effect collection operation while retaining RefSubject
319
+ * equality and version tracking.
320
+ *
321
+ * ## Ownership and lifetime
322
+ *
323
+ * Running dedupe performs one serialized chunk transition and resolves with its committed value.
324
+ * It acquires no resource; failures and services remain those of the source ref.
325
+ *
326
+ * @since 1.18.0
327
+ * @category State updates
141
328
  */
142
329
  export const dedupe = (ref) => RefSubject.update(ref, Chunk.dedupe);
143
330
  /**
144
331
  * Remove adjacent duplicate values from a RefChunk.
145
- * @since 1.18.0
146
- * @category combinators
332
+ * @remarks
333
+ * ## Why
334
+ *
335
+ * Derives the reordered chunk through its Effect collection operation while retaining RefSubject
336
+ * equality and version tracking.
337
+ *
338
+ * ## Ownership and lifetime
339
+ *
340
+ * Running dedupe adjacent performs one serialized chunk transition and resolves with its committed
341
+ * value. It acquires no resource; failures and services remain those of the source ref.
342
+ *
343
+ * @since 1.18.0
344
+ * @category State updates
147
345
  */
148
346
  export const dedupeAdjacent = (ref) => RefSubject.update(ref, Chunk.dedupeAdjacent);
149
347
  /**
150
348
  * Reverse the values of a RefChunk.
151
- * @since 1.18.0
152
- * @category combinators
349
+ * @remarks
350
+ * ## Why
351
+ *
352
+ * Derives the reordered chunk through its Effect collection operation while retaining RefSubject
353
+ * equality and version tracking.
354
+ *
355
+ * ## Ownership and lifetime
356
+ *
357
+ * Running reverse performs one serialized chunk transition and resolves with its committed value.
358
+ * It acquires no resource; failures and services remain those of the source ref.
359
+ *
360
+ * @since 1.18.0
361
+ * @category State updates
153
362
  */
154
363
  export const reverse = (ref) => RefSubject.update(ref, Chunk.reverse);
155
364
  /**
156
365
  * Sort the values of a RefChunk using a provided Order.
157
- * @since 1.18.0
158
- * @category combinators
366
+ * @remarks
367
+ * ## Why
368
+ *
369
+ * Derives the reordered chunk through its Effect collection operation while retaining RefSubject
370
+ * equality and version tracking.
371
+ *
372
+ * ## Ownership and lifetime
373
+ *
374
+ * Running sort performs one serialized chunk transition and resolves with its committed value. It
375
+ * acquires no resource; failures and services remain those of the source ref.
376
+ *
377
+ * @since 1.18.0
378
+ * @category State updates
159
379
  */
160
380
  export const sort = dual(2, function sort(ref, order) {
161
381
  return RefSubject.update(ref, Chunk.sort(order));
@@ -165,82 +385,203 @@ export const sort = dual(2, function sort(ref, order) {
165
385
  // ========================================
166
386
  /**
167
387
  * Check if a RefChunk is empty.
168
- * @since 1.18.0
169
- * @category computed
388
+ * @remarks
389
+ * ## Why
390
+ *
391
+ * Makes is empty a live projection of the chunk; consumers can sample it now or observe it without
392
+ * copying the source state.
393
+ *
394
+ * ## Ownership and lifetime
395
+ *
396
+ * The is empty view retains no independent state. An Effect read samples the source once; Fx
397
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
398
+ *
399
+ * @since 1.18.0
400
+ * @category State predicates
170
401
  */
171
402
  export const isEmpty = (ref) => RefSubject.map(ref, Chunk.isEmpty);
172
403
  /**
173
404
  * Check if a RefChunk is non-empty.
174
- * @since 1.18.0
175
- * @category computed
405
+ * @remarks
406
+ * ## Why
407
+ *
408
+ * Makes is non empty a live projection of the chunk; consumers can sample it now or observe it
409
+ * without copying the source state.
410
+ *
411
+ * ## Ownership and lifetime
412
+ *
413
+ * The is non empty view retains no independent state. An Effect read samples the source once; Fx
414
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
415
+ *
416
+ * @since 1.18.0
417
+ * @category State predicates
176
418
  */
177
419
  export const isNonEmpty = (ref) => RefSubject.map(ref, Chunk.isNonEmpty);
178
420
  /**
179
421
  * Get the current size of a RefChunk.
180
- * @since 1.18.0
181
- * @category computed
422
+ * @remarks
423
+ * ## Why
424
+ *
425
+ * Makes size a live projection of the chunk; consumers can sample it now or observe it without
426
+ * copying the source state.
427
+ *
428
+ * ## Ownership and lifetime
429
+ *
430
+ * The size view retains no independent state. An Effect read samples the source once; Fx
431
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
432
+ *
433
+ * @since 1.18.0
434
+ * @category Derived queries
182
435
  */
183
436
  export const size = (ref) => RefSubject.map(ref, Chunk.size);
184
437
  /**
185
438
  * Map the values of a RefChunk to a different type.
186
- * @since 1.18.0
187
- * @category computed
439
+ * @remarks
440
+ * ## Why
441
+ *
442
+ * Projects chunk state with map values for both current reads and future pushes, avoiding a second
443
+ * mutable cache of the derived value.
444
+ *
445
+ * ## Ownership and lifetime
446
+ *
447
+ * The map values view retains no independent state. An Effect read samples the source once; Fx
448
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
449
+ *
450
+ * @since 1.18.0
451
+ * @category Derived queries
188
452
  */
189
453
  export const mapValues = dual(2, function mapValues(ref, f) {
190
454
  return RefSubject.map(ref, Chunk.map(f));
191
455
  });
192
456
  /**
193
457
  * Filter the values of a RefChunk creating a Computed value.
194
- * @since 1.18.0
195
- * @category computed
458
+ * @remarks
459
+ * ## Why
460
+ *
461
+ * Projects chunk state with filter values for both current reads and future pushes, avoiding a
462
+ * second mutable cache of the derived value.
463
+ *
464
+ * ## Ownership and lifetime
465
+ *
466
+ * The filter values view retains no independent state. An Effect read samples the source once; Fx
467
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
468
+ *
469
+ * @since 1.18.0
470
+ * @category Derived queries
196
471
  */
197
472
  export const filterValues = dual(2, function filterValues(ref, predicate) {
198
473
  return RefSubject.map(ref, Chunk.filter(predicate));
199
474
  });
200
475
  /**
201
476
  * Partition the values of a RefChunk using a predicate.
202
- * @since 1.18.0
203
- * @category computed
477
+ * @remarks
478
+ * ## Why
479
+ *
480
+ * Partition the values of a RefChunk using a predicate. The operation remains attached to the
481
+ * RefSubject's versioned state boundary.
482
+ *
483
+ * ## Ownership and lifetime
484
+ *
485
+ * The partition view retains no independent state. An Effect read samples the source once; Fx
486
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
487
+ *
488
+ * @since 1.18.0
489
+ * @category Derived queries
204
490
  */
205
491
  export const partition = dual(2, function partition(ref, predicate) {
206
- return RefSubject.map(ref, Chunk.partition(predicate));
492
+ return RefSubject.map(ref, Chunk.partition(Result.liftPredicate(predicate, Result.fail)));
207
493
  });
208
494
  /**
209
495
  * Reduce the values of a RefChunk to a single value.
210
- * @since 1.18.0
211
- * @category computed
496
+ * @remarks
497
+ * ## Why
498
+ *
499
+ * Makes reduce a live projection of the chunk; consumers can sample it now or observe it without
500
+ * copying the source state.
501
+ *
502
+ * ## Ownership and lifetime
503
+ *
504
+ * The reduce view retains no independent state. An Effect read samples the source once; Fx
505
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
506
+ *
507
+ * @since 1.18.0
508
+ * @category Derived queries
212
509
  */
213
510
  export const reduce = dual(3, function reduce(ref, b, f) {
214
511
  return RefSubject.map(ref, Chunk.reduce(b, f));
215
512
  });
216
513
  /**
217
514
  * Reduce the values of a RefChunk in reverse order.
218
- * @since 1.18.0
219
- * @category computed
515
+ * @remarks
516
+ * ## Why
517
+ *
518
+ * Makes reduce right a live projection of the chunk; consumers can sample it now or observe it
519
+ * without copying the source state.
520
+ *
521
+ * ## Ownership and lifetime
522
+ *
523
+ * The reduce right view retains no independent state. An Effect read samples the source once; Fx
524
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
525
+ *
526
+ * @since 1.18.0
527
+ * @category Derived queries
220
528
  */
221
529
  export const reduceRight = dual(3, function reduceRight(ref, b, f) {
222
530
  return RefSubject.map(ref, Chunk.reduceRight(b, f));
223
531
  });
224
532
  /**
225
533
  * Check if any value satisfies a predicate.
226
- * @since 1.18.0
227
- * @category computed
534
+ * @remarks
535
+ * ## Why
536
+ *
537
+ * Makes some a live projection of the chunk; consumers can sample it now or observe it without
538
+ * copying the source state.
539
+ *
540
+ * ## Ownership and lifetime
541
+ *
542
+ * The some view retains no independent state. An Effect read samples the source once; Fx
543
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
544
+ *
545
+ * @since 1.18.0
546
+ * @category State predicates
228
547
  */
229
548
  export const some = dual(2, function some(ref, predicate) {
230
549
  return RefSubject.map(ref, Chunk.some(predicate));
231
550
  });
232
551
  /**
233
552
  * Check if all values satisfy a predicate.
234
- * @since 1.18.0
235
- * @category computed
553
+ * @remarks
554
+ * ## Why
555
+ *
556
+ * Makes every a live projection of the chunk; consumers can sample it now or observe it without
557
+ * copying the source state.
558
+ *
559
+ * ## Ownership and lifetime
560
+ *
561
+ * The every view retains no independent state. An Effect read samples the source once; Fx
562
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
563
+ *
564
+ * @since 1.18.0
565
+ * @category State predicates
236
566
  */
237
567
  export const every = dual(2, function every(ref, predicate) {
238
568
  return RefSubject.map(ref, Chunk.every(predicate));
239
569
  });
240
570
  /**
241
571
  * Check if a RefChunk contains a value.
242
- * @since 1.18.0
243
- * @category computed
572
+ * @remarks
573
+ * ## Why
574
+ *
575
+ * Makes contains a live projection of the chunk; consumers can sample it now or observe it without
576
+ * copying the source state.
577
+ *
578
+ * ## Ownership and lifetime
579
+ *
580
+ * The contains view retains no independent state. An Effect read samples the source once; Fx
581
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
582
+ *
583
+ * @since 1.18.0
584
+ * @category State predicates
244
585
  */
245
586
  export const contains = dual(2, function contains(ref, value) {
246
587
  return RefSubject.map(ref, Chunk.contains(value));
@@ -250,36 +591,91 @@ export const contains = dual(2, function contains(ref, value) {
250
591
  // ========================================
251
592
  /**
252
593
  * Get a value at a particular index of a RefChunk.
253
- * @since 1.18.0
254
- * @category filtered
594
+ * @remarks
595
+ * ## Why
596
+ *
597
+ * Models the possibly absent result of get index as Filtered state, so absence stays explicit
598
+ * while later source versions can make a value available.
599
+ *
600
+ * ## Ownership and lifetime
601
+ *
602
+ * The get index view retains no independent value. Its Effect read fails with NoSuchElement
603
+ * while absent; the observing Scope owns and finalizes its Fx subscription.
604
+ *
605
+ * @since 1.18.0
606
+ * @category Optional queries
255
607
  */
256
608
  export const getIndex = dual(2, function getIndex(ref, index) {
257
609
  return RefSubject.filterMap(ref, Chunk.get(index));
258
610
  });
259
611
  /**
260
612
  * Get the first element of a RefChunk as a Filtered.
261
- * @since 1.18.0
262
- * @category filtered
613
+ * @remarks
614
+ * ## Why
615
+ *
616
+ * Models the possibly absent result of head as Filtered state, so absence stays explicit while
617
+ * later source versions can make a value available.
618
+ *
619
+ * ## Ownership and lifetime
620
+ *
621
+ * The head view retains no independent value. Its Effect read fails with NoSuchElement
622
+ * while absent; the observing Scope owns and finalizes its Fx subscription.
623
+ *
624
+ * @since 1.18.0
625
+ * @category Optional queries
263
626
  */
264
627
  export const head = (ref) => RefSubject.filterMap(ref, Chunk.head);
265
628
  /**
266
629
  * Get the last element of a RefChunk as a Filtered.
267
- * @since 1.18.0
268
- * @category filtered
630
+ * @remarks
631
+ * ## Why
632
+ *
633
+ * Models the possibly absent result of last as Filtered state, so absence stays explicit while
634
+ * later source versions can make a value available.
635
+ *
636
+ * ## Ownership and lifetime
637
+ *
638
+ * The last view retains no independent value. Its Effect read fails with NoSuchElement
639
+ * while absent; the observing Scope owns and finalizes its Fx subscription.
640
+ *
641
+ * @since 1.18.0
642
+ * @category Optional queries
269
643
  */
270
644
  export const last = (ref) => RefSubject.filterMap(ref, Chunk.last);
271
645
  /**
272
646
  * Find the first value satisfying a predicate.
273
- * @since 1.18.0
274
- * @category filtered
647
+ * @remarks
648
+ * ## Why
649
+ *
650
+ * Models the possibly absent result of find first as Filtered state, so absence stays explicit
651
+ * while later source versions can make a value available.
652
+ *
653
+ * ## Ownership and lifetime
654
+ *
655
+ * The find first view retains no independent value. Its Effect read fails with NoSuchElement
656
+ * while absent; the observing Scope owns and finalizes its Fx subscription.
657
+ *
658
+ * @since 1.18.0
659
+ * @category Optional queries
275
660
  */
276
661
  export const findFirst = dual(2, function findFirst(ref, predicate) {
277
662
  return RefSubject.filterMap(ref, Chunk.findFirst(predicate));
278
663
  });
279
664
  /**
280
665
  * Find the last value satisfying a predicate.
281
- * @since 1.18.0
282
- * @category filtered
666
+ * @remarks
667
+ * ## Why
668
+ *
669
+ * Models the possibly absent result of find last as Filtered state, so absence stays explicit
670
+ * while later source versions can make a value available.
671
+ *
672
+ * ## Ownership and lifetime
673
+ *
674
+ * The find last view retains no independent value. Its Effect read fails with NoSuchElement
675
+ * while absent; the observing Scope owns and finalizes its Fx subscription.
676
+ *
677
+ * @since 1.18.0
678
+ * @category Optional queries
283
679
  */
284
680
  export const findLast = dual(2, function findLast(ref, predicate) {
285
681
  return RefSubject.filterMap(ref, Chunk.findLast(predicate));