anchor.diff:                      propagatedNativeBuildInputs = propagatedNativeBuildInputsDrvs;
   
                       crossConfig = cross.config;
  -                } // (if args ? crossAttrs then args.crossAttrs else {}));
  +                } // args.crossAttrs or {});
           in nativeDrv // {
               inherit crossDrv nativeDrv;
           };
  
positive.code: 
              # In nixpkgs, sometimes 'null' gets in as a buildInputs element,
              # and we handle that through isAttrs.
              getBuildDrv = drv : if (builtins.isAttrs drv && drv ? nativeDrv) then drv.nativeDrv else drv;
              getHostDrv = drv : if (builtins.isAttrs drv && drv ? crossDrv) then drv.crossDrv else drv;
              nativeBuildInputsDrvs = map (getBuildDrv) nativeBuildInputs;
              buildInputsDrvs = map (getHostDrv) buildInputs;
              buildInputsDrvsAsBuildInputs = map (getBuildDrv) buildInputs;
  
negative.code:           pkg = stdenv.mkDerivation args;
            drv = builtins.unsafeDiscardStringContext pkg.drvPath;
            license =
              pkg.meta.license or
                # Fixed-output derivations such as source tarballs usually
                # don't have licensing information, but that's OK.
                (pkg.outputHash or
                  (builtins.trace
                    "warning: ${drv} lacks licensing information" null));
  
            validate = arg:
              if licensePred license then arg
  