anchor.diff:      '';
     };
   
  -  rust-std = { date, hash, system ? stdenv.system }: stdenv.mkDerivation rec {
  +  rust-std = { date, system ? stdenv.system, ... } @ args: stdenv.mkDerivation rec {
       # Strip install.sh, etc
       pname = "rust-std";
       version = "nightly-${date}";
       name = "${pname}-${version}-${system}";
  -    src = fetchzip {
  -      url = mkUrl {
  -        archive = "https://static.rust-lang.org/dist";
  -        inherit pname date system;
  -      };
  -      sha256 = hash;
  -    };
  -    buildCommand= ''
  +    src = fetch (args // {
  +      inherit pname system;
  +      archive = "https://static.rust-lang.org/dist";
  +    });
  +    installPhase = ''
         mkdir -p $out
  -      cp -r "$src"/*/* $out/
  +      mv ./*/* $out/
         rm $out/manifest.in
       '';
     };
  
positive.code:   mkUrl = { pname, archive, date, system }:
      "${archive}/${date}/${pname}-nightly-${mkTarget system}.tar.gz";
  
    generic = { pname, archive, exes }:
        { date, hash, system ? stdenv.system }:
        stdenv.mkDerivation rec {
      name = "${pname}-${version}";
      version = "nightly-${date}";
      # TODO meta;
      outputs = [ "out" "doc" ];
      src = fetchzip {
        url = mkUrl { inherit pname archive date system; };
        sha256 = hash;
      };
      nativeBuildInputs = [ rsync ];
      dontStrip = true;
      unpackPhase = ""; # skip it
      installPhase = ''
        rsync --chmod=u+w -r $src/*/ $out/
      '';
      preFixup = if stdenv.isLinux then let
        # it's overkill, but fixup will prune
  
negative.code: { stdenv, lib, buildEnv, makeWrapper, runCommand, fetchurl, zlib, rsync }:
  
  # rustc and cargo nightly binaries
  
  