macro_rules! impl_visitable {
(|&$lt:lifetime $self:ident: $SelfTy:ty, $vis:ident: &mut $vis_ty:ident| $block:block) => { ... };
(|&$lt:lifetime $self:ident: $SelfTy:ty, $vis:ident: &mut $vis_ty:ident,
$extra:ident: $ExtraTy:ty| $block:block) => { ... };
}