| 1 | "effect/Equivalence#all": |
| 2 | replacement: "Equivalence.Tuple([...collection])" |
| 3 | note: "Materialize the comparator iterable for Tuple. Unlike v3 prefix comparison, v4 requires equal input lengths; use Equivalence.make for intentional prefix semantics." |
| 4 | "effect/Equivalence#array": |
| 5 | replacement: "Equivalence.Array" |
| 6 | note: "Capitalized constructor name; positional equal-length array comparison is unchanged." |
| 7 | "effect/Equivalence#bigint": |
| 8 | replacement: "Equivalence.BigInt" |
| 9 | note: "Capitalized instance name; strict bigint equality is unchanged." |
| 10 | "effect/Equivalence#boolean": |
| 11 | replacement: "Equivalence.Boolean" |
| 12 | note: "Capitalized instance name; strict boolean equality is unchanged." |
| 13 | "effect/Equivalence#combineMany": |
| 14 | replacement: "Equivalence.combine(self, Equivalence.combineAll(collection))" |
| 15 | note: "Compose combine with combineAll; the dedicated dual combineMany helper was removed." |
| 16 | "effect/Equivalence#Equivalence": |
| 17 | replacement: "Equivalence.Equivalence" |
| 18 | note: "The callable type is retained but is now a type alias, so declaration merging is no longer supported." |
| 19 | "effect/Equivalence#number": |
| 20 | replacement: "Equivalence.Number" |
| 21 | note: "Capitalized instance name. V4 considers NaN equivalent to NaN; use Equivalence.strictEqual<number>() for exact v3 strict-equality behavior." |
| 22 | "effect/Equivalence#product": |
| 23 | replacement: "Equivalence.Tuple([self, that])" |
| 24 | note: "Replace the dual two-comparator helper with the single-array Tuple constructor." |
| 25 | "effect/Equivalence#productMany": |
| 26 | replacement: "Equivalence.Tuple([self, ...collection])" |
| 27 | note: "Materialize the comparator iterable in one Tuple call; v4 rejects unequal input lengths instead of using v3 prefix semantics." |
| 28 | "effect/Equivalence#strict": |
| 29 | replacement: "Equivalence.strictEqual" |
| 30 | note: "Renamed strict-equality constructor; call as Equivalence.strictEqual<A>()." |
| 31 | "effect/Equivalence#string": |
| 32 | replacement: "Equivalence.String" |
| 33 | note: "Capitalized instance name; case-sensitive strict equality is unchanged." |
| 34 | "effect/Equivalence#struct": |
| 35 | replacement: "Equivalence.Struct" |
| 36 | note: "Capitalized constructor name. V4 also compares configured symbol and non-enumerable keys via Reflect.ownKeys." |
| 37 | "effect/Equivalence#symbol": |
| 38 | replacement: "Equivalence.strictEqual<symbol>()" |
| 39 | note: "There is no Symbol instance export; strictEqual preserves the v3 symbol comparison." |
| 40 | "effect/Equivalence#tuple": |
| 41 | replacement: "Equivalence.Tuple([eqA, eqB, ...])" |
| 42 | note: "Capitalized constructor now takes one comparator array instead of rest arguments and rejects unequal input lengths." |