What's a Monad

The motivation is to pass some info down the stack, but without the tedious syntax of extra arguments. The gist, as I understand, is to capture the
extra argument in a function, treated as a single argument (function as first-class citizen), and pass that down the stack.