@hackage quickcheck-classes-base0.6.1.0
QuickCheck common typeclasses from `base`
Categories
License
BSD-3-Clause
Maintainer
andrew.thaddeus@gmail.com
Links
Versions
Installation
Dependencies (11)
- QuickCheck >=2.10.0
- base >=4.5 && <5
- base-orphans >=0.1
- bifunctors
- containers >=0.4.2.1
- contravariant Show all…
Dependents (23)
@cardano/cardano-data, @hackage/poly, @hackage/rrb-vector, @hackage/data-interval, @hackage/quickcheck-classes, @hackage/pvector, Show all…
Package Flags
unary-laws
(on by default)
Include infrastructure for testing class laws of unary type constructors.
binary-laws
(on by default)
Include infrastructure for testing class laws of binary type constructors. Disabling `unary-laws` while keeping `binary-laws` enabled is an unsupported configuration.
This libary is a minimal variant of `quickcheck-classes` that
only provides laws for typeclasses from base. The main purpose
of splitting this out is so that primitive can depend on
`quickcheck-classes-base` in its test suite, avoiding the circular
dependency that arises if `quickcheck-classes` is used instead.
This library provides QuickCheck properties to ensure
that typeclass instances adhere to the set of laws that
they are supposed to. There are other libraries that do
similar things, such as `genvalidity-hspec` and checkers.
This library differs from other solutions by not introducing
any new typeclasses that the user needs to learn.
Note: on GHC < 8.5, this library uses the higher-kinded typeclasses
(Data.Functor.Classes.Show1, Data.Functor.Classes.Eq1, Data.Functor.Classes.Ord1, etc.),
but on GHC >= 8.5, it uses `-XQuantifiedConstraints` to express these
constraints more cleanly.