Utils.File
Documentation
Cache results of operation op under name fn.
if correct file is found, its contents are used, otherwise op is performed and it's results
are saved to the filed and returned from the call.
inDirectory :: FilePath -> IO a -> IO aSource