anchor.diff:  
       compiledConfig = printf "xmonad-%s-%s" arch os
   
  -    compileRestart resume =
  -      whenX (recompile True) $
  +    compileRestart resume = do
  +      dirs <- asks directories
  +
  +      whenX (recompile dirs True) $
           when resume writeStateToFile
             *> catchIO
               ( do
  -                dir <- getXMonadDataDir
                   args <- getArgs
  -                executeFile (dir </> compiledConfig) False args Nothing
  +                executeFile (cacheDir dirs </> compiledConfig) False args Nothing
               )
     '';
   
  
positive.code:     import System.Environment (getArgs)
      import System.FilePath ((</>))
  
      main = launch $ def { startupHook = startup } `additionalKeysP` myKeys
  
      startup = isSessionStart >>= \sessInit ->
        spawn "touch /tmp/${name}"
  
negative.code: 
      # set up the new config
      machine.succeed("mkdir -p ${user.home}/.xmonad")
      machine.copy_from_host("${newConfig}", "${user.home}/.config/xmonad/xmonad.hs")
  
      # recompile xmonad using the new config
      machine.send_key("alt-ctrl-q")
  