| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Distribution.Solver.Types.PackagePath
Synopsis
- data PackagePath = PackagePath Namespace Qualifier
- data Namespace
- data Qualifier
- dispQualifier :: Qualifier -> Doc
- data Qualified a = Q PackagePath a
- type QPN = Qualified PackageName
- dispQPN :: QPN -> Doc
- showQPN :: QPN -> String
Documentation
data PackagePath #
A package path consists of a namespace and a package path inside that namespace.
Constructors
| PackagePath Namespace Qualifier |
Instances
| Show PackagePath # | |
Defined in Distribution.Solver.Types.PackagePath Methods showsPrec :: Int -> PackagePath -> ShowS # show :: PackagePath -> String # showList :: [PackagePath] -> ShowS # | |
| Eq PackagePath # | |
Defined in Distribution.Solver.Types.PackagePath | |
| Ord PackagePath # | |
Defined in Distribution.Solver.Types.PackagePath Methods compare :: PackagePath -> PackagePath -> Ordering # (<) :: PackagePath -> PackagePath -> Bool # (<=) :: PackagePath -> PackagePath -> Bool # (>) :: PackagePath -> PackagePath -> Bool # (>=) :: PackagePath -> PackagePath -> Bool # max :: PackagePath -> PackagePath -> PackagePath # min :: PackagePath -> PackagePath -> PackagePath # | |
Top-level namespace
Package choices in different namespaces are considered completely independent by the solver.
Constructors
| DefaultNamespace | The default namespace |
| Independent PackageName | A namespace for a specific build target |
Instances
| Show Namespace # | |
| Eq Namespace # | |
| Ord Namespace # | |
Defined in Distribution.Solver.Types.PackagePath | |
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
|
Instances
| Show Qualifier # | |
| Eq Qualifier # | |
| Ord Qualifier # | |
Defined in Distribution.Solver.Types.PackagePath | |
dispQualifier :: 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).
A qualified entity. Pairs a package path with the entity.
Constructors
| Q PackagePath a |
Instances
| Show a => Show (Qualified a) # | |
| Eq a => Eq (Qualified a) # | |
| Ord a => Ord (Qualified a) # | |
Defined in Distribution.Solver.Types.PackagePath | |
type QPN = Qualified PackageName #
Qualified package name.