diff --git a/pkgs/development/haskell-modules/default.nix b/pkgs/development/haskell-modules/default.nix index ab3ac6930b9..7e6f1c0552d 100644 --- a/pkgs/development/haskell-modules/default.nix +++ b/pkgs/development/haskell-modules/default.nix @@ -47,18 +47,29 @@ let defaultScope = mkScope self; callPackage = drv: args: callPackageWithScope defaultScope drv args; + withPackages = packages: callPackage ./with-packages-wrapper.nix { + inherit (self) llvmPackages; + haskellPackages = self; + inherit packages; + }; + in import ./hackage-packages.nix { inherit pkgs stdenv callPackage; } self // { inherit mkDerivation callPackage; - ghcWithPackages = pkgs: callPackage ./with-packages-wrapper.nix { - inherit (self) llvmPackages; - haskellPackages = self; - packages = pkgs self; - }; + ghcWithPackages = selectFrom: withPackages (selectFrom self); - ghc = ghc // { withPackages = self.ghcWithPackages; }; + ghcWithHoogle = selectFrom: + let + packages = selectFrom self; + hoogle = callPackage ./hoogle.nix { inherit packages; }; + in withPackages (packages ++ [ hoogle ]); + + ghc = ghc // { + withPackages = self.ghcWithPackages; + withHoogle = self.ghcWithHoogle; + }; }; diff --git a/pkgs/development/haskell-modules/hoogle.nix b/pkgs/development/haskell-modules/hoogle.nix index 822c2bdd82e..89e9b157e68 100644 --- a/pkgs/development/haskell-modules/hoogle.nix +++ b/pkgs/development/haskell-modules/hoogle.nix @@ -98,6 +98,10 @@ stdenv.mkDerivation { chmod +x $out/bin/hoogle ''; + passthru = { + isHaskellLibrary = false; # for the filter in ./with-packages-wrapper.nix + }; + meta = { description = "A local Hoogle database"; platforms = ghc.meta.platforms;