Safe Haskell | None |
---|---|
Language | Haskell2010 |
- resolveDependencies :: PackageSet Dependency -> [Dependency] -> DepM [[Dependency]]
- buildSequence :: [Dependency] -> [[Dependency]]
- satisfies :: Ord a => Constraint a -> a -> Bool
- compatible :: Ord a => Constraint a -> Constraint a -> Bool
- data Dependency = Dependency {
- _libName :: String
- _libDependencies :: [(String, Constraint Version)]
- _libVersion :: Version
- newtype PackageSet a = PackageSet (Map String (Set a))
- newtype Version = Version [Integer]
- type DepM = Either ResolveError
- data ResolveError
- data Constraint a
- = LessThanEq a
- | GreaterThanEq a
- | Eq a
- | Bounded (Constraint a) (Constraint a)
- | None
- newtype ResolveStateM m a = ResolveStateM {}
- type ResolveState = ResolveStateM (Either ResolveError)
- type ResMap = Map String Dependency
Functions
resolveDependencies :: PackageSet Dependency -> [Dependency] -> DepM [[Dependency]] Source #
Heuristics:
- 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
This doesn't do any package resolution beyond versioning.
buildSequence :: [Dependency] -> [[Dependency]] Source #
compatible :: Ord a => Constraint a -> Constraint a -> Bool Source #
Types
data Dependency Source #
Dependency | |
|
newtype PackageSet a Source #
PackageSet (Map String (Set a)) |
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.
data Constraint a Source #
LessThanEq a | |
GreaterThanEq a | |
Eq a | |
Bounded (Constraint a) (Constraint a) | |
None |
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 # | |
newtype ResolveStateM m a Source #
MonadTrans ResolveStateM Source # | |
MonadFix m => Monad (ResolveStateM m) Source # | |
MonadFix m => Functor (ResolveStateM m) Source # | |
MonadFix m => MonadFix (ResolveStateM m) Source # | |
MonadFix m => Applicative (ResolveStateM m) Source # | |
type ResolveState = ResolveStateM (Either ResolveError) Source #