# Functions
DepthFirstWalk performs a depth-first traversal of the nodes that can be reached from the initial input set.
FilterDegree returns only the nodes with the desired degree.
InDegree is used to compute the in-degree of nodes.
OutDegree is used to compute the in-degree of nodes.
ParseBasic is used to parse a string in the format of: a -> b ; edge name b -> c Into a series of basic node and basic edges.
Sinks is used to get the nodes with out-degree of 0.
Sources is used to get the nodes with in-degree of 0.
StronglyConnectedComponents implements Tarjan's algorithm to find all the strongly connected components in a graph.
Unreachable starts at a given start node, performs a DFS from there, and returns the set of unreachable nodes.
WriteDot is used to emit a GraphViz compatible definition for a directed graph.