úÎ e )6Class of types that we have efficient generators for. ?Given a pure mersenne twister state, yield a new random value,  and the next state. !Return a random vector of length n, filled with random elements  of type a$ generated by the mersenne-twister. IE.g. to compute the sum of 100 million random Double values in a vector:  * import qualified Data.VectorUnboxed as U & import System.Random.Mersenne.Pure64 3 import qualified Data.Vector.Random.Mersenne as G   main = do  g <- newPureMT 4 let a = G.random g 10000000 :: U.Vector Double  print (U.sum a) DThe generator will fuse under stream fusion, so e.g. sum . random g & will allocate no intermediate array. vector-random-0.2Data.Vector.Random.Mersenne PureMTRandomrandomrandomsrandomS