anchor.diff:        revision = null;
         editedCabalFile = null;
       });
  -    combineOverrides = old: new: (old // new) // {
  +    combineOverrides = old: new: old // new // optionalAttrs (old ? overrides && new ? overrides) {
         overrides = nixpkgs.lib.composeExtensions old.overrides new.overrides;
       };
  -    makeRecursivelyOverridable = x: old: x.override old // {
  -      override = new: makeRecursivelyOverridable x (combineOverrides old new);
  +    makeRecursivelyOverridable = x: x // {
  +      override = new: makeRecursivelyOverridable (x.override (old: (combineOverrides old new)));
       };
       foreignLibSmuggleHeaders = pkg: overrideCabal pkg (drv: {
         postInstall = ''
  
positive.code:     addFastWeakFlag = if useFastWeak
        then drv: enableCabalFlag drv "fast-weak"
        else drv: drv;
      extendHaskellPackages = haskellPackages: makeRecursivelyOverridable haskellPackages {
        overrides = self: super:
          let reflexDom = import (hackGet ./reflex-dom) self nixpkgs;
              jsaddlePkgs = import (hackGet ./jsaddle) self;
              gargoylePkgs = self.callPackage (hackGet ./gargoyle) self;
  
negative.code: #    ghcjsPackages = nixpkgs.haskell.packages.ghcjs.override {
  #      ghc = builtins.trace "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ghcjsCompiler;
  #    };
    ghcjs = (makeRecursivelyOverridable ghcjsPackages).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghcjs
        (optionalExtension useTextJSString haskellOverlays.textJSString)
      ];
    };
    ghcHEAD = (makeRecursivelyOverridable nixpkgs.pkgs.haskell.packages.ghcHEAD).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghc-head
      ];
    };
    ghc8_2_1 = (makeRecursivelyOverridable nixpkgs.pkgs.haskell.packages.ghc821).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghc-8_2_1
      ];
    };
    ghc = (makeRecursivelyOverridable nixpkgs.pkgs.haskell.packages.ghc802).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghc-8
      ];
    };
    ghc7 = (makeRecursivelyOverridable nixpkgs.pkgs.haskell.packages.ghc7103).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghc-7
      ];
    };
    ghc7_8 = (makeRecursivelyOverridable nixpkgs.pkgs.haskell.packages.ghc784).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghc-7_8
      ];
    };
    ghcAndroidArm64 = (makeRecursivelyOverridable nixpkgsCross.android.arm64Impure.pkgs.haskell.packages.ghc821).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghc-8_2_1
        haskellOverlays.disableTemplateHaskell
        haskellOverlays.android
      ];
    };
    ghcAndroidArmv7a = (makeRecursivelyOverridable nixpkgsCross.android.armv7aImpure.pkgs.haskell.packages.ghc821).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghc-8_2_1
        haskellOverlays.disableTemplateHaskell
        haskellOverlays.android
      ];
    };
    ghcIosSimulator64 = (makeRecursivelyOverridable nixpkgsCross.ios.simulator64.pkgs.haskell.packages.ghc821).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghc-8_2_1
      ];
    };
    ghcIosArm64 = (makeRecursivelyOverridable nixpkgsCross.ios.arm64.pkgs.haskell.packages.ghc821).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghc-8_2_1
        haskellOverlays.disableTemplateHaskell
        haskellOverlays.ios
      ];
    };
    ghcIosArmv7 = (makeRecursivelyOverridable nixpkgsCross.ios.armv7.pkgs.haskell.packages.ghc821).override {
      overrides = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
        extendHaskellPackages
        (optionalExtension enableExposeAllUnfoldings haskellOverlays.exposeAllUnfoldings)
        haskellOverlays.ghc-8_2_1
        haskellOverlays.disableTemplateHaskell
  