Monads and Functional Random Generators.