@Override
    public void remove() {
      if (myLastReturned == null) {
        throw new NoSuchElementException();
      }

      if (myLastReturned.makeUnique()) {
        myDelegate.remove();
        myLastReturned.disposeWithoutRemoval();
        myLastReturned = null;
      }
    }
@Override
    public void remove()