anchor.diff:                       optionals doCheck (testDepends ++ testHaskellDepends ++ testSystemDepends ++ testToolDepends) ++
                        # ghcjs's hsc2hs calls out to the native hsc2hs
                        optional isGhcjs nativeGhc ++
  -                     optionals withBenchmarkDepends (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkToolDepends);
  +                     optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkToolDepends);
     allBuildInputs = propagatedBuildInputs ++ otherBuildInputs;
   
     haskellBuildInputs = stdenv.lib.filter isHaskellPkg allBuildInputs;
  
positive.code:   isSystemPkg = x: !isHaskellPkg x;
  
    allPkgconfigDepends = pkgconfigDepends ++ libraryPkgconfigDepends ++ executablePkgconfigDepends ++
                          optionals doCheck testPkgconfigDepends ++ optionals withBenchmarkDepends benchmarkPkgconfigDepends;
  
    nativeBuildInputs = buildTools ++ libraryToolDepends ++ executableToolDepends ++ [ removeReferencesTo ];
    propagatedBuildInputs = buildDepends ++ libraryHaskellDepends ++ executableHaskellDepends;
  
negative.code: // optionalAttrs (preBuild != "")       { inherit preBuild; }
  // optionalAttrs (postBuild != "")      { inherit postBuild; }
  // optionalAttrs (doCheck)              { inherit doCheck; }
  // optionalAttrs (doBenchmark)          { inherit doBenchmark; }
  // optionalAttrs (checkPhase != "")     { inherit checkPhase; }
  // optionalAttrs (preCheck != "")       { inherit preCheck; }
  // optionalAttrs (postCheck != "")      { inherit postCheck; }
  