Changelog for QuickCheck-2.7.2

If this renders badly as markdown, see the plain text version

QuickCheck 2.7.2 (released 2014-03-22) * Fix bug in cabal file which broke cabal test

QuickCheck 2.7.1 (released 2014-03-20) * Fixed bug - the Small modifier didn't work on unsigned types * Changed arbitrarySizedIntegral to have an Integral constraint instead of just Num

QuickCheck 2.7 (released 2014-03-19)

* New features:
    * New genericShrink function provides generic shrinking with GHC.
    * New combinator x === y: fails if x /= y, but also prints their values
    * New function generate :: Gen a -> IO a for running a generator.
    * New combinators infiniteList and infiniteListOf for generating infinite lists.
    * Several combinators added to the main Test.QuickCheck module which
      were previously languishing in other modules. Of particular interest:
      quickCheckAll, ioProperty.
    * New combinators delay and capture which can be used (unsafely!)
      to reuse the random number seed. Useful for generating
      polymorphic (rank-2) values.
    * A new Discard data type and a Testable instance for discarding test cases.
    * All modifiers now have Functor instances and accessor functions.
    * Pressing ctrl-C during shrinking now shows the last failed
      test case, rather than the current shrinking candidate.
    * Experimental support for UHC. You will need the latest version of Cabal from git.

* Better distribution of test data:
    * The Int generator now only generates fairly small numbers.
    * The new Small and Large modifiers control the distribution of integers
      (Small generates small numbers, Large from the whole range).
    * Floating-point numbers shrink better.

* Improved random number generation:
    * QuickCheck now uses TFGen rather than StdGen on newer versions
      of GHC, because StdGen's random numbers aren't always random.
    * 'variant' now uses a prefix code. This should prevent some
      potential bananaskins with coarbitrary.

* API changes:
    * The Gen monad now uses an abstract type QCGen rather than StdGen.
    * The Result type now returns the thrown exception and number
      of failed shrink attempts.
    * Property is now a newtype rather than Gen Prop as it was before.
    * promote is moved into the new module Test.QuickCheck.Gen.Unsafe.
    * 'printTestCase' is deprecated - its new name is 'counterexample'
    * 'morallyDubiousIOProperty' is deprecated - its new name is
      'ioProperty', no moral judgement involved :)

QuickCheck 2.6, released 2013-03-07

* Add convenience Function instances for up to 7-tuples
* Make stderr line buffered to reduce console I/O.
* Return a flag to say whether the test case was interrupted.

QuickCheck 2.5, released 2012-06-18

* Replace maxDiscard with maxDiscardRatio
* Remove Testable () instance.
* Added a 'discard' exception that discards the current test case
* Add accessors for modifiers (where it makes sense)
* Rename 'stop' to 'abort' to avoid a name clash
* Added a 'once' combinator
* If a property is of type Bool, only run it once
* Add coarbitraryEnum to Test.QuickCheck module.
* Add 'coarbitrary' helper for Enums.
* Rejiggled the formatting code to support multi-line error messages
* Add instances for Ordering and Fixed.
* Added arbitraryBoundedEnum generator (thanks to Antoine Latter).
* Add verboseCheckAll and polyverboseCheck function for usability.