[Haskell] QuickCheck revival and Cabal

Frederik Eaton frederik at a5.repetae.net
Tue Apr 11 13:48:08 EDT 2006


Why not just call it, say, Test.QuickCheck2?

I think module names should reflect only their functionality. I don't
see how "External" or "Contrib" or "Chalmers" would say anything
useful about the functionality of the modules.

A while ago I sent a proposal for "package mounting", which I think
would let us avoid this whole issue:


I am opposed to a situation such as Java's, in which every module is
permanently fixed somewhere in a huge module hierarchy, for the
reasons I describe in the proposal (namely, in part because I don't
think that global-name-choosing should be such a fundamental part of
coding - as you said, it is a source of agony). The proposal was an
attempt to describe an alternative approach.

I think the ideal solution would be:

- Your code is released in a package with modules named "Batch",
"Poly", "Utils", etc., i.e. with no qualification.

- The package has a default mount point of Test.QuickCheck. If people
want the old version, then they can specify the old package instead of
the new package on the compiler/interpreter command line.

The response to my proposal was semi-positive, but I don't think any
work has gone towards implementing it (certainly not by myself).



On Tue, Apr 11, 2006 at 01:02:51PM +0200, Koen Claessen wrote:
> Dear all,
> For the past couple of years, I have been quietly hacking on a brand new
> version of QuickCheck with lots of cool features. I have been
> distributing copies to some friends, but have not released any official
> package.
> Now, after lots of peer pressure, the time has come that I want to
> release the current version as a Cabal package.
> I have been agonizing however over where in the module hierarchy the new
> QuickCheck package should be.
> There is currently an old QuickCheck version in the standard hierarchy
> in Test.QuickCheck. As the new QuickCheck is incompatible with the old
> one, I do not want to override that place. Rather, I would like to
> create my own little space in the hierarchy where the new version can
> sit and develop.
> It feels to me that there should be a convention that people use to add
> their own contributions to the module hierarchy without the danger of
> clashing with other packages.
> Proposals:
>   Contrib.Chalmers.QuickCheck
>   External.Chalmers.QuickCheck
>   Chalmers.QuickCheck
>   Contrib.Test.QuickCheck
>   Contrib.QuickCheck
> The first three I like -- but not the last one; I don't want to rule out
> anyone else (except for my own colleagues :-) making their own version
> of QuickCheck and releasing it somewhere in the tree.
> What does one think?
> Regards,
> /Koen
> PS1. Previously discussions about this were referred to the libraries
> mailing list but I feel that this is of interest to the larger crowd too.
> PS2. I welcome myself back to the Haskell mailing list after years of
> inactivity :-)
> _______________________________________________
> Haskell mailing list
> Haskell at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell


More information about the Haskell mailing list