What the f**k is a monad again?

Monads in plain JavaScript: Maybe, map, chain, Promise, and why the weird box thing turns out to be useful.