debian-3.83.3.1: 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.