Cabal- A framework for packaging Haskell softwareSource codeContentsIndex
MaintainerIsaac Jones <>
Package ids
Package dependencies
Package classes
Deprecated compat stuff
Packages are fundamentally just a name and a version.
data PackageIdentifier = PackageIdentifier {
pkgName :: String
pkgVersion :: Version
parsePackageName :: ReadP r String
data Dependency = Dependency String VersionRange
thisPackageVersion :: PackageIdentifier -> Dependency
notThisPackageVersion :: PackageIdentifier -> Dependency
class Package pkg where
packageId :: pkg -> PackageIdentifier
packageName :: Package pkg => pkg -> String
packageVersion :: Package pkg => pkg -> Version
class Package pkg => PackageFixedDeps pkg where
depends :: pkg -> [PackageIdentifier]
showPackageId :: PackageIdentifier -> String
Package ids
data PackageIdentifier Source
The name and version of a package.
pkgName :: StringThe name of this package, eg. foo
pkgVersion :: Versionthe version of this package, eg 1.2
show/hide Instances
parsePackageName :: ReadP r StringSource
Package dependencies
data Dependency Source
Dependency String VersionRange
show/hide Instances
thisPackageVersion :: PackageIdentifier -> DependencySource
notThisPackageVersion :: PackageIdentifier -> DependencySource
Package classes
class Package pkg whereSource

Class of things that can be identified by a PackageIdentifier

Types in this class are all notions of a package. This allows us to have different types for the different phases that packages go though, from simple name/id, package description, configured or installed packages.

packageId :: pkg -> PackageIdentifierSource
show/hide Instances
packageName :: Package pkg => pkg -> StringSource
packageVersion :: Package pkg => pkg -> VersionSource
class Package pkg => PackageFixedDeps pkg whereSource

Subclass of packages that have specific versioned dependencies.

So for example a not-yet-configured package has dependencies on version ranges, not specific versions. A configured or an already installed package depends on exact versions. Some operations or data structures (like dependency graphs) only make sense on this subclass of package types.

depends :: pkg -> [PackageIdentifier]Source
show/hide Instances
Deprecated compat stuff
showPackageId :: PackageIdentifier -> StringSource
Produced by Haddock version 2.3.0