def print(self, expr: Expr) -> str: return expr.accept(self)
def evaluate(self, expr: e.Expr): return expr.accept(self)
def _(self, expr: ex.Expr) -> None: expr.accept(self)
def _evaluate(self, expr: ex.Expr) -> LoxValue: return expr.accept(self)