fn eat_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<AstExpr<'db>, ParseFail<'db>>