code: static final Parser<Expression> castOrExpression(Parser<Expression> expr) {
      Parser<Expression> explicitCast =
          Parsers.sequence(paren(TypeLiteralParser.TYPE_LITERAL), expr, CastExpression::new);
      return explicitCast.or(paren(expr));
    }
docs: {@code (foo)} can be a parenthesized expression, or the prefix of a cast expression,
  depending on whether there's an expression following.