anchor.diff:        done < graph
       '';
   
  +
     # Quickly create a set of symlinks to derivations.
     # entries is a list of attribute sets like { name = "name" ; path = "/nix/store/..."; }
     linkFarm = name: entries: runCommand name {} ("mkdir -p $out; cd $out; \n" +
       (lib.concatMapStrings (x: "ln -s '${x.path}' '${x.name}';\n") entries));
   
  -  # Require file
  +
  +  # Print an error message if the file with the specified name and
  +  # hash doesn't exist in the Nix store. Do not use this function; it
  +  # produces packages that cannot be built automatically.
     requireFile = { name ? null
                   , sha256 ? null
                   , sha1 ? null
  
positive.code:         exec ${bin} "$@"
        '';
  
    # Copy a path to the Nix store.
    # Nix automatically copies files to the store before stringifying paths.
    # If you need the store path of a file, ${copyPathToStore <path>} can be
    # shortened to ${<path>}.
    copyPathToStore = builtins.filterSource (p: t: true);
  
    # Copy a list of paths to the Nix store.
    copyPathsToStore = builtins.map copyPathToStore;
  
  
negative.code:     let msg =
        if message != null then message
        else ''
          Unfortunately, we cannot download file ${name_} automatically.
          Please go to ${url} to download it yourself, and add it to the Nix store
          using either
            nix-store --add-fixed ${hashAlgo} ${name_}
          or
  