Interface GivenConcerns<F, A, B, C, In1, Out2, Out1>

The equivalence and arbitrary concerns of typeclass test options, and an optional Monoid for the underlying type A. Everything required to build laws for a typeclass except the instances under test.

interface GivenConcerns<F, A, B, C, In1, Out2, Out1> {
    a: Arbitrary<A>;
    b: Arbitrary<B>;
    c: Arbitrary<C>;
    equalsA: Equivalence<A>;
    equalsB: Equivalence<B>;
    equalsC: Equivalence<C>;
    getArbitrary: LiftArbitrary<F, In1, Out2, Out1>;
    getEquivalence: LiftEquivalence<F, In1, Out2, Out1>;
    Monoid?: Monoid<A>;
}

Type Parameters

  • F extends TypeLambda
  • A
  • B
  • C
  • In1
  • Out2
  • Out1

Hierarchy (view full)

Properties

a: Arbitrary<A>

An equivalence for the underlying type A.

b: Arbitrary<B>

An equivalence for the underlying type B.

c: Arbitrary<C>

An equivalence for the underlying type C.

equalsA: Equivalence<A>

An equivalence for the underlying type A.

equalsB: Equivalence<B>

An equivalence for the underlying type B.

equalsC: Equivalence<C>

An equivalence for the underlying type C.

getArbitrary: LiftArbitrary<F, In1, Out2, Out1>

A function that will get an equivalence for the type under test from an equivalence for the underlying type.

getEquivalence: LiftEquivalence<F, In1, Out2, Out1>

A function that will get an equivalence for the type under test from an equivalence for the underlying type.

Monoid?: Monoid<A>

Optional Monoid for the underlying type A, useful for typeclasses like Applicative that can build their own Monoid instance from it.