An equivalence for the underlying type A
.
An equivalence for the underlying type B
.
An equivalence 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 equivalence for the type under test from an equivalence for the underlying type.
A function that will get an equivalence for the type under test from an equivalence for the underlying type.
Optional
MonoidOptional Monoid
for the underlying type A
, useful for typeclasses
like Applicative
that can build their own Monoid
instance from it.
The equivalence and arbitrary concerns of typeclass test options, and an optional
Monoid
for the underlying typeA
. Everything required to build laws for a typeclass except the instances under test.