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.