genericArbitrary is:exact

Pick a constructor with a given distribution, and fill its fields with recursive calls to arbitrary.

Example

genericArbitrary (2 % 3 % 5 % ()) :: Gen a
Picks the first constructor with probability 2/10, the second with probability 3/10, the third with probability 5/10.
Create a arbitrary generator for a specified a type in a naive way. Please be careful when using this function, particularly for recursive types.