QuickCheck
hackage.haskell.org
What it is
QuickCheck is a free Haskell library for testing program properties against randomly generated cases. Developers write specifications with QuickCheck combinators and can use combinators to define test-data generators and inspect generated-data distributions. It supports stateful testing, reproducible failures and shrinking failing cases. Monadic property testing is provided through the Test.QuickCheck.Monadic module. The package README describes adding QuickCheck to project dependencies for use in tests or a REPL. A companion package, quickcheck-instances, supplies instances for types in Haskell Platform packages, with additional dependencies. QuickCheck is licensed under BSD-3-Clause and lists dependencies including base, containers, random, splitmix, template-haskell and transformers. Hackage reports it tested 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 be useful for other non-GHC implementations. Hackage lists QuickCheck-2.18.0.0 as a downloadable Cabal source package. The listed package plan costs nothing.
Spec sheet
- Purpose
- QuickCheck is a Haskell library for random testing of program properties by checking specifications against randomly generated cases.Read 2 Oct 2026 · hackage.haskell.org
- License
- The package is licensed under BSD-3-Clause.Read 2 Oct 2026 · hackage.haskell.org
- Companion package
- The quickcheck-instances companion package provides instances for types in Haskell Platform packages, with additional dependencies.Read 2 Oct 2026 · hackage.haskell.org
- Compiler compatibility
- Hackage reports the package tested with GHC versions at least 8.10 and below 9.15, and Hugs.Read 2 Oct 2026 · hackage.haskell.org
- Data distribution
- QuickCheck provides combinators to observe the distribution of test data.Read 2 Oct 2026 · hackage.haskell.org
- Dependencies
- The package lists dependencies including base, containers, random, splitmix, template-haskell, and transformers.Read 2 Oct 2026 · hackage.haskell.org
- Download
- Hackage lists QuickCheck-2.18.0.0 as a downloadable Cabal source package.Read 2 Oct 2026 · hackage.haskell.org
- Generators
- QuickCheck provides combinators for defining test data generators.Read 2 Oct 2026 · hackage.haskell.org
- Hugs compatibility
- The make-hugs script creates a Hugs-compatible version and may be useful for other non-GHC implementations.Read 2 Oct 2026 · github.com
- Monadic testing
- The monadic property testing library is provided in the Test.QuickCheck.Monadic module.Read 2 Oct 2026 · hackage.haskell.org
- Property specifications
- Program specifications are expressed in Haskell using QuickCheck combinators.Read 2 Oct 2026 · hackage.haskell.org
- Use
- The package README says to add QuickCheck to package dependencies to use it in tests or a REPL.Read 2 Oct 2026 · hackage.haskell.org
Plans and prices
Strong points and limits
Strong points
- Tests specifications against randomly generated cases.
- Includes generators and data-distribution combinators.
- Supports shrinking and reproducible failures.
- Provides monadic property testing.
- Licensed under BSD-3-Clause.
Limits
- The package is for Haskell.
- The companion instances package adds dependencies.
- The reported GHC test range excludes versions 9.15 and later.
Who it suits
QuickCheck suits Haskell developers who want to check properties across generated inputs, including stateful or monadic properties. It is relevant to projects using compatible GHC versions or Hugs.
Verdict
QuickCheck provides property-based testing tools for Haskell, including generators, shrinking and monadic testing. Review its dependencies and reported compiler compatibility when adding it to a project.
Where Specifiction places it
- Property-Based Testing Tools#16 of 287.3