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
Monoid
for the underlying typeA
Everything required to build laws for a typeclass except the instances under test.