The quickspec package
QuickSpec automatically finds equational laws about your program.
Give it an API, i.e. a collection of functions, and it will spit out equations about those functions. For example, given reverse, ++ and , QuickSpec finds six laws, which are exactly the ones you might write by hand:
xs++ == xs ++xs == xs (xs++ys)++zs == xs++(ys++zs) reverse  ==  reverse (reverse xs) == xs reverse xs++reverse ys == reverse (ys++xs)
The laws that QuickSpec generates are not proved correct, but have passed at least 200 QuickCheck tests.
For more information, see the README file at https:github.comnick8325quickspecblobmaster/README.asciidoc.
|Versions||0.9, 0.9.1, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.6|
|Change log||None available|
|Dependencies||array, base (<5), containers, ghc-prim, QuickCheck (>=2.7), random, spoon (>=0.2), transformers|
|Copyright||2009-2013 Nick Smallbone|
|Source repository||head: git clone git://github.com/nick8325/quickspec.git -b master|
|Uploaded||Tue Aug 26 11:35:30 UTC 2014 by NickSmallbone|
|Downloads||1063 total (57 in last 30 days)|
|Status||Docs available [build log]|
Successful builds reported [all 1 reports]
For package maintainers and hackage trustees