pub(crate) trait Visitable<'a, V: Visitor<'a>> {
type Extra: Copy;
// Required method
fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result;
}
pub(crate) trait Visitable<'a, V: Visitor<'a>> {
type Extra: Copy;
// Required method
fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result;
}