code: public boolean remove(Edge e) {
          EdgeSet<T> from = getEdgeSet(e.from());
          EdgeSet<T> to = getEdgeSet(e.to());
          
          int before = numEdges;
          if (from != null && from.remove(e)) {
              numEdges--;
              assert to.contains(e)
                  : "Complementary edge set " + to + "  did not contain " + e;
              // Remove the edge from the EdgeSet for the vertex to which this
              // edge points.
              to.remove(e);
          }
  
          return before != numEdges;        
      }
docs: {@inheritDoc}
  
  <p> This method is sensitive to the vertex ordering; a call will remove
  the vertex for {@code e.to()} from the edge for {@code e.from()}.
  Subclasses should override this method if their {@link EdgeSet}
  implementations are sensitive to the ordering of the vertex indices, or
  if a more advanced behavior is needed.