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