macro_rules! NewtypeIndex {
(($Index : ty) $vis : vis struct $name : ident $($body : tt) +) => { ... };
((($Index : ty) where $($bound : tt) *) $vis : vis struct $name : ident
$($body : tt) +) => { ... };
((< $($lt : lifetime), + $(, $($T : ident), +) ? $(,) ? > ($Index : ty)
$(where $($bound : tt) *) ?) $vis : vis struct $name : ident $($body : tt)
+) => { ... };
((< $($($T : ident), + $(,) ?) ? > ($Index : ty) $(where $($bound : tt) *) ?)
$vis : vis struct $name : ident $($body : tt) +) => { ... };
}