Accessing functions

Mainly as a proof of concept (if this is repeated multiple times it might
be very inefficient, depending on whether the dictionary for the Enumerable
is shared or not) we define a function to index into an enumeration.

A version of values with a limited number of values in each inner list.
If the list corresponds to a Part which is larger than the bound it evenly
distributes the values across the enumeration of the Part.

A rather simple but general property testing driver.
The property is an (funcurried) IO function that both tests and reports the
error. The driver goes on forever or until the list is exhausted,
reporting its progress and the number of
tests before each new part.