An arbitrary for the underlying type A.
An arbitrary for the underlying type B.
An arbitrary for the underlying type C.
An equivalence for the underlying type A.
An equivalence for the underlying type B.
An equivalence for the underlying type C.
A function that will get an arbitrary for the type under test from an arbitrary for the underlying type.
A function that will get an equivalence for the type under test from an equivalence for the underlying type.
Required Monoid for the underlying type A, useful for typeclasses
like Applicative that can build their own Monoid instance from it.
Predicate for values of type A.
Predicate for values of type B.
Predicate for values of type C.
The equivalence and arbitrary concerns of typeclass test options, together with an optional
Monoidfor the underlying typeAEverything required to build laws for a typeclass except the instances under test.