My scripts try to address the usability issues. More details are in the
README, but basically we can run:
quickspec myHaskellDir | renderEqs
This will (hopefully) output conjectures found by QuickSpec about the
functions defined in myHaskellDir. This automatically finds all function
definitions, looks up their types, arities, etc. and invokes QuickSpec
in a subprocess (with optional timeouts and memory limits).
If we leave off the 'renderEqs', we get an easily-parsed JSON format,
which we can feed into other tools.
Note that I make *heavy* use of the Nix language, and it's quite
hit-or-miss whether a package will work. My hope is that more widespread
knowledge of these tools will alleviate some of the existing pain
In particular, many packages define `Arbitrary` instances for their
types, but they do so in their test suites rather than their libraries,
so nobody else can make use of them (I assume this is to keep down