docs: public static Expression numericConversion(final Expression expr, final Type to) {
      if (to.equals(expr.resultType())) {
        return expr;
      }
      if (!isNumericPrimitive(to) || !isNumericPrimitive(expr.resultType())) {
        throw new IllegalArgumentException("Cannot convert from " + expr.resultType() + " to " + to);
      }
      return new Expression(to, expr.features()) {
        @Override
        protected void doGen(CodeBuilder adapter) {
          expr.gen(adapter);
          adapter.cast(expr.resultType(), to);
        }
      };
    }