{ overlays ? [] }: let sources = import ./sources.nix; settings = import ./settings.nix; overlay = final: prev: { haskell = prev.haskell // { packages = prev.haskell.packages // { "${settings.ghc}" = prev.haskell.packages."${settings.ghc}".override { overrides = haskellOverlay prev; }; }; }; }; haskellOverlay = pkgs: final: prev: { attoparsec-iso8601 = prev.attoparsec-iso8601_1_1_0_0; http-api-data = prev.http-api-data_0_5; servant = pkgs.haskell.lib.doJailbreak prev.servant; servant-server = pkgs.haskell.lib.doJailbreak prev.servant-server; unicode-data = prev.unicode-data_0_4_0_1; unicode-data-names = pkgs.haskell.lib.markUnbroken prev.unicode-data-names; }; in import sources.nixpkgs { overlays = overlays ++ [overlay]; }