Monads explained by Eric Lippert | Hacker News Reader