debian-3.93.2: Modules for working with the Debian package system

Safe HaskellNone
LanguageHaskell98

Debian.Apt.Dependencies

Contents

Synopsis

Basic CSP Types and Functions

type State a = (Status, [a]) Source #

Test CSP

controlCSP :: Control -> Relations -> (Paragraph -> Relations) -> CSP Paragraph Source #

TODO addProvides -- see DQL.Exec

conflict :: CSP p -> p -> p -> Bool Source #

conflict' :: (BinPkgName, DebianVersion) -> Relation -> Bool Source #

JAS: deal with Provides (can a package provide more than one package?)

Tree Helper Functions

mkTree :: a -> [Tree a] -> Tree a Source #

label :: Tree a -> a Source #

initTree :: (a -> [a]) -> a -> Tree a Source #

mapTree :: (a -> b) -> Tree a -> Tree b Source #

foldTree :: (a -> [b] -> b) -> Tree a -> b Source #

zipTreesWith :: (a -> b -> c) -> Tree a -> Tree b -> Tree c Source #

prune :: (a -> Bool) -> Tree a -> Tree a Source #

leaves :: Tree a -> [a] Source #

inhTree :: (b -> a -> b) -> b -> Tree a -> Tree b Source #

distrTree :: (a -> [b]) -> b -> Tree a -> Tree b Source #

mkSearchTree

mkSearchTree :: forall a. CSP a -> Tree (State a) Source #

earliestInconsistency :: CSP a -> State a -> Maybe ((BinPkgName, DebianVersion), (BinPkgName, DebianVersion)) Source #

earliestInconsistency does what it sounds like the 'reverse as' is because the vars are order high to low, but we want to find the lowest numbered (aka, eariest) inconsistency ??

Conflict Set

type ConflictSet = ([(BinPkgName, DebianVersion)], [Relation]) Source #

conflicting packages and relations that require non-existant packages

type Labeler a = CSP a -> Tree (State a) -> Tree (State a, ConflictSet) Source #

search :: Labeler a -> CSP a -> [State a] Source #

Backtracking Labeler

BackJumping Solver

bj :: CSP p -> Tree (State p, ConflictSet) -> Tree (State p, ConflictSet) Source #

bj - backjumping labeler

If the node already has a conflict set, then leave it alone.

Otherwise, the conflictset for the node is the combination of the conflict sets of its direct children.