anchor.diff:  { stdenv, fetchurl
   , coreutils, gnused, getopt, pwgen, git, tree, gnupg
   , makeWrapper
  -, withX ? true, xclip, xdotool, dmenu
  +
  +, xclip ? null, xdotool ? null, dmenu ? null
  +, x11Support ? true
   }:
   
  -assert withX -> xclip != null;
  -assert withX -> xdotool != null;
  -assert withX -> dmenu != null;
  +assert x11Support -> xclip != null
  +                  && xdotool != null
  +                  && dmenu != null;
   
   stdenv.mkDerivation rec {
     version = "1.6.5";
  
positive.code: 
      # Ensure all dependencies are in PATH
      wrapProgram $out/bin/pass \
        --prefix PATH : "${coreutils}/bin:${gnused}/bin:${getopt}/bin:${gnupg}/bin:${git}/bin:${tree}/bin:${pwgen}/bin${if withX then ":${xclip}/bin" else ""}"
  
      ${if withX then ''
        wrapProgram $out/bin/passmenu \
          --prefix PATH : "$out/bin:${xdotool}/bin:${dmenu}/bin"
      '' else ""}
  
negative.code:     mkdir -p "$out/share/emacs/site-lisp"
      cp "contrib/emacs/password-store.el" "$out/share/emacs/site-lisp/"
  
      ${if x11Support then ''
        cp "contrib/dmenu/passmenu" "$out/bin/"
      '' else ""}
    '';
  