Using the state monad: generating random values
Random values in the state monad
Running the state monad
Chapter 14