@SuppressWarnings("unchecked")
  static <R> CriteriaCreator<R> creator() {
    class Local extends AbstractContextHolder implements Self {
      private Local(CriteriaContext context) {
        super(context);
      }
    }

    return ctx -> (R) new Local(ctx);
  }
Intersection type between {@link OptionalValueMatcher} and {@link StringMatcher}
@param <R> root criteria type
criteria/common/src/org/immutables/criteria/matcher/OptionalStringMatcher.java