What is a monad? And who needs Haskell anyway?

Thank you, @alice. This explains Haskell's do notation in a way that many of us can grok, and thus serves to unify related concepts in Rust.