/** * `Equivalence` provides evidence that two values of type `A` can be * compared for equality. * * @tsplus type Equivalence */ export interface Equivalence { readonly Law: { readonly Equivalence: "Equivalence"; }; /** * Returns whether two values of type `A` are equal. */ readonly equals: (x: A, y: A) => boolean; } /** * @tsplus type Equivalence/Ops */ export interface EquivalenceOps { /** * Constructs an `Equal` from a function. The instance will be optimized * to first compare the values for reference equality and then compare the * values for value equality. */ (equals: (x: A, y: A) => boolean): Equivalence; readonly $: EquivalenceAspects; } export declare const Equivalence: EquivalenceOps; /** * @tsplus type Equivalence/Aspects */ export interface EquivalenceAspects { } //# sourceMappingURL=definition.d.ts.map