pub fn visit_definition<'ast, V: Visit<'ast> + ?Sized>(
    visitor: &mut V,
    def: &'ast Definition
)