HORIZON HASKELLDocslts/ghc-9.14.x3e2d5682026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 3e2d568 · 2026-10-11

Modulehorizon-config-shell-0.12.1GHC2024

Horizon.Config.Prune

What a package set must carry: the declared roots and everything they reach through the generated derivations. A declaration outside that closure is a pin nothing needs.

The dependency graph is read from the nix horizon-gen-nix wrote (pkgs/NAME.nix), not from cabal files: a cabal2nix derivation's argument set is every Haskell dependency of every component — library, executables, tests, benchmarks, setup and build tools — so a package kept only for another package's test suite still counts as reached, as it must while the set builds with checks on.

  • 1 type
  • 4 values
datadata Report
#

Constructors

Instances2Eq, Show
  • Eq ReportDefined in horizon-config-shell-0.12.1 · Horizon.Config.Prune
  • Show ReportDefined in horizon-config-shell-0.12.1 · Horizon.Config.Prune
valueprune :: FilePath -> [Text] -> [Text] -> IO Report
#

Walk from the roots over the derivations under dir (the export's pkgs directory), restricted to the declared packages.

valuederivationArgs :: Text -> Set Text
#

The formal arguments of a generated derivation: the names between its opening { and the }: that closes the argument set. Besides Haskell packages these include mkDerivation, lib, fetchers and system libraries; closure only follows the declared names.