Description
Integration between Hspec and quickcheck-classes.
Description
Integrates Hspec with quickcheck-classes, making it convenient for Hspec test suites to include tests for the lawfulness of type class instances.
README.md
hspec-quickcheck-classes
This package integrates Hspec with quickcheck-classes, making it convenient for Hspec test suites to include tests for the lawfulness of type class instances.
Usage
To test that a type satisfies the laws of one or more type classes:
testLaws @Bool
[ eqLaws
, ordLaws
, showLaws
]
Kind polymorphism
The testLaws function is kind-polymorphic, supporting type parameters of any kind.
This means it can be used to test instances of type classes whose type parameters are not of kind Type.
For example, with Maybe (which has kind Type -> Type):
testLaws @Maybe
[ applicativeLaws
, functorLaws
, monadLaws
, foldableLaws
, traversableLaws
]
And with Either (which has kind Type -> Type -> Type):
testLaws @Either
[ bifoldableLaws
, bifunctorLaws
, bitraversableLaws
]