Simple, step-by-step derivation of Maybe and Free monads from first-principles | Dark Hacker News