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
.
The higher-kinded type Typeclass<F>
is the typeclass instance under test.
For example when testing the Monad
laws on an Either<number, string>
,
this would be Monad<Either>
.
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
.
Options for testing parameterized-type typeclasses. All the typeclass laws here expect their arguments to be of this type.
Type Param: F
The type lambda of the datatype under test. For example when testing an instance of
Covariant<Array<string>>
,F
would be the type lambda of the higher-kinded typeArray
.