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."