public <T1, T2> ReactorMapper2.DistinctLimitOffset<T1, T2> select(Projection<T1> proj1, Projection<T2> proj2) {
    Query newQuery = this.query.addProjections(Matchers.toExpression(proj1), Matchers.toExpression(proj2));
    return new ReactorMappers.Mapper2<>(newQuery, session);
  }
Reader returning <a href="https://projectreactor.io">Reactor</a> types
criteria/reactor/src/org/immutables/criteria/reactor/ReactorReader.java