Tempted to do something similar with Shake. I wonder if it could be easier to test. Probably would be more verbose though.
Shake already supports change detection by hashing the content, see ChangeDigest
and ChangeModtimeAndDigest
here https://hackage.haskell.org/package/shake-0.19.7/docs/Development-Shake.html#t:Change.
It also supports the concept of a remote cache, at least in the form of a shared directory.
Or am I misunderstanding what you mean…? :-)
Thank you, good to hear that Shake seems to support the strategy of the article well. I feel like it could be be more robust if written with Shake, this is why I wondered.
I’ve had lots of fun with the synacor challenge. You get a binary file and the description of the architecture of a machine which could execute it, and start by writing a vm to run the file. Can’t recommend it enough :-)