documentation: commented DirectedGraph and DisjointSet