| 1 | effect/STM#Adapter: |
| 2 | replacement: "none" |
| 3 | note: "The STM.gen adapter was removed; Effect.gen accepts yielded Effects directly." |
| 4 | effect/STM#All.IsDiscard: |
| 5 | replacement: "Effect.All.IsDiscard" |
| 6 | note: "The helper moved to Effect.All because STM.all is now Effect.all." |
| 7 | effect/STM#All.Narrow: |
| 8 | replacement: "none" |
| 9 | note: "Effect.all uses a const generic directly, so the separate tuple-narrowing helper was removed." |
| 10 | effect/STM#All.Options: |
| 11 | replacement: "none" |
| 12 | note: "Effect.all inlines its options type; use its concurrency, discard, and mode options directly." |
| 13 | effect/STM#All.STMAny: |
| 14 | replacement: "Effect.All.EffectAny" |
| 15 | note: "STM inputs are ordinary Effects in v4, so use the Effect.All helper." |
| 16 | effect/STM#All.Signature: |
| 17 | replacement: "typeof Effect.all" |
| 18 | note: "The named STM all signature was removed; refer to Effect.all directly." |
| 19 | effect/STM#Do: |
| 20 | replacement: "Effect.Do" |
| 21 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 22 | effect/STM#STM: |
| 23 | replacement: "Effect.Effect" |
| 24 | note: "The distinct STM instruction type was removed. Tx APIs return Effect values; wrap the complete transaction in Effect.tx." |
| 25 | effect/STM#STM.Variance: |
| 26 | replacement: "Effect.Variance" |
| 27 | note: "The distinct STM variance marker was removed with STM; use the Effect marker." |
| 28 | effect/STM#STMTypeId: |
| 29 | replacement: "Effect.TypeId" |
| 30 | note: "The distinct STM type id was removed because transactions are represented by Effect values." |
| 31 | effect/STM#STMTypeLambda: |
| 32 | replacement: "Effect.EffectTypeLambda" |
| 33 | note: "Use the Effect type lambda; transactional requirements are represented by Effect.Transaction." |
| 34 | effect/STM#STMUnify: |
| 35 | replacement: "Effect.EffectUnify" |
| 36 | note: "STM unification moved to ordinary Effect unification." |
| 37 | effect/STM#STMUnifyIgnore: |
| 38 | replacement: "none" |
| 39 | note: "The STM-specific unification ignore marker was removed; rely on Effect inference." |
| 40 | effect/STM#acquireUseRelease: |
| 41 | replacement: "Effect.acquireUseRelease + Effect.tx" |
| 42 | note: "Wrap acquire, use, and release in separate Effect.tx calls to preserve the v3 separately committed phases; v4 release also receives the use Exit." |
| 43 | effect/STM#all: |
| 44 | replacement: "Effect.all" |
| 45 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 46 | effect/STM#as: |
| 47 | replacement: "Effect.as" |
| 48 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 49 | effect/STM#asSome: |
| 50 | replacement: "Effect.asSome" |
| 51 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 52 | effect/STM#asSomeError: |
| 53 | replacement: "Effect.mapError(self, Option.some)" |
| 54 | note: "The dedicated helper was removed; map the error into Option.some." |
| 55 | effect/STM#asVoid: |
| 56 | replacement: "Effect.asVoid" |
| 57 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 58 | effect/STM#attempt: |
| 59 | replacement: "Effect.try" |
| 60 | note: "The constructor was renamed; transaction programs are ordinary Effects in v4." |
| 61 | effect/STM#bind: |
| 62 | replacement: "Effect.bind" |
| 63 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 64 | effect/STM#bindTo: |
| 65 | replacement: "Effect.bindTo" |
| 66 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 67 | effect/STM#catchAll: |
| 68 | replacement: "Effect.catch" |
| 69 | note: "Use Effect.catch for typed failures. It does not catch Effect.txRetry or restore a transactional savepoint." |
| 70 | effect/STM#catchSome: |
| 71 | replacement: "Effect.catch + Option.match" |
| 72 | note: "Use Effect.catch and re-fail the original error when the partial handler returns None." |
| 73 | effect/STM#catchTag: |
| 74 | replacement: "Effect.catchTag" |
| 75 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 76 | effect/STM#check: |
| 77 | replacement: "Effect.suspend + Effect.txRetry" |
| 78 | note: "Evaluate the predicate lazily and return Effect.void when true or Effect.txRetry when false, inside Effect.tx." |
| 79 | effect/STM#collect: |
| 80 | replacement: "Effect.flatMap + Option.match + Effect.txRetry" |
| 81 | note: "Map Some to success and None to Effect.txRetry inside the surrounding Effect.tx transaction." |
| 82 | effect/STM#collectSTM: |
| 83 | replacement: "Effect.flatMap + Option.match + Effect.txRetry" |
| 84 | note: "Return the Effect held by Some and use Effect.txRetry for None, inside the surrounding Effect.tx transaction." |
| 85 | effect/STM#commit: |
| 86 | replacement: "Effect.tx" |
| 87 | note: "Effect.tx runs an Effect transaction and removes its Effect.Transaction requirement." |
| 88 | effect/STM#commitEither: |
| 89 | replacement: "Effect.tx + Effect.result + Effect.fromResult" |
| 90 | note: "Run Effect.tx(Effect.result(body)) before Effect.fromResult so journal changes commit even when the original transaction had a typed failure." |
| 91 | effect/STM#cond: |
| 92 | replacement: "Effect.suspend" |
| 93 | note: "Lazily branch to Effect.succeed or Effect.fail based on the predicate." |
| 94 | effect/STM#context: |
| 95 | replacement: "Effect.context" |
| 96 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 97 | effect/STM#contextWith: |
| 98 | replacement: "Effect.contextWith" |
| 99 | note: "The name remains, but the v4 callback returns an Effect directly." |
| 100 | effect/STM#contextWithSTM: |
| 101 | replacement: "Effect.contextWith" |
| 102 | note: "The Effect-returning context constructor no longer needs an STM suffix." |
| 103 | effect/STM#dieMessage: |
| 104 | replacement: "Effect.die(new Error(message))" |
| 105 | note: "The message-specific helper was removed; construct a message-bearing defect explicitly." |
| 106 | effect/STM#dieSync: |
| 107 | replacement: "Effect.suspend(() => Effect.die(evaluate()))" |
| 108 | note: "The lazy defect helper was removed; suspend construction and then die." |
| 109 | effect/STM#either: |
| 110 | replacement: "Effect.result" |
| 111 | note: "V4 uses Result instead of Either for materialized typed failures." |
| 112 | effect/STM#ensuring: |
| 113 | replacement: "Effect.ensuring" |
| 114 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 115 | effect/STM#eventually: |
| 116 | replacement: "Effect.eventually" |
| 117 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 118 | effect/STM#every: |
| 119 | replacement: "Effect.findFirst + Option.isNone" |
| 120 | note: "Search sequentially for the first false effectful predicate; no match means every element passed." |
| 121 | effect/STM#exists: |
| 122 | replacement: "Effect.findFirst + Option.isSome" |
| 123 | note: "Search sequentially for the first true effectful predicate." |
| 124 | effect/STM#fail: |
| 125 | replacement: "Effect.fail" |
| 126 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 127 | effect/STM#failSync: |
| 128 | replacement: "Effect.failSync" |
| 129 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 130 | effect/STM#fiberId: |
| 131 | replacement: "Effect.fiberId" |
| 132 | note: "The operation remains on Effect, but v4 yields the fiber id as a number." |
| 133 | effect/STM#filter: |
| 134 | replacement: "Effect.filter" |
| 135 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 136 | effect/STM#filterNot: |
| 137 | replacement: "Effect.filter" |
| 138 | note: "Negate the effectful predicate result and use Effect.filter." |
| 139 | effect/STM#filterOrDie: |
| 140 | replacement: "Effect.filterOrFail + Effect.orDie" |
| 141 | note: "Fail with the lazy defect when the predicate rejects, then convert that failure to a defect." |
| 142 | effect/STM#filterOrDieMessage: |
| 143 | replacement: "Effect.filterOrFail + Effect.orDie" |
| 144 | note: "Fail with a new Error carrying the message when the predicate rejects, then convert it to a defect." |
| 145 | effect/STM#filterOrFail: |
| 146 | replacement: "Effect.filterOrFail" |
| 147 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 148 | effect/STM#firstSuccessOf: |
| 149 | replacement: "Effect.firstSuccessOf" |
| 150 | note: "This only preserves typed-failure fallback. V4 has no equivalent for v3 retry-aware alternatives with journal savepoints." |
| 151 | effect/STM#flatMap: |
| 152 | replacement: "Effect.flatMap" |
| 153 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 154 | effect/STM#flatten: |
| 155 | replacement: "Effect.flatten" |
| 156 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 157 | effect/STM#flip: |
| 158 | replacement: "Effect.flip" |
| 159 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 160 | effect/STM#flipWith: |
| 161 | replacement: "Effect.flip(self).pipe(f, Effect.flip)" |
| 162 | note: "Compose the retained Effect.flip operation around the transforming function." |
| 163 | effect/STM#fromEither: |
| 164 | replacement: "Effect.fromResult" |
| 165 | note: "V4 replaced Either with Result; migrate the value and use Effect.fromResult." |
| 166 | effect/STM#head: |
| 167 | replacement: "Effect.matchEffect" |
| 168 | note: "Map source failures to Option.some, return the first iterable element, and fail with Option.none when empty." |
| 169 | effect/STM#if: |
| 170 | replacement: "Effect.suspend or Effect.flatMap" |
| 171 | note: "Select the true or false branch lazily; use flatMap when the condition is effectful." |
| 172 | effect/STM#ignore: |
| 173 | replacement: "Effect.ignore" |
| 174 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 175 | effect/STM#interrupt: |
| 176 | replacement: "Effect.interrupt" |
| 177 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 178 | effect/STM#interruptAs: |
| 179 | replacement: "Effect.interrupt" |
| 180 | note: "V4 exposes interruption of the current fiber only; remove the explicit FiberId argument." |
| 181 | effect/STM#isFailure: |
| 182 | replacement: "Effect.isFailure" |
| 183 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 184 | effect/STM#isSTM: |
| 185 | replacement: "Effect.isEffect" |
| 186 | note: "STM no longer has a distinct runtime representation; transaction programs are Effects." |
| 187 | effect/STM#isSuccess: |
| 188 | replacement: "Effect.isSuccess" |
| 189 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 190 | effect/STM#iterate: |
| 191 | replacement: "Effect.gen loop" |
| 192 | note: "No direct Effect iterate helper remains; carry state in an explicit sequential Effect.gen loop inside Effect.tx." |
| 193 | effect/STM#let: |
| 194 | replacement: "Effect.let" |
| 195 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 196 | effect/STM#loop: |
| 197 | replacement: "Effect.gen loop" |
| 198 | note: "No direct Effect loop helper remains; implement the state loop explicitly and collect values unless discard was requested." |
| 199 | effect/STM#map: |
| 200 | replacement: "Effect.map" |
| 201 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 202 | effect/STM#mapAttempt: |
| 203 | replacement: "Effect.flatMap(self, (a) => Effect.try(() => f(a)))" |
| 204 | note: "Use Effect.try in flatMap so thrown exceptions remain typed failures rather than defects." |
| 205 | effect/STM#mapInputContext: |
| 206 | replacement: "Effect.updateContext" |
| 207 | note: "The context-input mapping operation was renamed on Effect." |
| 208 | effect/STM#match: |
| 209 | replacement: "Effect.match" |
| 210 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 211 | effect/STM#matchSTM: |
| 212 | replacement: "Effect.matchEffect" |
| 213 | note: "The Effect-returning match combinator no longer has an STM suffix." |
| 214 | effect/STM#mergeAll: |
| 215 | replacement: "Effect.reduce" |
| 216 | note: "Reduce the input Effects sequentially and combine each produced value with the accumulator." |
| 217 | effect/STM#none: |
| 218 | replacement: "Effect.matchEffect + Option.match" |
| 219 | note: "Recreate the Option success/error shuffle explicitly; no dedicated helper remains." |
| 220 | effect/STM#option: |
| 221 | replacement: "Effect.option" |
| 222 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 223 | effect/STM#orDie: |
| 224 | replacement: "Effect.orDie" |
| 225 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 226 | effect/STM#orDieWith: |
| 227 | replacement: "Effect.mapError + Effect.orDie" |
| 228 | note: "Map the typed error to the desired defect and then use Effect.orDie." |
| 229 | effect/STM#orElse: |
| 230 | replacement: "none" |
| 231 | note: "V4 has no exact retry-aware transactional alternative with journal savepoint restoration. Effect.catch is only a failure-only approximation." |
| 232 | effect/STM#orElseEither: |
| 233 | replacement: "none" |
| 234 | note: "V4 has no exact retry-aware alternative. For typed failures only, compose Effect.catch and Result tagging manually." |
| 235 | effect/STM#orElseFail: |
| 236 | replacement: "Effect.mapError" |
| 237 | note: "Map typed failures to the replacement error; this does not preserve v3 retry fallback semantics." |
| 238 | effect/STM#orElseOptional: |
| 239 | replacement: "Effect.catch + Option.match" |
| 240 | note: "Run the fallback for None and re-fail Some errors explicitly." |
| 241 | effect/STM#orElseSucceed: |
| 242 | replacement: "Effect.orElseSucceed" |
| 243 | note: "The name remains for typed failures, but v4 does not preserve v3 retry fallback or journal savepoints." |
| 244 | effect/STM#orTry: |
| 245 | replacement: "none" |
| 246 | note: "V4 exposes no recoverable retry signal or public transactional savepoint; restructure branch selection before Effect.txRetry." |
| 247 | effect/STM#partition: |
| 248 | replacement: "Effect.partition" |
| 249 | note: "STM values are now ordinary Effects. Run the complete transaction with Effect.tx. The tuple is [passes, fails], the reverse of v3 [failures, successes]." |
| 250 | effect/STM#provideServiceSTM: |
| 251 | replacement: "Effect.provideServiceEffect" |
| 252 | note: "The effectful service provider was renamed on Effect." |
| 253 | effect/STM#provideSomeContext: |
| 254 | replacement: "Effect.provideContext or Effect.updateContext" |
| 255 | note: "The dedicated partial-context helper was removed; provide or update the Effect context explicitly." |
| 256 | effect/STM#reduce: |
| 257 | replacement: "Effect.reduce" |
| 258 | note: "The combinator remains, but v4 takes the initial state lazily and also passes the element index." |
| 259 | effect/STM#reduceAll: |
| 260 | replacement: "Effect.flatMap + Effect.reduce" |
| 261 | note: "Evaluate the initial Effect, then reduce the remaining Effects sequentially." |
| 262 | effect/STM#reduceRight: |
| 263 | replacement: "Effect.reduce over a reversed Array" |
| 264 | note: "Materialize and reverse the iterable, then reduce while preserving the old state/element callback order." |
| 265 | effect/STM#refineOrDie: |
| 266 | replacement: "Effect.catch + Option.match" |
| 267 | note: "Re-fail Some refined errors and die with the original error for None." |
| 268 | effect/STM#refineOrDieWith: |
| 269 | replacement: "Effect.catch + Option.match" |
| 270 | note: "Re-fail Some refined errors and map None to the requested defect." |
| 271 | effect/STM#reject: |
| 272 | replacement: "Effect.flatMap + Option.match" |
| 273 | note: "Fail when the partial rejection returns Some; otherwise keep the original success." |
| 274 | effect/STM#rejectSTM: |
| 275 | replacement: "Effect.flatMap + Option.match" |
| 276 | note: "Run and fail with the Effect held by Some; otherwise keep the original success." |
| 277 | effect/STM#repeatUntil: |
| 278 | replacement: "Effect.repeat(self, { until: predicate })" |
| 279 | note: "The dedicated combinator moved to Effect.repeat options." |
| 280 | effect/STM#repeatWhile: |
| 281 | replacement: "Effect.repeat(self, { while: predicate })" |
| 282 | note: "The dedicated combinator moved to Effect.repeat options." |
| 283 | effect/STM#replicate: |
| 284 | replacement: "Effect.replicate" |
| 285 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 286 | effect/STM#replicateSTM: |
| 287 | replacement: "Effect.replicateEffect" |
| 288 | note: "Use the effectful replication combinator and keep execution sequential inside Effect.tx." |
| 289 | effect/STM#replicateSTMDiscard: |
| 290 | replacement: "Effect.replicateEffect(self, n, { discard: true })" |
| 291 | note: "Use effectful replication with discard enabled and keep execution sequential inside Effect.tx." |
| 292 | effect/STM#retry: |
| 293 | replacement: "Effect.txRetry" |
| 294 | note: "Do not use Effect.retry, which retries typed failures by schedule; Effect.txRetry waits for an accessed Tx value to change." |
| 295 | effect/STM#retryUntil: |
| 296 | replacement: "Effect.flatMap + Effect.txRetry" |
| 297 | note: "Succeed when the predicate passes; otherwise return Effect.txRetry inside Effect.tx." |
| 298 | effect/STM#retryWhile: |
| 299 | replacement: "Effect.flatMap + Effect.txRetry" |
| 300 | note: "Return Effect.txRetry while the predicate passes; otherwise succeed inside Effect.tx." |
| 301 | effect/STM#some: |
| 302 | replacement: "Effect.matchEffect + Option.match" |
| 303 | note: "Recreate the Option success/error shuffle explicitly; no dedicated helper remains." |
| 304 | effect/STM#succeed: |
| 305 | replacement: "Effect.succeed" |
| 306 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 307 | effect/STM#summarized: |
| 308 | replacement: "Effect.gen" |
| 309 | note: "Run the summary Effect before and after the body, then return the computed summary and body value." |
| 310 | effect/STM#sync: |
| 311 | replacement: "Effect.sync" |
| 312 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 313 | effect/STM#tap: |
| 314 | replacement: "Effect.tap" |
| 315 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 316 | effect/STM#tapBoth: |
| 317 | replacement: "Effect.tapError + Effect.tap" |
| 318 | note: "Compose the separate failure and success taps." |
| 319 | effect/STM#tapError: |
| 320 | replacement: "Effect.tapError" |
| 321 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 322 | effect/STM#try: |
| 323 | replacement: "Effect.try" |
| 324 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 325 | effect/STM#unless: |
| 326 | replacement: "Effect.when(self, Effect.sync(() => !predicate()))" |
| 327 | note: "V4 Effect.when takes an effectful condition; suspend and negate the old lazy boolean." |
| 328 | effect/STM#unlessSTM: |
| 329 | replacement: "Effect.when(self, Effect.map(condition, (b) => !b))" |
| 330 | note: "Negate the effectful condition and use Effect.when." |
| 331 | effect/STM#unsome: |
| 332 | replacement: "Effect.matchEffect + Option.match" |
| 333 | note: "Recreate the Option error/success shuffle explicitly; no dedicated helper remains." |
| 334 | effect/STM#validateAll: |
| 335 | replacement: "Effect.validate" |
| 336 | note: "The validation combinator was renamed and now returns a NonEmptyArray of errors." |
| 337 | effect/STM#validateFirst: |
| 338 | replacement: "Effect.flip + Effect.forEach" |
| 339 | note: "Flip each candidate result, traverse sequentially, then flip the aggregate to preserve all errors when every candidate fails." |
| 340 | effect/STM#void: |
| 341 | replacement: "Effect.void" |
| 342 | note: "The combinator keeps its name, but STM values are now ordinary Effects. Run the complete transaction with Effect.tx. V4 Tx operations return ordinary Effects; compose multiple operations under one outer Effect.tx to keep them atomic." |
| 343 | effect/STM#when: |
| 344 | replacement: "Effect.when(self, Effect.sync(predicate))" |
| 345 | note: "V4 Effect.when takes an effectful boolean, so suspend the old lazy predicate." |
| 346 | effect/STM#whenSTM: |
| 347 | replacement: "Effect.when" |
| 348 | note: "The effectful-condition form is now the only Effect.when form." |
| 349 | effect/STM#zipLeft: |
| 350 | replacement: "Effect.zipWith(self, that, (left) => left)" |
| 351 | note: "Use sequential Effect.zipWith and retain the left result." |
| 352 | effect/STM#zipRight: |
| 353 | replacement: "Effect.andThen" |
| 354 | note: "Use Effect.andThen for sequential composition that retains the right result." |