If GHC didn't need to do anything (e.g. you've touched one of the source
files but not changed the contents), it doesn't update the output file
-- so next time you run make, it thinks it needs to run the rule again.
Touching the output matches make's expectation of what a compiler should
do.
I've checked these all against the Darcs history using a script
(check-copyright, in my misccode collection). Anything Neil or I did as
part of our PhDs is copyright University of Kent; more recent work
belongs to us, as appropriate.
This is the slightly older version that Debian stable is current
shipping; it has fewer fields in its Result structure, so we need to be
more flexible about pattern-matching (which is probably a good thing
anyway).
Most of this is trivial -- e.g. getting rid of dummy definitions of
coarbitrary, which is a separate typeclass in QC2, and changing the
parameter specs to use the new Args type.
The chunk of code that runs a QC test as an HUnit test is now quite a
bit simpler because QC's top-level interface returns a result. However,
this means that some gymnastics are required to get at the right
definition of Result in different places -- QC2 has two different types
called Result, and we use both for different jobs!
This is because QuickCheck 2 no longer exports the "generate" function;
since it's a test generator anyway, we may as well test it by using it
to test something trivial.
This just flattens the version number into an integer (e.g. 6.8.2 ->
6008002), which makes comparisons much simpler. (Previously it would
have broken for GHC 7.x.)
Also remove duplicate "Checking" from messages.
Eventually we should probably do this for all packages, but we certainly need it for base on GHC 6.10 (this avoids dealing with some other things, such as base being split up), and I needed it for QuickCheck too, since something had installed the latest version.
Most of this was a find-and-replace, PolyplateM -> AlloyA. But I also fixed some of the opsets and removed types that were no longer needed, and so on.