code: public DiGraph<Vertex> reverseDiGraph() {
  	final DiGraph<Vertex> origDiGraph = this;
  	return new DiGraph<Vertex>() {
  	    public Set<Vertex> getRoots() {
  		return origDiGraph.vertices();
  	    }
  	    public BiDiNavigator<Vertex> getBiDiNavigator() {
  		return
  		    GraphUtil.<Vertex>reverseBiDiNavigator(origDiGraph.getBiDiNavigator());
  	    }
  	};
      }
docs: Returns a reverse form of <code>this</code> directed graph: a
  directed graph with the same set of vertices, that contains an
  arc from <code>v1</code> to <code>v2</code> iff
  <code>this</code> graph contains an arc from <code>v2</code>
  to <code>v1</code>.