code: public boolean retainAll(Collection<?> c) {
          if (!(c instanceof RegularEnumSet))
              return super.retainAll(c);
  
          RegularEnumSet<?> es = (RegularEnumSet<?>)c;
          if (es.elementType != elementType) {
              boolean changed = (elements != 0);
              elements = 0;
              return changed;
          }
  
          long oldElements = elements;
          elements &= es.elements;
          return elements != oldElements;
      }
docs: Retains only the elements in this set that are contained in the
  specified collection.
  
  @param c elements to be retained in this set
  @return <tt>true</tt> if this set changed as a result of the call
  @throws NullPointerException if the specified collection is null