···116 # Creates a Haskell package from a source package by calling cabal2nix on the source.
117 callCabal2nix = name: src: self.callPackage (self.haskellSrc2nix { inherit src name; });
118000000000000119 ghcWithPackages = selectFrom: withPackages (selectFrom self);
120121 ghcWithHoogle = selectFrom:
···116 # Creates a Haskell package from a source package by calling cabal2nix on the source.
117 callCabal2nix = name: src: self.callPackage (self.haskellSrc2nix { inherit src name; });
118119+ # : Map Name (Either Path VersionNumber) -> HaskellPackageOverrideSet
120+ # Given a set whose values are either paths or version strings, produces
121+ # a package override set (i.e. (self: super: { etc. })) that sets
122+ # the packages named in the input set to the corresponding versions
123+ packageSourceOverrides =
124+ overrides: self: super: pkgs.lib.mapAttrs (name: src:
125+ let isPath = x: builtins.substring 0 1 (toString x) == "/";
126+ generateExprs = if isPath src
127+ then self.callCabal2nix
128+ else self.callHackage;
129+ in generateExprs name src {}) overrides;
130+131 ghcWithPackages = selectFrom: withPackages (selectFrom self);
132133 ghcWithHoogle = selectFrom: