anchor.diff:      overrides = nixpkgs.haskell.overlays.combined;
     };
     ghc8_4 = (makeRecursivelyOverridable nixpkgs.haskell.packages.ghc843).override {
  -    overrides = lib.foldr lib.composeExtensions (_: _: {}) (let
  -      haskellOverlays = nixpkgs.haskell.overlays;
  -    in [
  -      nixpkgs.haskell.overlays.combined
  -      (ghcjsPkgs (useTextJSStringAsBootPkg (nixpkgs.haskell.compiler.ghcjs84.override {
  -        ghcjsSrc = fetchgit {
  -          url = "https://github.com/obsidiansystems/ghcjs.git";
  -          rev = "584eaa138c32c5debb3aae571c4153d537ff58f1";
  -          sha256 = "1ib0vsv2wrwf5iivnq6jw2l9g5izs0fjpp80jrd71qyywx4xcm66";
  -          fetchSubmodules = true;
  -        };
  -      })))
  -    ]);
  +    overrides = nixpkgs.haskell.overlays.combined;
     };
     ghc8_2 = (makeRecursivelyOverridable nixpkgs.haskell.packages.ghc822).override {
  -    overrides = lib.foldr lib.composeExtensions (_: _: {}) (let
  -      haskellOverlays = nixpkgs.haskell.overlays;
  -    in [
  -      nixpkgs.haskell.overlays.combined
  -      (ghcjsPkgs nixpkgs.haskell.compiler.ghcjs82)
  -    ]);
  +    overrides = nixpkgs.haskell.overlays.combined;
     };
     ghc8_0 = (makeRecursivelyOverridable nixpkgs.haskell.packages.ghc802).override {
       overrides = nixpkgs.haskell.overlays.combined;
  
positive.code:       '';
      };
  
      # TODO make real
      ghcjs8_0Packages = nixpkgs.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules") {
        ghc = ghc8_2.ghcjs;
        buildHaskellPackages = ghc8_2.ghcjs.bootPkgs;
        compilerConfig = nixpkgs.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix") { inherit haskellLib; };
        packageSetConfig = nixpkgs.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/configuration-ghcjs.nix") { inherit haskellLib; };
        inherit haskellLib;
      };
      ghcjs8_2Packages = nixpkgs.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules") {
        ghc = ghc8_2.ghcjs;
        buildHaskellPackages = ghc8_2.ghcjs.bootPkgs;
        compilerConfig = nixpkgs.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix") { inherit haskellLib; };
        packageSetConfig = nixpkgs.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/configuration-ghcjs.nix") { inherit haskellLib; };
        inherit haskellLib;
      };
      ghcjs8_4Packages = nixpkgs.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules") {
        ghc = ghc8_4.ghcjs;
        buildHaskellPackages = ghc8_4.ghcjs.bootPkgs;
        compilerConfig = nixpkgs.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix") { inherit haskellLib; };
        packageSetConfig = nixpkgs.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/configuration-ghcjs.nix") { inherit haskellLib; };
        inherit haskellLib;
      };
  
    ghcjs = ghcjs8_4;
    ghcjs8_4 = (makeRecursivelyOverridable ghcjs8_4Packages).override {
      overrides = nixpkgs.haskell.overlays.combined;
    };
    ghcjs8_2 = (makeRecursivelyOverridable ghcjs8_2Packages).override {
      overrides = nixpkgs.haskell.overlays.combined;
    };
    ghcjs8_0 = (makeRecursivelyOverridable ghcjs8_0Packages).override {
      overrides = nixpkgs.haskell.overlays.combined;
    };
  
  
negative.code:       sha256 = null;
      });
  
      ghcjsApplyFastWeak = ghcjs: ghcjs.overrideAttrs (drv: {
        patches = (drv.patches or [])
          ++ lib.optional useFastWeak ./fast-weak.patch;
        phases = [ "unpackPhase" "patchPhase" "buildPhase" ];
      });
      useTextJSStringAsBootPkg = ghcjs: if !useTextJSString then ghcjs else ghcjs.overrideAttrs (_: {
        postUnpack = ''
          set -x
  