Changelog for QuickCheck-2.7.1
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.