HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Modulecabal-install-solver-3.12.1.0Haskell2010

Distribution.Solver.Types.PackagePath

  • 5 types
  • 3 values
datadata PackagePath
#

A package path consists of a namespace and a package path inside that namespace.

Instances3Eq, Ord, Show
  • Eq PackagePathDefined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
  • Ord PackagePathDefined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
  • Show PackagePathDefined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
datadata Namespace
#

Top-level namespace

Package choices in different namespaces are considered completely independent by the solver.

Constructors

Instances3Eq, Ord, Show
  • Eq NamespaceDefined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
  • Ord NamespaceDefined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
  • Show NamespaceDefined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
datadata Qualifier
#

Qualifier of a package within a namespace (see PackagePath)

Constructors

  • QualToplevel

    Top-level dependency in this namespace

  • QualBase PackageName

    Any dependency on base is considered independent

    This makes it possible to have base shims.

  • QualSetup PackageName

    Setup dependency

    By rights setup dependencies ought to be nestable; after all, the setup dependencies of a package might themselves have setup dependencies, which are independent from everything else. However, this very quickly leads to infinite search trees in the solver. Therefore we limit ourselves to a single qualifier (within a given namespace).

  • QualExe PackageName PackageName

    If we depend on an executable from a package (via build-tools), we should solve for the dependencies of that package separately (since we're not going to actually try to link it.) We qualify for EACH package separately; e.g., Exe pn1 pn2 qualifies the build-tools dependency on pn2 from package pn1. (If we tracked only pn1, that would require a consistent dependency resolution for all of the depended upon executables from a package; if we tracked only pn2, that would require us to pick only one version of an executable over the entire install plan.)

Instances3Eq, Ord, Show
  • Eq QualifierDefined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
  • Ord QualifierDefined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
  • Show QualifierDefined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
valuedispQualifier :: Qualifier -> Doc
#

Pretty-prints a qualifier. The result is either empty or ends in a period, so it can be prepended onto a package name.

NOTE: the base qualifier is for a dependency _on_ base; the qualifier is there to make sure different dependencies on base are all independent. So we want to print something like "A.base", where the "A." part is the qualifier and "base" is the actual dependency (which, for the Base qualifier, will always be base).

datadata Qualified a
#

A qualified entity. Pairs a package path with the entity.

Constructors

Instances3Eq, Ord, Show
  • Eq a => Eq (Qualified a)Defined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
  • Ord a => Ord (Qualified a)Defined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
  • Show a => Show (Qualified a)Defined in cabal-install-solver-3.12.1.0 · Distribution.Solver.Types.PackagePath
valuedispQPN :: QPN -> Doc
#

Pretty-prints a qualified package name.

valueshowQPN :: QPN -> String
#

String representation of a qualified package name.