Used to generate a function of type a -> c. The implementation
should use the first argument to perturb the random generator
given as the second argument. the returned generator
is then used to generate the function result.
You can often use variant and >< to implement
coarbitrary.

Generates an integral number from a bounded domain. The number is
chosen from the entire range of the type, but small numbers are
generated more often than big numbers. Inspired by demands from
Phil Wadler.