Monads and Arrows: modelling a build system | Hacker News Reader