cabal-install-solver
Safe HaskellNone
LanguageHaskell2010

Distribution.Solver.Modular.Package

Synopsis

Documentation

data I Source #

Instance. A version number and a location.

Constructors

I Ver Loc 

Instances

Instances details
Show I Source # 
Instance details

Defined in Distribution.Solver.Modular.Package

Methods

showsPrec :: Int -> I -> ShowS #

show :: I -> String #

showList :: [I] -> ShowS #

Eq I Source # 
Instance details

Defined in Distribution.Solver.Modular.Package

Methods

(==) :: I -> I -> Bool #

(/=) :: I -> I -> Bool #

Ord I Source # 
Instance details

Defined in Distribution.Solver.Modular.Package

Methods

compare :: I -> I -> Ordering #

(<) :: I -> I -> Bool #

(<=) :: I -> I -> Bool #

(>) :: I -> I -> Bool #

(>=) :: I -> I -> Bool #

max :: I -> I -> I #

min :: I -> I -> I #

data Loc Source #

Location. Info about whether a package is installed or not, and where exactly it is located. For installed packages, uniquely identifies the package instance via its PId.

TODO: More information is needed about the repo.

Constructors

Inst PId 
InRepo 

Instances

Instances details
Show Loc Source # 
Instance details

Defined in Distribution.Solver.Modular.Package

Methods

showsPrec :: Int -> Loc -> ShowS #

show :: Loc -> String #

showList :: [Loc] -> ShowS #

Eq Loc Source # 
Instance details

Defined in Distribution.Solver.Modular.Package

Methods

(==) :: Loc -> Loc -> Bool #

(/=) :: Loc -> Loc -> Bool #

Ord Loc Source # 
Instance details

Defined in Distribution.Solver.Modular.Package

Methods

compare :: Loc -> Loc -> Ordering #

(<) :: Loc -> Loc -> Bool #

(<=) :: Loc -> Loc -> Bool #

(>) :: Loc -> Loc -> Bool #

(>=) :: Loc -> Loc -> Bool #

max :: Loc -> Loc -> Loc #

min :: Loc -> Loc -> Loc #

type PackageId = PackageIdentifier #

Type alias so we can use the shorter name PackageId.

data PackageIdentifier #

The name and version of a package.

Constructors

PackageIdentifier 

Fields

Instances

Instances details
Package PackageIdentifier # 
Instance details

Defined in Distribution.Package

Parsec PackageIdentifier #
>>> simpleParsec "foo-bar-0" :: Maybe PackageIdentifier
Just (PackageIdentifier {pkgName = PackageName "foo-bar", pkgVersion = mkVersion [0]})
>>> simpleParsec "foo-bar" :: Maybe PackageIdentifier
Just (PackageIdentifier {pkgName = PackageName "foo-bar", pkgVersion = mkVersion []})

Note: Stricter than Text instance

>>> simpleParsec "foo-bar-0-0" :: Maybe PackageIdentifier
Nothing
>>> simpleParsec "foo-bar.0" :: Maybe PackageIdentifier
Nothing
>>> simpleParsec "foo-bar.4-2" :: Maybe PackageIdentifier
Nothing
>>> simpleParsec "1.2.3" :: Maybe PackageIdentifier
Nothing
Instance details

Defined in Distribution.Types.PackageId

Pretty PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

Structured PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

Binary PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

NFData PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

Methods

rnf :: PackageIdentifier -> () #

Data PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PackageIdentifier -> c PackageIdentifier #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PackageIdentifier #

toConstr :: PackageIdentifier -> Constr #

dataTypeOf :: PackageIdentifier -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PackageIdentifier) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PackageIdentifier) #

gmapT :: (forall b. Data b => b -> b) -> PackageIdentifier -> PackageIdentifier #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PackageIdentifier -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PackageIdentifier -> r #

gmapQ :: (forall d. Data d => d -> u) -> PackageIdentifier -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PackageIdentifier -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PackageIdentifier -> m PackageIdentifier #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageIdentifier -> m PackageIdentifier #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageIdentifier -> m PackageIdentifier #

Generic PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

Associated Types

