anchor.diff:    # Different ways of specifying the hash.
   , outputHash ? ""
   , outputHashAlgo ? ""
  -, md5 ? ""
  -, sha1 ? ""
   , sha256 ? ""
   , sha512 ? ""
   
  
positive.code: let
  
    hasHash = showURLs || (outputHash != "" && outputHashAlgo != "")
      || md5 != "" || sha1 != "" || sha256 != "" || sha512 != "";
    urls_ = if urls != [] then urls else [url];
  
  in
  
negative.code:   preferHashedMirrors = true;
  
    # New-style output content requirements.
    outputHashAlgo =
      if outputHashAlgo != "" then
        outputHashAlgo
      else if sha512 != "" then
        "sha512"
      else if sha256 != "" then
        "sha256"
      else
        throw "Unsupported hash";
    outputHash =
      if outputHash != "" then
        outputHash
      else if sha512 != "" then
        sha512
      else if sha256 != "" then
        sha256
      else
        throw "Unsupported hash";
  
    outputHashMode = if (recursiveHash || executable) then "recursive" else "flat";
  
  