anchor.diff:          reflex-dom-core = addExposeAllUnfoldingsFlag (addReflexOptimizerFlag (doJailbreak reflexDom.reflex-dom-core));
           reflex-todomvc = self.callPackage ./reflex-todomvc {};
   
  -
  -        foundation = if system == "i686-linux" then dontCheck super.foundation else super.foundation; # TODO: We should make sure these test failures get fixed
  -        jsaddle = jsaddlePkgs.jsaddle;
  -        jsaddle-clib = jsaddlePkgs.jsaddle-clib;
  +        inherit (jsaddlePkgs) jsaddle jsaddle-clib jsaddle-wkwebview jsaddle-webkit2gtk jsaddle-webkitgtk;
           jsaddle-warp = dontCheck jsaddlePkgs.jsaddle-warp;
  -        jsaddle-wkwebview = jsaddlePkgs.jsaddle-wkwebview;
  -        jsaddle-webkit2gtk = jsaddlePkgs.jsaddle-webkit2gtk;
  -        jsaddle-webkitgtk = jsaddlePkgs.jsaddle-webkitgtk;
  +
           jsaddle-dom = overrideCabal (self.callPackage ./jsaddle-dom {}) (drv: {
             # On macOS, the jsaddle-dom build will run out of file handles the first time it runs
             preBuild = ''./setup build || true'';
           });
  +
  +        inherit (ghcjsDom) ghcjs-dom-jsffi;
  +
  +        # TODO: Fix this in Cabal
  +        # When building a package with no haskell files, cabal haddock shouldn't fail
           ghcjs-dom-jsaddle = dontHaddock ghcjsDom.ghcjs-dom-jsaddle;
  -        ghcjs-dom-jsffi = ghcjsDom.ghcjs-dom-jsffi;
  -        ghcjs-dom = dontCheck (dontHaddock ghcjsDom.ghcjs-dom);
  -
  -#        Cabal = self.Cabal_1_24_2_0;
  -
  -        gi-atk = appendConfigureFlag super.gi-atk "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-cairo = appendConfigureFlag super.gi-cairo "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-gdk = appendConfigureFlag super.gi-gdk "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-gdkpixbuf = appendConfigureFlag super.gi-gdkpixbuf "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-gio = appendConfigureFlag super.gi-gio "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-glib = appendConfigureFlag super.gi-glib "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-gobject = appendConfigureFlag super.gi-gobject "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-gtk = appendConfigureFlag super.gi-gtk "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-javascriptcore = appendConfigureFlag super.gi-javascriptcore "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-pango = appendConfigureFlag super.gi-pango "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-soup = appendConfigureFlag super.gi-soup "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-webkit = appendConfigureFlag super.gi-webkit "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-webkit2 = appendConfigureFlag (super.gi-webkit2.override {
  +        ghcjs-dom = dontHaddock ghcjsDom.ghcjs-dom;
  +
  +
  +        ########################################################################
  +        # Tweaks
  +        ########################################################################
  +        gi-atk = dontUseOverloads super.gi-atk;
  +        gi-cairo = dontUseOverloads super.gi-cairo;
  +        gi-gdk = dontUseOverloads super.gi-gdk;
  +        gi-gdkpixbuf = dontUseOverloads super.gi-gdkpixbuf;
  +        gi-gio = dontUseOverloads super.gi-gio;
  +        gi-glib = dontUseOverloads super.gi-glib;
  +        gi-gobject = dontUseOverloads super.gi-gobject;
  +        gi-gtk = dontUseOverloads super.gi-gtk;
  +        gi-javascriptcore = dontUseOverloads super.gi-javascriptcore;
  +        gi-pango = dontUseOverloads super.gi-pango;
  +        gi-soup = dontUseOverloads super.gi-soup;
  +        gi-webkit = dontUseOverloads super.gi-webkit;
  +        gi-webkit2 = dontUseOverloads (super.gi-webkit2.override {
             webkitgtk = nixpkgs.webkitgtk214x;
  -        }) "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        gi-gtksource = appendConfigureFlag (super.gi-gtksource.override {
  +        });
  +        gi-gtksource = dontUseOverloads (super.gi-gtksource.override {
             inherit (nixpkgs.gnome3) gtksourceview;
  -        }) "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
  -        haskell-gi = super.haskell-gi;
  -        haskell-gi-base = super.haskell-gi-base;
  +        });
  +
           webkit2gtk3-javascriptcore = super.webkit2gtk3-javascriptcore.override {
             webkitgtk = nixpkgs.webkitgtk214x;
           };
  -        gtk2hs-buildtools = doJailbreak super.gtk2hs-buildtools;
  -        shelly = overrideCabal (doJailbreak super.shelly) (drv: {
  -          preConfigure = (drv.preConfigure or "") + ''
  -            sed -i 's/base .*<.*4\.9\.1/base/' *.cabal
  -            sed -i 's/\(default (T.Text)\)/-- \1/' src/Shelly/Pipe.hs
  -          '';
  -        });
  +
           cabal-macosx = overrideCabal super.cabal-macosx (drv: {
             src = nixpkgs.fetchFromGitHub {
               owner = "hamishmack";
  
positive.code:       ghc = super.ghc // {
          withPackages = self.ghcWithPackages;
        };
  
      } // (if useTextJSString then overridesForTextJSString self super else {});
    };
  
negative.code:     addExposeAllUnfoldingsFlag = if enableExposeAllUnfoldings
        then drv: appendConfigureFlag drv "-fexpose-all-unfoldings"
        else drv: drv;
      # The gi-libraries, by default, will use lots of overloading features of ghc that are still a bit too slow; this function disables them
      dontUseOverloads = p: appendConfigureFlag p "-f-overloaded-methods -f-overloaded-signals -f-overloaded-properties";
      extendHaskellPackages = haskellPackages: makeRecursivelyOverridable haskellPackages {
        overrides = self: super:
          let reflexDom = import ./reflex-dom self nixpkgs;
  