
Hi Thomas,
On Tue, Sep 14, 2010 at 7:11 PM, Thomas DuBuisson
Hello, 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 types easier than coercing to Int then to an 'a' via the Random class.
So when I write a Random instance, under this proposal I write it against a class of RandomGen instances, whereas in the current world I am able to plug and Random instantiated type up with any RandomGen instantiated type. Do you anticipate a common choice for the type 'v' (other than Int, of course)? When I write my Random instance against this new class, am I really targeting one particular good random generator?
3) Not-so-new extensions are used to enable these changes. Extensions include MultiParamTypeClasses, FlexibleContexts, and FunDeps.
4) A patch is included bumping the version from 1.0.0.x to 1.1.0.0.
How many packages on Hackage provide instances for the Random class? How many of these packages provide an upper-bound on the random package in their package description? Do you also propose added an entry in the hackage preferred-versions file[1] for the 'random' package? What I'm truly getting at is: what will this break and how will we handle the breakage under this proposal? Thanks, Antoine [1] http://www.mail-archive.com/cabal-devel@haskell.org/msg03959.html