This module contains the raw random number generator algorithm. Usually you would import Random.MWC.Pure for a more convinient API.

# Random seed

seed :: [Word32] -> SeedSource

Create a new random seed value from the supplied list of `Word32`

values. If the list is empty, return a default, hard-coded value.
Otherwise, every element of the list affects the result. The list
*must* be finite; the function will loop forever othewise.

# Random number generation

next_word :: Seed -> (Word32, Seed)Source

Given an initial `Seed`

value, return a random `Word32`

and a new
`Seed`

value.

The `Word32`

value is chosen psuedo-randomly (i.e., the same `Seed`

is guaranteed to always yield the same choice) with uniform
distribution (i.e., all possibilities equally likely) over the
complete range from 0x00000000 to 0xFFFFFFFF inclusive.