code: public Set<Vertex> vertices() {
  	if(CACHING && (cachedVertices != null)) 
  	    return cachedVertices;
  	
  	Set<Vertex> vertices = Collections.unmodifiableSet(transitiveSucc(getRoots()));
  
  	if(CACHING) {
  	    cachedVertices = vertices;
  	}
  
  	return vertices;
      }
docs: Returns the set of all vertices from <code>this</code>
  digraph: vertices that are (trasitively and reflexively)
  reachable from the root vertices by following the forward arcs
  provided by the navigator.
  
  <p>The returned set is unmodifiable and has a deterministic
  iteration order (it's based on a <code>LinkedHashSet</code>).
  Moreover, if the following conditions are met, different calls
  to <code>vertices()</code> return equal sets of vertices, with
  the same deterministic iteration order; here are the
  conditions: (1) the navigator and the set of graph roots do
  not change, (2) for each node, the forward graph navigator
  always returns the same list of neighbors (instead of
  re-arragements of them), (3) the set of roots has a
  deterministic iteration order.