Monads and Arrows: modelling a build system · HackerTrans