docs: public static ReasonerQueryImpl create(List<Atom> as, TransactionOLTP tx){
          boolean isAtomic = as.size() == 1;
          return isAtomic?
                  new ReasonerAtomicQuery(Iterables.getOnlyElement(as)).inferTypes() :
                  new ReasonerQueryImpl(as, tx).inferTypes();
      }