anchor.diff:        (with pkgs; [ xz.bin xz.out libcxx libcxxabi ]) ++
         (with pkgs.darwin; [ dyld Libsystem CF ICU locale ]);
   
  -    overrides = persistent1 prevStage;
  -  };
  -
  -  persistent2 = prevStage: self: super: with prevStage; {
  -    inherit
  -      patchutils m4 scons flex perl bison unifdef unzip openssl python
  -      gettext sharutils libarchive pkg-config groff bash subversion
  -      openssh sqlite sed serf openldap db cyrus-sasl expat apr-util
  -      findfreetype libssh curl cmake autoconf automake libtool cpio
  -      libcxx libcxxabi;
  -
  -    darwin = super.darwin // {
  -      inherit (darwin)
  -        dyld Libsystem xnu configd libdispatch libclosure launchd libiconv locale;
  -    };
  -  };
  -
  -  stage3 = prevStage: with prevStage; stageFun 3 prevStage {
  +    overrides = persistent;
  +  };
  +
  +  stage3 = prevStage: let
  +    persistent = self: super: with prevStage; {
  +      inherit
  +        patchutils m4 scons flex perl bison unifdef unzip openssl python
  +        gettext sharutils libarchive pkg-config groff bash subversion
  +        openssh sqlite sed serf openldap db cyrus-sasl expat apr-util
  +        findfreetype libssh curl cmake autoconf automake libtool cpio
  +        libcxx libcxxabi;
  +
  +      darwin = super.darwin // {
  +        inherit (darwin)
  +          dyld Libsystem xnu configd libdispatch libclosure launchd libiconv locale;
  +      };
  +    };
  +  in with prevStage; stageFun 3 prevStage {
       shell = "${pkgs.bash}/bin/bash";
   
       # We have a valid shell here (this one has no bootstrap-tools runtime deps) so stageFun
  
positive.code:     ]);
  
      overrides = self: super:
        let persistent = persistent4 prevStage self super; in persistent // {
          clang = cc;
          llvmPackages = persistent.llvmPackages // { clang = cc; };
          inherit cc;
        };
    };
  
negative.code:     extraBuildInputs = [];
    };
  
    stage1 = prevStage: let
      persistent = _: _: {};
    in with prevStage; stageFun 1 prevStage {
      extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
      extraBuildInputs = [ pkgs.libcxx ];
  
      allowedRequisites =
        [ bootstrapTools ] ++ (with pkgs; [ libcxx libcxxabi ]) ++ [ pkgs.darwin.Libsystem ];
  
      overrides = persistent;
    };
  
    stage2 = prevStage: let
      persistent = self: super: with prevStage; {
        inherit
          zlib patchutils m4 scons flex perl bison unifdef unzip openssl python
          libxml2 gettext sharutils gmp libarchive ncurses pkg-config libedit groff
          openssh sqlite sed serf openldap db cyrus-sasl expat apr-util subversion xz
          findfreetype libssh curl cmake autoconf automake libtool ed cpio coreutils;
  
        darwin = super.darwin // {
          inherit (darwin)
            dyld Libsystem xnu configd ICU libdispatch libclosure launchd;
        };
      };
    in with prevStage; stageFun 2 prevStage {
      extraPreHook = ''
        export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
      '';
  