Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Property-Based Testing Tools
  3. QuickCheck

QuickCheck

What it is

QuickCheck is a free Haskell library for testing program properties with randomly generated cases. Developers write specifications using QuickCheck combinators and can define generators for test data. Other combinators help examine how generated values are distributed. The Test.QuickCheck.Monadic module provides monadic property testing, and the library also supports stateful testing, shrinking failing cases, and reproducible failures. The package README describes adding QuickCheck as a project dependency for use in tests or a REPL. The companion quickcheck-instances package provides instances for types in Haskell Platform packages and adds dependencies. QuickCheck is licensed under BSD-3-Clause and lists dependencies including base, containers, random, splitmix, template-haskell, and transformers. Hackage reports testing with GHC versions from 8.10 up to, but not including, 9.15, as well as Hugs. A make-hugs script creates a Hugs-compatible version and may help with other non-GHC implementations. Hackage lists QuickCheck-2.18.0.0 as a downloadable Cabal source package.

For and against

For

  • Free Haskell library under BSD-3-Clause.
  • Supports generated-data property testing.
  • Offers shrinking and reproducible failures.
  • Includes monadic and stateful testing support.
  • Combinators can observe test-data distribution.

Against

  • The package lists multiple dependencies.
  • The companion quickcheck-instances package adds dependencies.
  • Reported GHC testing stops below version 9.15.

The verdict

QuickCheck provides Haskell developers with tools for expressing property tests and generating test data. Its listed compiler compatibility and dependencies are worth checking against a project’s setup.

Who it suits

QuickCheck suits Haskell developers who want to test program properties using generated data, including stateful or monadic properties. It can be added to a project’s dependencies for tests or a REPL.

Plans and prices

QuickCheck

Free

Haskell library for random testing of program properties

Every plan, in full

On the record

Companion package
The quickcheck-instances companion package provides instances for types in Haskell Platform packages, with additional dependencies.hackage.haskell.org · read 2 Oct 2026
Compiler compatibility
Hackage reports the package tested with GHC versions at least 8.10 and below 9.15, and Hugs.hackage.haskell.org · read 2 Oct 2026
Data distribution
QuickCheck provides combinators to observe the distribution of test data.hackage.haskell.org · read 2 Oct 2026
Dependencies
The package lists dependencies including base, containers, random, splitmix, template-haskell, and transformers.hackage.haskell.org · read 2 Oct 2026
Download
Hackage lists QuickCheck-2.18.0.0 as a downloadable Cabal source package.hackage.haskell.org · read 2 Oct 2026
Generators
QuickCheck provides combinators for defining test data generators.hackage.haskell.org · read 2 Oct 2026
Hugs compatibility
The make-hugs script creates a Hugs-compatible version and may be useful for other non-GHC implementations.github.com · read 2 Oct 2026
License
The package is licensed under BSD-3-Clause.hackage.haskell.org · read 2 Oct 2026
Monadic testing
The monadic property testing library is provided in the Test.QuickCheck.Monadic module.hackage.haskell.org · read 2 Oct 2026
Property specifications
Program specifications are expressed in Haskell using QuickCheck combinators.hackage.haskell.org · read 2 Oct 2026
Purpose
QuickCheck is a Haskell library for random testing of program properties by checking specifications against randomly generated cases.hackage.haskell.org · read 2 Oct 2026
Use
The package README says to add QuickCheck to package dependencies to use it in tests or a REPL.hackage.haskell.org · read 2 Oct 2026

Alternatives to QuickCheck

Every alternative, ranked