No, really, what's a monad?
rmarcus.info
rmarcus.info
> Hopefully you have now gained at least a little sympathy for the Haskell purist who laments Python’s lack of 1st class support for monads. In languages like Haskell, applying a monad to a function doesn’t require you to refactor that function into a bunch of calls to bind: every function actually already uses the identity/trivial monad, and you can swap out the implementation anytime you want.
One final listing that showed one of the earlier examples in Haskell to get a taste of "1st class support for monads" would have made this article perfect.