UNPKG

effect-ts-laws

Version:
32 lines 996 B
import { Law } from '#law'; import type { Equivalence } from 'effect/Equivalence'; import fc from 'fast-check'; /** * Test that a binary operation is associative. * @category algebraic laws */ export declare const associativity: <A>({ f, a, equals, }: { f: (a: A, b: A) => A; a: fc.Arbitrary<A>; equals: Equivalence<A>; }, note?: string, name?: string) => Law<[A, A, A]>; /** * Test the composition of two operations cancels each other. * @category algebraic laws */ export declare const inverse: <A, B>({ f, g, a, equals, }: { f: (a: A) => B; g: (b: B) => A; a: fc.Arbitrary<A>; equals: Equivalence<A>; }, note?: string, name?: string) => Law<[A]>; /** * Test that a binary operation is symmetric. * @category algebraic laws */ export declare const symmetry: <A, B>({ f, a, equals, }: { f: (left: A, right: A) => B; a: fc.Arbitrary<A>; equals: Equivalence<B>; }, note?: string, name?: string) => Law<[A, A]>; //# sourceMappingURL=algebra.d.ts.map