proposal for updates in next major HP release

David Menendez dave at
Thu Aug 13 18:37:01 EDT 2009

On Thu, Aug 13, 2009 at 4:35 PM, Don Stewart<dons at> wrote:
> dave:
>> It would be nice if the packages in the Haskell Platform met some
>> minimum standards for documentation.
> Shrinking is explained in the original QC papers -- it is a killer
> feature that we somehow lived without.

Are you referring to Section 5.4 of "QuickCheck: A Lightweight Tool
for Random Testing of Haskell Programs" by Claessen and Hughes? That
says that Andy Gill else implemented shrink (under a different name)
in his version of QuickCheck and says that it returns "a list of
smaller, but similar values to its argument -- for example, direct

Even if a Haskell Platform user was able to track down the original
paper (published in 2000 and nowhere referenced in the QuickCheck
documentation), and connect the "shrink" function to Gill's "smaller"
function (text search won't help), all they would learn is that shrink
returns values which are "smaller" and "similar" to the argument. I
think we can do better than that.

Here's another question, what's the motivation for (><) in QuickCheck
2? If you look at the instance for (,) in QuickCheck 1.2, you see

    coarbitrary (a, b) = coarbitrary a . coarbitrary b

but in QuickCheck 2.1 it's

    coarbitrary (x,y) = coarbitrary x
                     >< coarbitrary y

I'm sure there's a good reason for that, but as far as I can tell it
isn't stated anywhere.

> That said, we need an analysis of the missing pieces for our existing
> libraries to meet standard.


Dave Menendez <dave at>

More information about the Libraries mailing list