type Node = Int |
|
type LNode a = (Node, a) |
|
type UNode = LNode () |
|
type Edge = (Node, Node) |
|
type LEdge b = (Node, Node, b) |
|
type UEdge = LEdge () |
|
data Graph a b |
|
type UGraph = Graph () () |
|
type Adj b = [(b, Node)] |
|
type Context a b = (Adj b, Node, a, Adj b) |
|
type MContext a b = Maybe (Context a b) |
|
type Decomp a b = (MContext a b, Graph a b) |
|
type GDecomp a b = (Context a b, Graph a b) |
|
type Path = [Node] |
|
type LPath a = [LNode a] |
|
type UPath = [UNode] |
|
empty :: Graph a b |
|
embed :: Context a b -> Graph a b -> Graph a b |
|
match :: Node -> Graph a b -> Decomp a b |
|
matchP :: Node -> Graph a b -> Decomp a b |
|
matchAny :: Graph a b -> GDecomp a b |
|
emptyU :: UGraph |
|
embedU :: UContext -> UGraph -> UGraph |
|
matchU :: Node -> UGraph -> UDecomp |
|
matchAnyU :: UGraph -> (UContext, UGraph) |
|
isEmpty :: Graph a b -> Bool |
|
matchSome :: (Graph a b -> Node -> Bool) -> Graph a b -> GDecomp a b |
|
matchThe :: (Graph a b -> Node -> Bool) -> Graph a b -> GDecomp a b |
|
context :: Node -> Graph a b -> Context a b |
|
contextP :: Node -> Graph a b -> Context a b |
|
delNode :: Node -> Graph a b -> Graph a b |
|
delNodes :: [Node] -> Graph a b -> Graph a b |
|
delEdge :: Edge -> Graph a b -> Graph a b |
|
delEdges :: [Edge] -> Graph a b -> Graph a b |
|
delLEdge :: Eq b => LEdge b -> Graph a b -> Graph a b |
|
suc :: Graph a b -> Node -> [Node] |
|
pre :: Graph a b -> Node -> [Node] |
|
neighbors :: Graph a b -> Node -> [Node] |
|
out :: Graph a b -> Node -> [LEdge b] |
|
inn :: Graph a b -> Node -> [LEdge b] |
|
indeg :: Graph a b -> Node -> Int |
|
outdeg :: Graph a b -> Node -> Int |
|
deg :: Graph a b -> Node -> Int |
|
suc' :: Context a b -> [Node] |
|
pre' :: Context a b -> [Node] |
|
neighbors' :: Context a b -> [Node] |
|
out' :: Context a b -> [LEdge b] |
|
inn' :: Context a b -> [LEdge b] |
|
indeg' :: Context a b -> Int |
|
outdeg' :: Context a b -> Int |
|
deg' :: Context a b -> Int |
|
node' :: Context a b -> Node |
|
lab' :: Context a b -> a |
|
labNode' :: Context a b -> LNode a |
|
noNodes :: Graph a b -> Int |
|
nodeRange :: Graph a b -> (Node, Node) |
|
nodes :: Graph a b -> [Node] |
|
labNodes :: Graph a b -> [LNode a] |
|
edges :: Graph a b -> [Edge] |
|
labEdges :: Graph a b -> [LEdge b] |
|
newNodes :: Int -> Graph a b -> [Node] |
|
insNode :: LNode a -> Graph a b -> Graph a b |
|
insNodes :: [LNode a] -> Graph a b -> Graph a b |
|
insEdge :: LEdge b -> Graph a b -> Graph a b |
|
insEdges :: [LEdge b] -> Graph a b -> Graph a b |
|
mkGraph :: [LNode a] -> [LEdge b] -> Graph a b |
|
mkUGraph :: [Node] -> [Edge] -> UGraph |
|
buildGr :: [Context a b] -> Graph a b |