anchor.diff:            ${link dep}
             ${concatMapStrings link (attrValues dep.peerDependencies)}
           '')) ++
  -      ["runHook postConfigure"]
  +      ["runHook postConfigure"] ++
  +      (optional (depClosure != {}) ''
  +        echo Circular dependencies:
  +        echo ${concatStringsSep " " (map (p: p.fullName) (attrValues depClosure))}
  +        exit 1
  +      '')
       );
   
       buildPhase = ''
  
positive.code: 
  let
    inherit (pkgs) stdenv python;
    inherit (pkgs.lib) showVal optional;
    inherit (stdenv.lib) fold removePrefix hasPrefix subtractLists flip
                         intersectLists isAttrs listToAttrs nameValuePair hasAttr
                         mapAttrs filterAttrs attrNames elem concatMapStrings
  
negative.code:           fi
          fi
        '';
        depClosure = cycles {} self;
      in concatStringsSep "\n" (
        ["runHook preConfigure"] ++
        (flip map (attrValues requiredDependencies) (dep:
  