-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Dependency resolution for package management
--
-- A library for resolving dependencies; uses a topological sort to
-- construct a build plan and then allows choice between all compatible
-- plans.
@package dependency
@version 0.1.0.7
module Data.Dependency
-- | 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.
resolveDependencies :: PackageSet Dependency -> [Dependency] -> DepM [[Dependency]]
buildSequence :: [Dependency] -> [[Dependency]]
satisfies :: (Ord a) => Constraint a -> a -> Bool
data Dependency
Dependency :: String -> Constraint Version -> [String] -> Version -> Dependency
[_libName] :: Dependency -> String
[_libConstraint] :: Dependency -> Constraint Version
[_libDependencies] :: Dependency -> [String]
[_libVersion] :: Dependency -> Version
newtype PackageSet a
PackageSet :: (Map String (Set a)) -> PackageSet a
newtype Version
Version :: [Integer] -> Version
type DepM = Either ResolveError
-- | An error that can occur during package resolution.
data ResolveError
InternalError :: ResolveError
NotPresent :: String -> ResolveError
data Constraint a
LessThanEq :: a -> Constraint a
GreaterThanEq :: a -> Constraint a
Eq :: a -> Constraint a
Bounded :: (Constraint a) -> (Constraint a) -> Constraint a
None :: Constraint a