virtual expr visit_macro(expr const & e) override { if (is_marked_as_comp_irrelevant(e)) return e; else if (auto r = expand_core(e)) return *r; else return compiler_step_visitor::visit_macro(e); }
expr compiler_step_visitor::visit_macro(expr const & e) { if (is_marked_as_comp_irrelevant(e)) return e; else return replace_visitor::visit_macro(e); }