Basic random number generator support based on the one available on the Haskell library
Interface for random number generators.
- rangereturns the range of values returned by the generator.
- split : g → g × gThe 'split' operation allows one to obtain two distinct random number generators. This is very useful in functional programs (for example, when passing a random number generator down to recursive calls). 
Instances
Equations
- instInhabitedStdGen = { default := mkStdGen }
Equations
- One or more equations did not get rendered due to their size.
Returns a pseudorandom number between lo and hi, using and updating a saved random generator
state.
This state can be seeded using IO.setRandSeed.
Equations
- IO.rand lo hi = do let gen ← ST.Ref.get IO.stdGenRef match randNat gen lo hi with | (r, gen) => do ST.Ref.set IO.stdGenRef gen pure r