def implicit_graph
      result = ImplicitGraph.new { |g|
        g.vertex_iterator { |b| self.each_vertex(&b) }
        g.adjacent_iterator { |v, b| self.each_adjacent(v, &b) }
        g.directed = self.directed?
      }
      yield result if block_given? # let client overwrite defaults
      result
    end
def implicit_graph
      result = ImplicitGraph.new { |g|
        g.vertex_iterator { |b| self.each_vertex(&b) }
        g.adjacent_iterator { |v, b| self.each_adjacent(v, &b) }
        g.directed = self.directed?
      }
      yield result if block_given? # let client overwrite defaults
      result
    end
Return a new ImplicitGraph which is isomorphic (i.e. has same edges and
 vertices) to the receiver.  It is a shortcut, also used by
 edges_filtered_by and vertices_filtered_by.