Cache makefile putStrLns too as output effects
Makefile Memo monad: run the putStrLns ASAP so they aren't lost in case of IO exception