struct Visitor {\r
std::function<void(const Type &, const std::shared_ptr<Context> ctx)> onType = [](auto, auto){};\r
std::function<void(const Expr &, const std::shared_ptr<Context> ctx)> onExpr = [](auto, auto){};\r
struct Visitor {\r
std::function<void(const Type &, const std::shared_ptr<Context> ctx)> onType = [](auto, auto){};\r
std::function<void(const Expr &, const std::shared_ptr<Context> ctx)> onExpr = [](auto, auto){};\r