code: @SuppressWarnings("unchecked")
  	@Override
  	public boolean removeAll(Collection<?> c) {
  		if (elements instanceof List<?>) {
  			try {
  				//TODO: copiare codice di difference
  				Collection<T> res = difference((Collection<T>) c).elements;
  				boolean r = !res.equals(elements);
  				elements = res;
  				return r;
  			} catch (ClassCastException e) {
  				return false;
  			}
  		}
  		return elements.removeAll(c);
  	}
docs: {@inheritDoc}