Distribution.Types.Dependency

Cabal-3.2.1.0: A framework for packaging Haskell software

Safe Haskell | None
Language | Haskell2010

Distribution.Types.Dependency

Synopsis

- data Dependency = Dependency PackageName VersionRange (Set LibraryName)
- depPkgName :: Dependency -> PackageName
- depVerRange :: Dependency -> VersionRange
- depLibraries :: Dependency -> Set LibraryName
- thisPackageVersion :: PackageIdentifier -> Dependency
- notThisPackageVersion :: PackageIdentifier -> Dependency
- simplifyDependency :: Dependency -> Dependency

# Documentation

data Dependency #

Describes a dependency on a source package (API)

Constructors

Dependency PackageName VersionRange (Set LibraryName) | The set of libraries required from the package. Only the selected libraries will be built. It does not affect the cabal-install solver yet.

#### Instances

Instances details

Eq Dependency # |
Instance details Defined in Distribution.Types.Dependency Methods (==) :: Dependency -> Dependency -> Bool # (/=) :: Dependency -> Dependency -> Bool #
Data Dependency # |
Instance details Defined in Distribution.Types.Dependency Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Dependency -> c Dependency Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Dependency Source # toConstr :: Dependency -> Constr Source # dataTypeOf :: Dependency -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Dependency) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Dependency) Source # gmapT :: (forall b. Data b => b -> b) -> Dependency -> Dependency Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Dependency -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Dependency -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Dependency -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Dependency -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Dependency -> m Dependency Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Dependency -> m Dependency Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Dependency -> m Dependency Source #
Read Dependency # |
Instance details Defined in Distribution.Types.Dependency Methods readsPrec :: Int -> ReadS Dependency Source # readList :: ReadS [Dependency] Source # readPrec :: ReadPrec Dependency Source # readListPrec :: ReadPrec [Dependency] Source #
Show Dependency # |
Instance details Defined in Distribution.Types.Dependency Methods showsPrec :: Int -> Dependency -> ShowS Source # show :: Dependency -> String Source # showList :: [Dependency] -> ShowS Source #
Generic Dependency # |
Instance details Defined in Distribution.Types.Dependency Associated Types type Rep Dependency :: Type -> Type Source # Methods from :: Dependency -> Rep Dependency x Source # to :: Rep Dependency x -> Dependency Source #
Binary Dependency # |
Instance details Defined in Distribution.Types.Dependency Methods put :: Dependency -> Put Source # get :: Get Dependency Source # putList :: [Dependency] -> Put Source #
NFData Dependency # |
Instance details Defined in Distribution.Types.Dependency Methods rnf :: Dependency -> () Source #
Structured Dependency # |
Instance details Defined in Distribution.Types.Dependency Methods structure :: Proxy Dependency -> Structure # structureHash' :: Tagged Dependency MD5
Pretty Dependency # |
Instance details Defined in Distribution.Types.Dependency Methods pretty :: Dependency -> Doc # prettyVersioned :: CabalSpecVersion -> Dependency -> Doc #
Parsec Dependency # |
    >>> simpleParsec "mylib:sub" :: Maybe Dependency
    Just (Dependency (PackageName "mylib") AnyVersion (fromList [LSubLibName (UnqualComponentName "sub")]))
    >>> simpleParsec "mylib:{sub1,sub2}" :: Maybe Dependency
    Just (Dependency (PackageName "mylib") AnyVersion (fromList [LSubLibName (UnqualComponentName "sub1"),LSubLibName (UnqualComponentName "sub2")]))
    >>> simpleParsec "mylib:{ sub1 , sub2 }" :: Maybe Dependency
    Just (Dependency (PackageName "mylib") AnyVersion (fromList [LSubLibName (UnqualComponentName "sub1"),LSubLibName (UnqualComponentName "sub2")]))
    >>> simpleParsec "mylib:{ sub1 , sub2 } ^>= 42" :: Maybe Dependency
    Just (Dependency (PackageName "mylib") (MajorBoundVersion (mkVersion [42])) (fromList [LSubLibName (UnqualComponentName "sub1"),LSubLibName (UnqualComponentName "sub2")]))
Spaces around colon are not allowed:
    >>> simpleParsec "mylib: sub" :: Maybe Dependency
    Nothing
    >>> simpleParsec "mylib :sub" :: Maybe Dependency
    Nothing
    >>> simpleParsec "mylib: {sub1,sub2}" :: Maybe Dependency
    Nothing
    >>> simpleParsec "mylib :{sub1,sub2}" :: Maybe Dependency
    Nothing
Instance details Defined in Distribution.Types.Dependency Methods parsec :: CabalParsing m => m Dependency #
type Rep Dependency # |
Instance details Defined in Distribution.Types.Dependency type Rep Dependency = D1 ('MetaData "Dependency" "Distribution.Types.Dependency" "Cabal-3.2.1.0" 'False) (C1 ('MetaCons "Dependency" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageName) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 VersionRange) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set LibraryName)))))

depPkgName :: Dependency -> PackageName #

depVerRange :: Dependency -> VersionRange #

depLibraries :: Dependency -> Set LibraryName #

thisPackageVersion :: PackageIdentifier -> Dependency #

notThisPackageVersion :: PackageIdentifier -> Dependency #

simplifyDependency :: Dependency -> Dependency #

Simplify the `VersionRange` expression in a `Dependency`. See `simplifyVersionRange`.