match : Node -> Graph e n -> Decomp e n Decompose a `Graph` into the `Context` found
for the given node and the remaining `Graph`.
All edges leading to `node` will be removed from the
resulting `Graph`.
Totality: total
Visibility: exportmatchAny : Graph e n -> Decomp e n Decompose a graph into the `Context` for the largest `Node`
and the remaining `Graph`.
Totality: total
Visibility: exportisEmpty : Graph e n -> Bool True, if the given graph is empty
Totality: total
Visibility: exportcontexts : Graph e n -> List (Context e n) A list of contexts of a graph
Totality: total
Visibility: exportlabNodes : Graph e n -> List (LNode n) A list of all labeled nodes of a `Graph`
Totality: total
Visibility: exportlab : Graph e n -> Node -> Maybe n Find the label for a `Node`.
Totality: total
Visibility: exportelab : Graph e n -> Node -> Node -> Maybe e Find the label for an `Edge`.
Totality: total
Visibility: exportnodes : Graph e n -> List Node List all 'Node's in the 'Graph'.
Totality: total
Visibility: exportgelem : Node -> Graph e n -> Bool `True` if the `Node` is present in the `Graph`.
Totality: total
Visibility: exportorder : Graph e n -> Nat The number of `Node`s in a `Graph`.
Totality: total
Visibility: exportlabEdges : Graph e n -> List (LEdge e) A list of all `LEdge`s in the `Graph` (in lexicographic order).
Totality: total
Visibility: exportedges : Graph e n -> List Edge List all 'Edge's in the 'Graph'.
Totality: total
Visibility: exportsize : Graph e n -> Nat The number of edges in the graph.
Totality: total
Visibility: exportlneighbours : Graph e n -> Node -> List (Node, e) Find the labelled links to a `Node`.
Totality: total
Visibility: exportneighbourLabels : Graph e n -> Node -> List (n, e) Return the labels of all neighbours of a node paired
with the label of the edges leading to those neighbours.
Totality: total
Visibility: exportneighbours : Graph e n -> Node -> List Node Find the neighbours for a 'Node'.
Totality: total
Visibility: exportdeg : Graph e n -> Node -> Nat The degree of the `Node`.
Totality: total
Visibility: exporthasNeighbour : Graph e n -> Node -> Node -> Bool Checks if there is an undirected edge between two nodes.
Totality: total
Visibility: exporthasEdge : Graph e n -> Edge -> Bool Checks if there is an edge between two nodes.
Totality: total
Visibility: exporthasLEdge : Eq e => Graph e n -> LEdge e -> Bool Checks if there is a labelled edge between two nodes.
Totality: total
Visibility: exportadd : Context e n -> Graph e n -> Graph e n Merge the `Context` into the `DynGraph`.
Context adjacencies should only refer to either a Node already
in a graph.
Behaviour is undefined if the specified 'Node' already exists
in the graph.
Totality: total
Visibility: exportufold : (Context e n -> c -> c) -> c -> Graph e n -> c Fold a function over the graph by recursively calling 'match'.
Totality: total
Visibility: exportgmap : (Context e1 n1 -> Context e2 n2) -> Graph e1 n1 -> Graph e2 n2 Map a function over the graph by recursively calling `match`.
Totality: total
Visibility: exportinsNode : Node -> n -> Graph e n -> Graph e n Insert a labeled node into the `Graph`.
The behavior is undefined if the node is already
in the graph.
Totality: total
Visibility: exportinsEdge : LEdge e -> Graph e n -> Graph e n Insert a `LEdge` into the 'Graph'.
Behavior is undefined if the edge does not
connect two nodes already in the graph.
Totality: total
Visibility: exportinsNodes : List (LNode n) -> Graph e n -> Graph e n Insert multiple `LNode`s into the `Graph`.
Totality: total
Visibility: exportinsEdges : List (LEdge e) -> Graph e n -> Graph e n Insert multiple `LEdge`s into the `Graph`.
Totality: total
Visibility: exportdelNode : Node -> Graph e n -> Graph e n Remove a 'Node' from the 'Graph'.
Totality: total
Visibility: exportdelNodes : List Node -> Graph e n -> Graph e n Remove multiple 'Node's from the 'Graph'.
Totality: total
Visibility: exportdelEdge : Edge -> Graph e n -> Graph e n Remove an 'Edge' from the 'Graph'.
Totality: total
Visibility: exportdelEdges : List Edge -> Graph e n -> Graph e n Remove multiple 'Edge's from the 'Graph'.
Totality: total
Visibility: exportlabnfilter : (LNode n -> Bool) -> Graph e n -> Graph e n Returns the subgraph only containing the labelled nodes which
satisfy the given predicate.
Totality: total
Visibility: exportnfilter : (Node -> Bool) -> Graph e n -> Graph e n Returns the subgraph only containing the nodes which satisfy the
given predicate.
Totality: total
Visibility: exportlabfilter : (n -> Bool) -> Graph e n -> Graph e n Returns the subgraph only containing the nodes whose labels
satisfy the given predicate.
Totality: total
Visibility: exportpairWithNeighbours : Graph e n -> Graph e (n, List (n, e)) Retruns the same graph additionaly containing list of connecting
edges and labels to each node.
Totality: total
Visibility: exportpairWithNeighbours' : Graph e n -> Graph e (n, List n) Returns the same graph additionaly containing list of connecting
labels to each node.
Totality: total
Visibility: exportempty : Graph e n An empty `Graph`
Totality: total
Visibility: exportmkGraph : List (LNode n) -> List (LEdge e) -> Graph e n Create a `Graph` from the list of labeled nodes and
edges.
TODO: Can we easily enforce that the edges only point
To the nodes in the list?
Totality: total
Visibility: exportpretty : (e -> String) -> (n -> String) -> Graph e n -> String- Totality: total
Visibility: export