code: @Override
  	public boolean addAll(Collection<? extends E> c) {
  		// Use linear-time version if applicable
  		if (m.size() == 0 && c.size() > 0 && c instanceof SortedSet && m instanceof OMVRBTree) {
  			SortedSet<? extends E> set = (SortedSet<? extends E>) c;
  			OMVRBTree<E, Object> map = (OMVRBTree<E, Object>) m;
  			Comparator<? super E> cc = (Comparator<? super E>) set.comparator();
  			Comparator<? super E> mc = map.comparator();
  			if (cc == mc || (cc != null && cc.equals(mc))) {
  				map.addAllForOTreeSet(set, PRESENT);
  				return true;
  			}
  		}
  		return super.addAll(c);
  	}
docs: Adds all of the elements in the specified collection to this set.
  
  @param c
  collection containing elements to be added to this set
  @return {@code true} if this set changed as a result of the call
  @throws ClassCastException
  if the elements provided cannot be compared with the elements currently in the set
  @throws NullPointerException
  if the specified collection is null or if any element is null and this set uses natural ordering, or its comparator
  does not permit null elements