@SuppressWarnings("unchecked")
  public static <T> CriteriaChecker<T> ofReader(Reader<?> reader) {
    Preconditions.checkArgument(reader instanceof Fetcher,
            "%s should implement %s", reader.getClass(), Fetcher.class.getName());

    return new CriteriaChecker<>((Reader<T>) reader);
  }
Converts criteria to a string for debugging purposes
criteria/common/test/org/immutables/criteria/personmodel/CriteriaChecker.java