anchor.diff:                `additionalKeys`
                 [ ( (mod4Mask,xK_r), compileRestart True)
                 , ( (mod4Mask,xK_q), restart "xmonad" True ) ]
  +        '';
  +      };
  +
  +      enableConfiguredRecompile = mkOption {
  +        default = false;
  +        type = lib.types.bool;
  +        description = ''
  +          Enable recompilation even if <option>config</option> is set to a
  +          non-null value. This adds the necessary Haskell dependencies (GHC with
  +          packages) to the xmonad binary's environment.
           '';
         };
   
  
positive.code:           xmonad from PATH. This allows e.g. switching to the new xmonad binary
            after rebuilding your system with nixos-rebuild.
            For the same reason, ghc is not added to the environment when this
            option is set.
  
            If you actually want to run xmonad with a config specified here, but
            also be able to recompile and restart it from a copy of that source in
            $HOME/.xmonad on the fly, you will have to implement that yourself
            using something like "compileRestart" from the example.
            This should allow you to switch at will between the local xmonad and
            the one NixOS puts in your PATH.
          '';
  
negative.code:     in
        pkgs.runCommandLocal "xmonad" {
          nativeBuildInputs = [ pkgs.makeWrapper ];
        } (''
          install -D ${xmonadEnv}/share/man/man1/xmonad.1.gz $out/share/man/man1/xmonad.1.gz
          makeWrapper ${configured}/bin/xmonad $out/bin/xmonad \
        '' + optionalString cfg.enableConfiguredRecompile ''
            --set NIX_GHC "${xmonadEnv}/bin/ghc" \
        '' + ''
            --set XMONAD_XMESSAGE "${pkgs.xorg.xmessage}/bin/xmessage"
        '');
  
    xmonad = if (cfg.config != null) then xmonad-config else xmonad-vanilla;
  in {
  