# quickcheck-classes-base: QuickCheck common typeclasses from base

[ bsd3, library, testing ] [ Propose Tags ]

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.

## Modules

[Index] [Quick Jump]

## Flags

### Manual Flags

NameDescriptionDefault
unary-laws

Include infrastructure for testing class laws of unary type constructors.

Enabled
binary-laws

Include infrastructure for testing class laws of binary type constructors. Disabling unary-laws while keeping binary-laws enabled is an unsupported configuration.

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info