| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Dependency
- resolveDependencies :: PackageSet Dependency -> [Dependency] -> DepM [[Dependency]]
- data Dependency = Dependency {
- _libName :: String
- _libDependencies :: [(String, Constraint Version)]
- _libVersion :: Version
- newtype PackageSet a = PackageSet {
- _packageSet :: Map String (Set a)
- newtype Version = Version [Natural]
- type DepM = Either ResolveError
- data ResolveError
- data Constraint a
- = LessThanEq a
- | GreaterThanEq a
- | Eq a
- | Bounded (Constraint a) (Constraint a)
- | None
Functions
Arguments
| :: PackageSet Dependency | Package set |
| -> [Dependency] | Dependencies requested |
| -> DepM [[Dependency]] | Phased build |
Dependency resolution is guided by the following:
- Always use a newer version when possible
- Obey constraints
- Specify an error for circular dependencies
- Specify an error for overconstrained builds
- Specify an error if a package is not present
- Present a solution whenever one exists.
This doesn't do any package resolution beyond versioning.
Types
data Dependency Source #
A generic dependency, consisting of a package name and version, as well as dependency names and their constraints.
Constructors
| Dependency | |
Fields
| |
Instances
newtype PackageSet a Source #
A package set is simply a map between package names and a set of packages.
Constructors
| PackageSet | |
Fields
| |
Instances
| Foldable PackageSet Source # | |
| Eq a => Eq (PackageSet a) Source # | |
| Ord a => Ord (PackageSet a) Source # | |
| Generic (PackageSet a) Source # | |
| Binary a => Binary (PackageSet a) Source # | |
| type Rep (PackageSet a) Source # | |
type DepM = Either ResolveError Source #
data ResolveError Source #
An error that can occur during package resolution.
Constructors
| InternalError | |
| NotPresent String | |
| Conflicts [String] String | |
| CircularDependencies String String |
Instances
data Constraint a Source #
Monoid/functor for representing constraints.
Constructors
| LessThanEq a | |
| GreaterThanEq a | |
| Eq a | |
| Bounded (Constraint a) (Constraint a) | |
| None |
Instances
| Functor Constraint Source # | |
| Eq a => Eq (Constraint a) Source # | |
| Ord a => Ord (Constraint a) Source # | |
| Show a => Show (Constraint a) Source # | |
| Generic (Constraint a) Source # | |
| Semigroup (Constraint a) Source # | |
| Monoid (Constraint a) Source # | |
| Pretty a => Pretty (Constraint a) Source # | |
| NFData a => NFData (Constraint a) Source # | |
| Recursive (Constraint a) Source # | |
| Corecursive (Constraint a) Source # | |
| type Rep (Constraint a) Source # | |
| type Base (Constraint a) Source # | |