code: public static <T> T require(T reference, Predicate<T> predicate) {
          return require(reference, predicate, "Expected to fulfill the requirement, got '%s'", reference);
      }
docs: Precondition that clients are required to fulfill.
  Violations are considered to be programming errors, on the clients part.
  
  @param <T>       type of object to check
  @param reference the reference to check
  @param predicate the predicate that the given reference must satisfy
  @return the validated object
  @throws RequireViolation if the <tt>predicate</tt> is <b>false</b>