fn opt_parse_expr_with_precedence<'db>(
db: &'db dyn Db,
parser: &mut Parser<'_, 'db>,
precedence: impl FnOnce(&'db dyn Db, &mut Parser<'_, 'db>) -> Result<Option<AstExprKind<'db>>, ParseFail<'db>>,
) -> Result<Option<AstExpr<'db>>, ParseFail<'db>>