A simple generic DirectedGraph class library with depth-first search