code: public static <T> T ensure(T o, Matcher<?> matcher) {
      getProvider().ensurePolicy().check(matcherContract(o, matcher));
      return o;
    }
docs: 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