What's a Monad
Basically a reprint from https://vimeo.com/152110601
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.
Still, the function-as-monad thing isn’t very intuitive; container metaphor serves me pretty mostly.
1 | import Prelude hiding ((>>=), return) |