Generalize the 'RandomGen' and 'Random' classes
RandomGen and Random classes assume generators produce Int values. This is non-ideal as many high speed generators produce special values (ex: doubles) or generic values (bit streams / bytestrings) that can be converted directly to my types easier than coercing to Int then to an 'a' via the Random class.
The proposal is to change the classes from/to:
class RandomGen g where --> class RandomGen g v | g -> v where
class Random a where --> class Random a v where
And make needed changes to the classes instances that follow from these.