type Rep PackageIdentifier 
Instance details

Defined in Distribution.Types.PackageId

type Rep PackageIdentifier = D1 ('MetaData "PackageIdentifier" "Distribution.Types.PackageId" "Cabal-syntax-3.14.1.0-fde2" 'False) (C1 ('MetaCons "PackageIdentifier" 'PrefixI 'True) (S1 ('MetaSel ('Just "pkgName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageName) :*: S1 ('MetaSel ('Just "pkgVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Version)))
Read PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

Show PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

Eq PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

Ord PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

type Rep PackageIdentifier # 
Instance details

Defined in Distribution.Types.PackageId

type Rep PackageIdentifier = D1 ('MetaData "PackageIdentifier" "Distribution.Types.PackageId" "Cabal-syntax-3.14.1.0-fde2" 'False) (C1 ('MetaCons "PackageIdentifier" 'PrefixI 'True) (S1 ('MetaSel ('Just "pkgName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageName) :*: S1 ('MetaSel ('Just "pkgVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Version)))

data PackageName #

A package name.

Use mkPackageName and unPackageName to convert from/to a String.

This type is opaque since Cabal-2.0

Since: Cabal-syntax-2.0.0.2

Instances

Instances details
Parsec PackageName # 
Instance details

Defined in Distribution.Types.PackageName

Methods

parsec :: CabalParsing m => m PackageName #

Pretty PackageName # 
Instance details

Defined in Distribution.Types.PackageName

Structured PackageName # 
Instance details

Defined in Distribution.Types.PackageName

Binary PackageName # 
Instance details

Defined in Distribution.Types.PackageName

NFData PackageName # 
Instance details

Defined in Distribution.Types.PackageName

Methods

rnf :: PackageName -> () #

Data PackageName # 
Instance details

Defined in Distribution.Types.PackageName

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PackageName -> c PackageName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PackageName #

toConstr :: PackageName -> Constr #

dataTypeOf :: PackageName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PackageName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PackageName) #

gmapT :: (forall b. Data b => b -> b) -> PackageName -> PackageName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PackageName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PackageName -> r #

gmapQ :: (forall d. Data d => d -> u) -> PackageName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PackageName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PackageName -> m PackageName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageName -> m PackageName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageName -> m PackageName #

IsString PackageName #

mkPackageName

Since: Cabal-syntax-2.0.0.2

Instance details

Defined in Distribution.Types.PackageName

Generic PackageName # 
Instance details

Defined in Distribution.Types.PackageName

Associated Types

type Rep PackageName 
Instance details

Defined in Distribution.Types.PackageName

type Rep PackageName = D1 ('MetaData "PackageName" "Distribution.Types.PackageName" "Cabal-syntax-3.14.1.0-fde2" 'True) (C1 ('MetaCons "PackageName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortText)))
Read PackageName # 
Instance details

Defined in Distribution.Types.PackageName

Show PackageName # 
Instance details

Defined in Distribution.Types.PackageName

Eq PackageName # 
Instance details

Defined in Distribution.Types.PackageName

Ord PackageName # 
Instance details

Defined in Distribution.Types.PackageName

type Rep PackageName # 
Instance details

Defined in Distribution.Types.PackageName

type Rep PackageName = D1 ('MetaData "PackageName" "Distribution.Types.PackageName" "Cabal-syntax-3.14.1.0-fde2" 'True) (C1 ('MetaCons "PackageName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortText)))

mkPackageName :: String -> PackageName #

Construct a PackageName from a String

mkPackageName is the inverse to unPackageName

Note: No validations are performed to ensure that the resulting PackageName is valid

Since: Cabal-syntax-2.0.0.2

data PkgconfigName #

A pkg-config library name

This is parsed as any valid argument to the pkg-config utility.

Since: Cabal-syntax-2.0.0.2

Instances

Instances details
Parsec PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

Pretty PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

Structured PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

Binary PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

NFData PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

Methods

rnf :: PkgconfigName -> () #

Data PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PkgconfigName -> c PkgconfigName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PkgconfigName #

toConstr :: PkgconfigName -> Constr #

dataTypeOf :: PkgconfigName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PkgconfigName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PkgconfigName) #

gmapT :: (forall b. Data b => b -> b) -> PkgconfigName -> PkgconfigName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PkgconfigName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PkgconfigName -> r #

gmapQ :: (forall d. Data d => d -> u) -> PkgconfigName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PkgconfigName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PkgconfigName -> m PkgconfigName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PkgconfigName -> m PkgconfigName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PkgconfigName -> m PkgconfigName #

IsString PkgconfigName #

mkPkgconfigName

Since: Cabal-syntax-2.0.0.2

Instance details

Defined in Distribution.Types.PkgconfigName

Generic PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

Associated Types

type Rep PkgconfigName 
Instance details

Defined in Distribution.Types.PkgconfigName

type Rep PkgconfigName = D1 ('MetaData "PkgconfigName" "Distribution.Types.PkgconfigName" "Cabal-syntax-3.14.1.0-fde2" 'True) (C1 ('MetaCons "PkgconfigName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortText)))
Read PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

Show PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

Eq PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

Ord PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

type Rep PkgconfigName # 
Instance details

Defined in Distribution.Types.PkgconfigName

type Rep PkgconfigName = D1 ('MetaData "PkgconfigName" "Distribution.Types.PkgconfigName" "Cabal-syntax-3.14.1.0-fde2" 'True) (C1 ('MetaCons "PkgconfigName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortText)))

mkPkgconfigName :: String -> PkgconfigName #

Construct a PkgconfigName from a String

mkPkgconfigName is the inverse to unPkgconfigName

Note: No validations are performed to ensure that the resulting PkgconfigName is valid

Since: Cabal-syntax-2.0.0.2

unPkgconfigName :: PkgconfigName -> String #

Convert PkgconfigName to String

Since: Cabal-syntax-2.0.0.2

data PI qpn Source #

Package instance. A package name and an instance.

Constructors

PI qpn I 

Instances

Instances details
Functor PI Source # 
Instance details

Defined in Distribution.Solver.Modular.Package

Methods

fmap :: (a -> b) -> PI a -> PI b #

(<$) :: a -> PI b -> PI a #

Show qpn => Show (PI qpn) Source # 
Instance details

Defined in Distribution.Solver.Modular.Package

Methods

showsPrec :: Int -> PI qpn -> ShowS #

show :: PI qpn -> String #

showList :: [PI qpn] -> ShowS #

Eq qpn => Eq (PI qpn) Source # 
Instance details

Defined in Distribution.Solver.Modular.Package

Methods

(==) :: PI qpn -> PI qpn -> Bool #

(/=) :: PI qpn -> PI qpn -> Bool #

Ord qpn => Ord (PI qpn) Source # 
Instance details

Defined in Distribution.Solver.Modular.Package

Methods

compare :: PI qpn -> PI qpn -> Ordering #

(<) :: PI qpn -> PI qpn -> Bool #

(<=) :: PI qpn -> PI qpn -> Bool #

(>) :: PI qpn -> PI qpn -> Bool #

(>=) :: PI qpn -> PI qpn -> Bool #

max :: PI qpn -> PI qpn -> PI qpn #

min :: PI qpn -> PI qpn -> PI qpn #

type PN = PackageName Source #

A package name.

type QPV = Qualified PV Source #

Qualified package version.

makeIndependent :: PN -> QPN Source #

Qualify a target package with its own name so that its dependencies are not required to be consistent with other targets.

primaryPP :: PackagePath -> Bool Source #

Is the package in the primary group of packages. This is used to determine (1) if we should try to establish stanza preferences for this goal, and (2) whether or not a user specified --constraint should apply to this dependency (grep primaryPP to see the use sites). In particular this does not include packages pulled in as setup deps.

setupPP :: PackagePath -> Bool Source #

Is the package a dependency of a setup script. This is used to establish whether or not certain constraints should apply to this dependency (grep setupPP to see the use sites).

showI :: I -> String Source #

String representation of an instance.

showPI :: PI QPN -> String Source #

String representation of a package instance.

unPN :: PN -> String Source #

Unpacking a package name.