-
Major rewrite, addressing many issues:
-
The output of sequential runs now shows a diff of how the model changed in each step (related to issue #77);
-
The datatype of actions was renamed to commands and no longer is a GADT (discussed in issue #170, also makes issue #196 obsolete);
-
Commands can now return multiple references (issue #197);
-
Global invariants can now more easily be expressed (issue #200);
-
Counterexamples are now printed when post-conditions fail (issue #172).
-
- Remove upper bounds for dependencies, to easier keep up with Stackage nightly.
-
A propositional logic module was added to help provide better counterexamples when pre- and post-conditions don't hold;
-
Generation of parallel programs was improved (base on a comment by Hans Svensson about how Erlang QuickCheck does it);
-
Support for semantics that might fail was added;
-
Pretty printing of counterexamples was improved.
-
Z-inspired definition of relations and associated operations were added to help defining concise and showable models;
-
Template Haskell derivation of
shrink
and type classes:Show
,Constructors
,HFunctor
,HFoldable
,HTraversable
; -
New and more flexible combinators for building sequential and parallel properties replaced the old clunky ones;
-
Circular buffer example was added;
-
Two examples of how to test CRUD web applications were added.
- The API was simplified, thanks to ideas stolen from Hedgehog.
- Initial release.