@@ -1,9 +1,10 @@
11{ lib, stdenv, glibcLocales, pkgconfig, ghcForComponent, makeConfigFiles, hsPkgs, hoogleLocal, haskellLib }:
22
3−{ packages, withHoogle ? true, ... } @ args:
3+{ packages, additional ? _: [], withHoogle ? true, ... } @ args:
44
55let
66 selected = packages hsPkgs;
7+ additionalSelected = additional hsPkgs;
78 selectedConfigs = map (p: p.components.all.config) selected;
89
910 name = if lib.length selected == 1
@@ -15,7 +16,7 @@ let
1516 # new-style commands.
1617 packageInputs = lib.filter
1718 (input: lib.all (cfg: input.identifier != cfg.identifier) selected)
18− (lib.concatMap (cfg: cfg.depends) selectedConfigs);
19+ (lib.concatMap (cfg: cfg.depends) selectedConfigs ++ additionalSelected);
1920
2021 # Add the system libraries and build tools of the selected haskell
2122 # packages to the shell.
@@ -53,7 +54,7 @@ let
5354 # inherit (hsPkgs) hoogle;
5455 };
5556
56− mkDrvArgs = builtins.removeAttrs args ["packages" "withHoogle"];
57+ mkDrvArgs = builtins.removeAttrs args ["packages" "additional" "withHoogle"];
5758in
5859 stdenv.mkDerivation (mkDrvArgs // {
5960 name = mkDrvArgs.name or name;