@sekwiatkowski/js-fp
Version:
A pragmatic functional programming library for JavaScript/TypeScript
13 lines (12 loc) • 588 B
TypeScript
export declare class Equivalence<T> {
private readonly f;
constructor(f: (x: T, y: T) => boolean);
test(x: T, y: T): boolean;
get(): (x: T, y: T) => boolean;
adapt<U>(f: (parameter: U) => T): Equivalence<U>;
and(other: Equivalence<T>): Equivalence<T>;
or(other: Equivalence<T>): Equivalence<T>;
not(): Equivalence<T>;
}
export declare const equivalence: <T>(test: (x: T, y: T) => boolean) => Equivalence<T>;
export declare function ensureEquivalenceFunction<T>(equivalence: ((x: T, y: T) => boolean) | Equivalence<T>): (x: T, y: T) => boolean;