pub fn walk_variant<'v, V: Visitor<'v>>(
    visitor: &mut V,
    variant: &'v Variant<'v>
)