 debian1.2: A set of modules for working with debian control files and packages  Contents  Index 

Linspire.Debian.Dependencies 





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


data Status 
Constructors   Instances  


type State a = (Status, [a]) 

complete :: State a > Bool 

data CSP a 


Test CSP


controlCSP :: Control > Relations > (Paragraph > Relations) > CSP Paragraph 
TODO addProvides  see DQL.Exec


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 
JAS: deal with Provides (can a package provide more than one package?)


Tree Helper Functions


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


mkSearchTree :: forall a . CSP a > Tree (State a) 

earliestInconsistency :: CSP a > State a > Maybe ((String, DebianVersion), (String, DebianVersion)) 
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 


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] 

Backtracking Labeler


bt :: Labeler a 

BackJumping Solver


bj :: CSP p > Tree (State p, ConflictSet) > Tree (State p, ConflictSet) 
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.


unionCS :: [ConflictSet] > ConflictSet 

combine :: CSP p > [(State p, ConflictSet)] > [ConflictSet] > ConflictSet 

Produced by Haddock version 0.8 