| 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 Source #
A package path consists of a namespace and a package path inside that namespace.
Constructors
| PackagePath Namespace Qualifier |
Instances
| Eq PackagePath Source # | |
Defined in Distribution.Solver.Types.PackagePath | |
| Ord PackagePath Source # | |
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 # | |
| Show PackagePath Source # | |
Defined in Distribution.Solver.Types.PackagePath Methods showsPrec :: Int -> PackagePath -> ShowS # show :: PackagePath -> String # showList :: [PackagePath] -> ShowS # | |
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
| Eq Namespace Source # | |
| Ord Namespace Source # | |
Defined in Distribution.Solver.Types.PackagePath | |
| Show Namespace Source # | |
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
| Eq Qualifier Source # | |
| Ord Qualifier Source # | |
Defined in Distribution.Solver.Types.PackagePath | |
| Show Qualifier Source # | |
dispQualifier :: Qualifier -> Doc Source #
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
| Eq a => Eq (Qualified a) Source # | |
| Ord a => Ord (Qualified a) Source # | |
Defined in Distribution.Solver.Types.PackagePath | |
| Show a => Show (Qualified a) Source # | |
type QPN = Qualified PackageName Source #
Qualified package name.