@hackage / quickcheck-classes-base

QuickCheck common typeclasses from `base`

Latest0.6.2.0

About

Metadata

  • Last updated , by Bodigrim
  • License BSD-3-Clause
  • Categories Testing
  • Maintained by: andrew.thaddeus@gmail.com

  • Lottery factor: 0

Links

Installation

Package Flags

Use the -f option with cabal commands to enable 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.

Readme

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.