anchor.diff:  in let this = rec {
     overrideForGhcjs = haskellPackages: haskellPackages.override {
       overrides = self: super: {
  -    /*
  -      mkDerivation = drv: super.mkDerivation.override {
  -        hscolour = ghc.hscolour;
  -      } (drv // {
  -        doHaddock = false;
  -      });
  -    */
  -
         ghcWithPackages = selectFrom: self.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/with-packages-wrapper.nix") {
           inherit (self) llvmPackages;
           haskellPackages = self;
  
positive.code:       ghc = super.ghc // {
          withPackages = self.ghcWithPackages;
        };
  
      } // (if useTextJSString then overridesForTextJSString self super else {});
    };
  
negative.code:     filterGit = builtins.filterSource (path: type: !(builtins.any (x: x == baseNameOf path) [".git" "default.nix" "shell.nix"]));
      # All imports of sources need to go here, so that they can be explicitly cached
      sources = {
        ghcjs-boot = if builtins.pathExists ./ghcjs-boot/git.json then nixpkgs.fetchgit (builtins.fromJSON (builtins.readFile ./ghcjs-boot/git.json)) else {
          name = "ghcjs-boot";
          outPath = filterGit ./ghcjs-boot;
  