Package: effect
Module: Equivalence
Creates a Reducer for combining Equivalence instances, useful for aggregating equivalences in collections.
When to use
Use when you need a reducer that combines equivalences.
Details
Returns a reducer that combines equivalences using combine. The identity
element for empty collections is an equivalence that always returns true.
The reducer uses combineAll for collections of equivalences and can be used
with fold operations.
Example (Creating a Reducer)
import { Equivalence } from "effect"
const reducer = Equivalence.makeReducer<number>()
const equivalences = [
Equivalence.strictEqual<number>(),
Equivalence.make<number>((a, b) => Math.abs(a - b) < 1)
]
const combined = reducer.combineAll(equivalences)
// Combined equivalence requires both conditions to be true
console.log(combined(1, 1)) // true (strict equal)
console.log(combined(1, 1.5)) // false (strict equal fails)
See
combine Combine two equivalencescombineAll Combine multiple equivalencesReducer Reducer type for collection operationsSignature
declare const makeReducer: <A>() => Reducer.Reducer<Equivalence<A>>
Since v4.0.0