1effect/STM#Adapter:
2 replacement: "none"
3 note: "The STM.gen adapter was removed; Effect.gen accepts yielded Effects directly."
4effect/STM#All.IsDiscard:
5 replacement: "Effect.All.IsDiscard"
6 note: "The helper moved to Effect.All because STM.all is now Effect.all."
7effect/STM#All.Narrow:
8 replacement: "none"
9 note: "Effect.all uses a const generic directly, so the separate tuple-narrowing helper was removed."
10effect/STM#All.Options:
11 replacement: "none"
12 note: "Effect.all inlines its options type; use its concurrency, discard, and mode options directly."
13effect/STM#All.STMAny:
14 replacement: "Effect.All.EffectAny"
15 note: "STM inputs are ordinary Effects in v4, so use the Effect.All helper."
16effect/STM#All.Signature:
17 replacement: "typeof Effect.all"
18 note: "The named STM all signature was removed; refer to Effect.all directly."
19effect/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."
22effect/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."
25effect/STM#STM.Variance:
26 replacement: "Effect.Variance"
27 note: "The distinct STM variance marker was removed with STM; use the Effect marker."
28effect/STM#STMTypeId:
29 replacement: "Effect.TypeId"
30 note: "The distinct STM type id was removed because transactions are represented by Effect values."
31effect/STM#STMTypeLambda:
32 replacement: "Effect.EffectTypeLambda"
33 note: "Use the Effect type lambda; transactional requirements are represented by Effect.Transaction."
34effect/STM#STMUnify:
35 replacement: "Effect.EffectUnify"
36 note: "STM unification moved to ordinary Effect unification."
37effect/STM#STMUnifyIgnore:
38 replacement: "none"
39 note: "The STM-specific unification ignore marker was removed; rely on Effect inference."
40effect/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."
43effect/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."
46effect/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."
49effect/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."
52effect/STM#asSomeError:
53 replacement: "Effect.mapError(self, Option.some)"
54 note: "The dedicated helper was removed; map the error into Option.some."
55effect/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."
58effect/STM#attempt:
59 replacement: "Effect.try"
60 note: "The constructor was renamed; transaction programs are ordinary Effects in v4."
61effect/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."
64effect/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."
67effect/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."
70effect/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."
73effect/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."
76effect/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."
79effect/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."
82effect/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."
85effect/STM#commit:
86 replacement: "Effect.tx"
87 note: "Effect.tx runs an Effect transaction and removes its Effect.Transaction requirement."
88effect/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."
91effect/STM#cond:
92 replacement: "Effect.suspend"
93 note: "Lazily branch to Effect.succeed or Effect.fail based on the predicate."
94effect/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."
97effect/STM#contextWith:
98 replacement: "Effect.contextWith"
99 note: "The name remains, but the v4 callback returns an Effect directly."
100effect/STM#contextWithSTM:
101 replacement: "Effect.contextWith"
102 note: "The Effect-returning context constructor no longer needs an STM suffix."
103effect/STM#dieMessage:
104 replacement: "Effect.die(new Error(message))"
105 note: "The message-specific helper was removed; construct a message-bearing defect explicitly."
106effect/STM#dieSync:
107 replacement: "Effect.suspend(() => Effect.die(evaluate()))"
108 note: "The lazy defect helper was removed; suspend construction and then die."
109effect/STM#either:
110 replacement: "Effect.result"
111 note: "V4 uses Result instead of Either for materialized typed failures."
112effect/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."
115effect/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."
118effect/STM#every:
119 replacement: "Effect.findFirst + Option.isNone"
120 note: "Search sequentially for the first false effectful predicate; no match means every element passed."
121effect/STM#exists:
122 replacement: "Effect.findFirst + Option.isSome"
123 note: "Search sequentially for the first true effectful predicate."
124effect/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."
127effect/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."
130effect/STM#fiberId:
131 replacement: "Effect.fiberId"
132 note: "The operation remains on Effect, but v4 yields the fiber id as a number."
133effect/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."
136effect/STM#filterNot:
137 replacement: "Effect.filter"
138 note: "Negate the effectful predicate result and use Effect.filter."
139effect/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."
142effect/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."
145effect/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."
148effect/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."
151effect/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."
154effect/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."
157effect/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."
160effect/STM#flipWith:
161 replacement: "Effect.flip(self).pipe(f, Effect.flip)"
162 note: "Compose the retained Effect.flip operation around the transforming function."
163effect/STM#fromEither:
164 replacement: "Effect.fromResult"
165 note: "V4 replaced Either with Result; migrate the value and use Effect.fromResult."
166effect/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."
169effect/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."
172effect/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."
175effect/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."
178effect/STM#interruptAs:
179 replacement: "Effect.interrupt"
180 note: "V4 exposes interruption of the current fiber only; remove the explicit FiberId argument."
181effect/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."
184effect/STM#isSTM:
185 replacement: "Effect.isEffect"
186 note: "STM no longer has a distinct runtime representation; transaction programs are Effects."
187effect/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."
190effect/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."
193effect/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."
196effect/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."
199effect/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."
202effect/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."
205effect/STM#mapInputContext:
206 replacement: "Effect.updateContext"
207 note: "The context-input mapping operation was renamed on Effect."
208effect/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."
211effect/STM#matchSTM:
212 replacement: "Effect.matchEffect"
213 note: "The Effect-returning match combinator no longer has an STM suffix."
214effect/STM#mergeAll:
215 replacement: "Effect.reduce"
216 note: "Reduce the input Effects sequentially and combine each produced value with the accumulator."
217effect/STM#none:
218 replacement: "Effect.matchEffect + Option.match"
219 note: "Recreate the Option success/error shuffle explicitly; no dedicated helper remains."
220effect/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."
223effect/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."
226effect/STM#orDieWith:
227 replacement: "Effect.mapError + Effect.orDie"
228 note: "Map the typed error to the desired defect and then use Effect.orDie."
229effect/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."
232effect/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."
235effect/STM#orElseFail:
236 replacement: "Effect.mapError"
237 note: "Map typed failures to the replacement error; this does not preserve v3 retry fallback semantics."
238effect/STM#orElseOptional:
239 replacement: "Effect.catch + Option.match"
240 note: "Run the fallback for None and re-fail Some errors explicitly."
241effect/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."
244effect/STM#orTry:
245 replacement: "none"
246 note: "V4 exposes no recoverable retry signal or public transactional savepoint; restructure branch selection before Effect.txRetry."
247effect/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]."
250effect/STM#provideServiceSTM:
251 replacement: "Effect.provideServiceEffect"
252 note: "The effectful service provider was renamed on Effect."
253effect/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."
256effect/STM#reduce:
257 replacement: "Effect.reduce"
258 note: "The combinator remains, but v4 takes the initial state lazily and also passes the element index."
259effect/STM#reduceAll:
260 replacement: "Effect.flatMap + Effect.reduce"
261 note: "Evaluate the initial Effect, then reduce the remaining Effects sequentially."
262effect/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."
265effect/STM#refineOrDie:
266 replacement: "Effect.catch + Option.match"
267 note: "Re-fail Some refined errors and die with the original error for None."
268effect/STM#refineOrDieWith:
269 replacement: "Effect.catch + Option.match"
270 note: "Re-fail Some refined errors and map None to the requested defect."
271effect/STM#reject:
272 replacement: "Effect.flatMap + Option.match"
273 note: "Fail when the partial rejection returns Some; otherwise keep the original success."
274effect/STM#rejectSTM:
275 replacement: "Effect.flatMap + Option.match"
276 note: "Run and fail with the Effect held by Some; otherwise keep the original success."
277effect/STM#repeatUntil:
278 replacement: "Effect.repeat(self, { until: predicate })"
279 note: "The dedicated combinator moved to Effect.repeat options."
280effect/STM#repeatWhile:
281 replacement: "Effect.repeat(self, { while: predicate })"
282 note: "The dedicated combinator moved to Effect.repeat options."
283effect/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."
286effect/STM#replicateSTM:
287 replacement: "Effect.replicateEffect"
288 note: "Use the effectful replication combinator and keep execution sequential inside Effect.tx."
289effect/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."
292effect/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."
295effect/STM#retryUntil:
296 replacement: "Effect.flatMap + Effect.txRetry"
297 note: "Succeed when the predicate passes; otherwise return Effect.txRetry inside Effect.tx."
298effect/STM#retryWhile:
299 replacement: "Effect.flatMap + Effect.txRetry"
300 note: "Return Effect.txRetry while the predicate passes; otherwise succeed inside Effect.tx."
301effect/STM#some:
302 replacement: "Effect.matchEffect + Option.match"
303 note: "Recreate the Option success/error shuffle explicitly; no dedicated helper remains."
304effect/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."
307effect/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."
310effect/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."
313effect/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."
316effect/STM#tapBoth:
317 replacement: "Effect.tapError + Effect.tap"
318 note: "Compose the separate failure and success taps."
319effect/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."
322effect/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."
325effect/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."
328effect/STM#unlessSTM:
329 replacement: "Effect.when(self, Effect.map(condition, (b) => !b))"
330 note: "Negate the effectful condition and use Effect.when."
331effect/STM#unsome:
332 replacement: "Effect.matchEffect + Option.match"
333 note: "Recreate the Option error/success shuffle explicitly; no dedicated helper remains."
334effect/STM#validateAll:
335 replacement: "Effect.validate"
336 note: "The validation combinator was renamed and now returns a NonEmptyArray of errors."
337effect/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."
340effect/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."
343effect/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."
346effect/STM#whenSTM:
347 replacement: "Effect.when"
348 note: "The effectful-condition form is now the only Effect.when form."
349effect/STM#zipLeft:
350 replacement: "Effect.zipWith(self, that, (left) => left)"
351 note: "Use sequential Effect.zipWith and retain the left result."
352effect/STM#zipRight:
353 replacement: "Effect.andThen"
354 note: "Use Effect.andThen for sequential composition that retains the right result."