_: nixpkgs:

{
  haskell = nixpkgs.haskell // {
    packages = nixpkgs.haskell.packages // {
      ghc865 = nixpkgs.haskell.packages.ghc865.override (old: {
        overrides = with nixpkgs.pkgs.haskell.lib; self: super: {
          clay = self.callCabal2nix "clay" nixpkgs.sources.clay {};
          miso = self.callCabal2nix "miso" nixpkgs.sources.miso {};
          wai-middleware-metrics = dontCheck super.wai-middleware-metrics;
        };
      });
      ghcjs = nixpkgs.haskell.packages.ghcjs.override (old: {
        overrides = with nixpkgs.haskell.lib; self: super: {
          QuickCheck = dontCheck super.QuickCheck;
          base-compat-batteries = dontCheck super.http-types;
          clay = dontCheck (self.callCabal2nix "clay" claySrc {});
          comonad = dontCheck super.comonad;
          jsaddle-warp = dontCheck (self.callCabal2nix "jsaddle-warp" "${nixpkgs.sources.jsaddle}/jsaddle-warp" {});
          http-types = dontCheck super.http-types;
          miso = self.callCabal2nix "miso" nixpkgs.sources.miso {};
          network-uri= dontCheck super.network-uri;
          scientific = dontCheck super.scientific; # takes forever
          servant = dontCheck super.servant;
          tasty-quickcheck = dontCheck super.tasty-quickcheck;
          time-compat = dontCheck super.time-compat;
        };
      });
    };
  };
}