1{ pkgs, stdenv, lib, haskellLib, ghc, all-cabal-hashes
2, buildHaskellPackages
3, compilerConfig ? (self: super: {})
4, packageSetConfig ? (self: super: {})
5, overrides ? (self: super: {})
6, initialPackages ? import ./initial-packages.nix
7, nonHackagePackages ? import ./non-hackage-packages.nix
8, configurationCommon ? import ./configuration-common.nix
9, configurationNix ? import ./configuration-nix.nix
10}:
11
12let
13
14 inherit (lib) extends makeExtensible;
15 inherit (haskellLib) makePackageSet;
16
17 haskellPackages = pkgs.callPackage makePackageSet {
18 package-set = initialPackages;
19 inherit stdenv haskellLib ghc buildHaskellPackages extensible-self all-cabal-hashes;
20 };
21
22 commonConfiguration = configurationCommon { inherit pkgs haskellLib; };
23 nixConfiguration = configurationNix { inherit pkgs haskellLib; };
24
25 extensible-self = makeExtensible
26 (extends overrides
27 (extends packageSetConfig
28 (extends compilerConfig
29 (extends commonConfiguration
30 (extends nixConfiguration
31 (extends nonHackagePackages
32 haskellPackages))))));
33
34in
35
36 extensible-self