pub trait MutNodeVisitor {
type NodeTy: Node;
// Required method
fn visit_up(
&mut self,
_node: Self::NodeTy,
) -> VortexResult<TransformResult<Self::NodeTy>>;
// Provided method
fn visit_down(
&mut self,
_node: &Self::NodeTy,
) -> VortexResult<TraversalOrder> { ... }
}