Part 1 of a tutorial on monads
exampler.com