src/main/java/org/valid4j/Assertive.java
public static <T> T ensure(T o, Matcher<?> matcher) {
    getProvider().ensurePolicy().check(matcherContract(o, matcher));
    return o;
  }
public static <T> T ensure(T o, Matcher<?> matcher) {
    getProvider().ensurePolicy().check(matcherContract(o, matcher));
    return o;
  }
Postcondition that supplier are supposed to ensure.
Violations are considered to be programming errors,
on the suppliers part.

@param <T>     type of object to check
@param o       the object to check
@param matcher the matcher that the given object must satisfy
@return        the validated object