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, configurationCommon ? import ./configuration-common.nix
8, configurationNix ? import ./configuration-nix.nix
9}:
10
11let
12
13 inherit (lib) extends makeExtensible;
14 inherit (haskellLib) makePackageSet;
15
16 haskellPackages = pkgs.callPackage makePackageSet {
17 package-set = initialPackages;
18 inherit stdenv haskellLib ghc buildHaskellPackages extensible-self all-cabal-hashes;
19 };
20
21 commonConfiguration = configurationCommon { inherit pkgs haskellLib; };
22 nixConfiguration = configurationNix { inherit pkgs haskellLib; };
23
24 extensible-self = makeExtensible
25 (extends overrides
26 (extends packageSetConfig
27 (extends compilerConfig
28 (extends commonConfiguration
29 (extends nixConfiguration haskellPackages)))));
30
31in
32
33 extensible-self