ambiata/ivory — pull request #435 by markhibberd (2014-11-06 13:22:37+00:00)
Title: Arbitrary review.

Driven by the earlier arbitrary split, this is a long overdue
review of the arbitraries used throughout ivory (but primarily)
those use in ivory-core.

This makes a number of structural changes, specifically
removing the circular arbitrary resolutions, favouring
Gen over Arbitrary for composition and making custom
newtypes for test top level with their own companions.

This fixes a couple of major issues:
- Compile time, for a clean test:compile of ivory-core on my
branch drops from 360s -> 40s.

- Consistency of arbirtraries.

- Removes large amounts of duplication.

- Removes a few more retries.

- Re-groups things into conceptual buckets closer to the
underlying ivory concepts.

Note that there are a few more things that should be done,
these can be seen through out the code as a few `FIX ARB`
tags, and as the arbitrary review issue raised separately.