A monad is just a monoid in the category of endofunctors, what's the problem? | Hacker News Reader