docs: public static <T> boolean retainAll(Collection<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure condition) {
          Iterator iter = InvokerHelper.asIterator(self);
          BooleanClosureWrapper bcw = new BooleanClosureWrapper(condition);
          boolean result = false;
          while (iter.hasNext()) {
              Object value = iter.next();
              if (!bcw.call(value)) {
                  iter.remove();
                  result = true;
              }
          }
          return result;
      }