quickspec: Equational laws for free!
QuickSpec takes your Haskell code and, as if by magic, discovers laws about it. You give QuickSpec a collection of Haskell functions; QuickSpec tests your functions with QuickCheck and prints out laws which seem to hold.
For example, give QuickSpec the functions
it will find six laws:
reverse  ==  xs ++  == xs  ++ xs == xs reverse (reverse xs) == xs (xs ++ ys) ++ zs == xs ++ (ys ++ zs) reverse xs ++ reverse ys == reverse (ys ++ xs)
QuickSpec can find equational laws as well as conditional equations. All
you need to supply are the functions to test, as well as
Arbitrary instances for QuickSpec to use in testing; the rest is
For information on how to use QuickSpec, see the documentation in the main
module, QuickSpec. You can also look in the
directory, for example at
To read about how
QuickSpec works, see our paper,
Quick specifications for the busy programmer.
[Skip to Readme]
|Versions [faq]||0.9, 0.9.1, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.6, 2, 2.1, 2.1.1, 2.1.2|
|Dependencies||base (==4.*), constraints, containers, data-lens-light (>=0.1.1), dlist, QuickCheck (>=2.10), quickcheck-instances (>=0.3.16), random, spoon, template-haskell, transformers, twee-lib (==2.2), uglymemo [details]|
|Copyright||2009-2019 Nick Smallbone|
|Revised||Revision 1 made by NickSmallbone at Fri Feb 21 09:44:27 UTC 2020|
|Source repo||head: git clone git://github.com/nick8325/quickspec.git -b master|
|Uploaded||by NickSmallbone at Tue Aug 20 16:50:10 UTC 2019|
|Downloads||5980 total (532 in the last 30 days)|
|Rating||1.75 (votes: 1) [estimated by Bayesian average]|
Docs available [build log]
Last success reported on 2019-08-20 [all 1 reports]
- quickspec-2.1.2.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
For package maintainers and hackage trustees