anchor.diff:  
     oldStorepath = builtins.storePath (discard (toString oldDependency));
   
  -  referencesOf = drv: getAttr (discard (toString drv)) references;
  +  referencesOf = drv: references.${discard (toString drv)};
   
     dependsOnOldMemo = listToAttrs (map
       (drv: { name = discard (toString drv);
  
positive.code:           })
      (filter dependsOnOld (builtins.attrNames references))) // rewrittenDeps;
  
  in assert (stringLength (drvName (toString oldDependency)) == stringLength (drvName (toString newDependency)));
  if hasAttr (discard (toString drv)) rewriteMemo
  then getAttr (discard (toString drv)) rewriteMemo
  else warn "replace-dependency.nix: derivation ${discard (toString drv)} does not depend on ${discard (toString oldDependency)}\n" drv
  
negative.code:                     any dependsOnOld (referencesOf drv);
            }) (builtins.attrNames references));
  
    dependsOnOld = drv: dependsOnOldMemo.${discard (toString drv)};
  
    drvName = drv:
      discard (substring 33 (stringLength (builtins.baseNameOf drv)) (builtins.baseNameOf drv));
  