| 1 | effect/Random#fixed: |
| 2 | replacement: "Effect.provideService(Random.Random, customRandom)" |
| 3 | note: "No exact built-in equivalent remains. For deterministic tests, provide a cycling service implementing nextIntUnsafe and nextDoubleUnsafe; map non-number sequences explicitly." |
| 4 | effect/Random#make: |
| 5 | replacement: "Random.withSeed" |
| 6 | note: "Replace service construction and withRandom with Random.withSeed(seed)(program). V4 accepts string or number, returns an Effect transformation, and uses a different PRNG, so sequences are not v3-compatible." |
| 7 | effect/Random#nextRange: |
| 8 | replacement: "Random.nextBetween" |
| 9 | note: "Direct rename; both produce a floating-point value in the half-open range [min, max)." |
| 10 | effect/Random#Random: |
| 11 | replacement: "Random.Random" |
| 12 | note: "The context key is now a Context.Reference whose low-level service only has nextIntUnsafe and nextDoubleUnsafe. Prefer module operations; custom providers implement those two primitives." |
| 13 | effect/Random#RandomTypeId: |
| 14 | replacement: "none" |
| 15 | note: "The service is structural and no longer carries a public RandomTypeId brand." |
| 16 | effect/Random#randomWith: |
| 17 | replacement: "Random.Random.use" |
| 18 | note: "Use Random.Random.use for raw service access. Prefer replacing callbacks that selected an old method with the corresponding module-level Random operation." |