





Synopsis 

  type State a = (Status, [a])   complete :: State a > Bool   data CSP a = CSP {}   controlCSP :: Control > Relations > (Paragraph > Relations) > CSP Paragraph   testCSP :: FilePath > (Paragraph > Relations) > String > (CSP Paragraph > IO a) > IO a   depF :: Paragraph > Relations   packageVersionParagraph :: Paragraph > (String, DebianVersion)   conflict :: CSP p > p > p > Bool   conflict' :: (String, DebianVersion) > Relation > Bool   mkTree :: a > [Tree a] > Tree a   label :: Tree a > a   initTree :: (a > [a]) > a > Tree a   mapTree :: (a > b) > Tree a > Tree b   foldTree :: (a > [b] > b) > Tree a > b   zipTreesWith :: (a > b > c) > Tree a > Tree b > Tree c   prune :: (a > Bool) > Tree a > Tree a   leaves :: Tree a > [a]   inhTree :: (b > a > b) > b > Tree a > Tree b   distrTree :: (a > [b]) > b > Tree a > Tree b   mkSearchTree :: forall a. CSP a > Tree (State a)   earliestInconsistency :: CSP a > State a > Maybe ((String, DebianVersion), (String, DebianVersion))   type ConflictSet = ([(String, DebianVersion)], [Relation])   isConflict :: ConflictSet > Bool   solutions :: Tree (State a, ConflictSet) > [State a]   type Labeler a = CSP a > Tree (State a) > Tree (State a, ConflictSet)   search :: Labeler a > CSP a > [State a]   bt :: Labeler a   bj :: CSP p > Tree (State p, ConflictSet) > Tree (State p, ConflictSet)   unionCS :: [ConflictSet] > ConflictSet   combine :: CSP p > [(State p, ConflictSet)] > [ConflictSet] > ConflictSet 



Basic CSP Types and Functions



Constructors   Instances  









Test CSP



TODO addProvides  see DQL.Exec











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


Tree Helper Functions






















mkSearchTree





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



conflicting packages and relations that require nonexistant packages










Backtracking Labeler




BackJumping Solver



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.






Produced by Haddock version 2.4.2 