pub trait Visitor<E: Debug> {
// Required method
fn visit(&mut self, node: &mut dyn Node) -> Result<(), E>;
// Provided method
fn visit_node(&mut self, node: &mut dyn Node) -> Result<(), E> { ... }
}
pub trait Visitor<E: Debug> {
// Required method
fn visit(&mut self, node: &mut dyn Node) -> Result<(), E>;
// Provided method
fn visit_node(&mut self, node: &mut dyn Node) -> Result<(), E> { ... }
}