pub type Variant<'v> = Derived<'v, Variant, Derived<'v, ItemEnum>>;
struct Variant<'v> { pub parent: Derived<'v, ItemEnum>, pub inner: &'v Variant, }
parent: Derived<'v, ItemEnum>
inner: &'v Variant