This is not a monads tutorial! There are lots of those in the world already. The best of those tutorials do a decent job of explaining the what and how of monads, but I haven't come across one that I think really nails the why. This essay is an attempt to fill this gap. To explain the why of monads, we have to first explain the why of the functional style of programming. The functional style has t