code: public static <T> Predicate<T> not(final Predicate<? super T> p) {
      return new Predicate<T>() {
        @Override
        public boolean apply(T obj) {
          return !p.apply(obj);
        }
      };
    }
docs: Returns a predicate that evaluates to {@code true} if its
  argument does not satisfy {@code p}.