macro_rules! NewtypeShr {
((*) $vis : vis struct $name : ident $($body : tt) +) => { ... };
(((*) where $($bound : tt) *) $vis : vis struct $name : ident $($body : tt) +) => { ... };
(($(where $($bound : tt) *) ?) $vis : vis struct $name : ident $($body : tt)
+) => { ... };
((& self) $vis : vis struct $name : ident $($body : tt) +) => { ... };
((& $a : lifetime self) $vis : vis struct $name : ident $($body : tt) +) => { ... };
(((& self) where $($bound : tt) *) $vis : vis struct $name : ident
$($body : tt) +) => { ... };
(((& $a : lifetime self) where $($bound : tt) *) $vis : vis struct $name :
ident $($body : tt) +) => { ... };
((& self, & Self) $vis : vis struct $name : ident $($body : tt) +) => { ... };
((& $a : lifetime self, & Self) $vis : vis struct $name : ident $($body : tt)
+) => { ... };
((& self, & $b : lifetime Self) $vis : vis struct $name : ident $($body : tt)
+) => { ... };
((& $a : lifetime self, & $b : lifetime Self) $vis : vis struct $name : ident
$($body : tt) +) => { ... };
(((& self, & Self) where $($bound : tt) *) $vis : vis struct $name : ident
$($body : tt) +) => { ... };
(((& $a : lifetime self, & Self) where $($bound : tt) *) $vis : vis struct
$name : ident $($body : tt) +) => { ... };
(((& self, & $b : lifetime Self) where $($bound : tt) *) $vis : vis struct
$name : ident $($body : tt) +) => { ... };
(((& $a : lifetime self, & $b : lifetime Self) where $($bound : tt) *) $vis :
vis struct $name : ident $($body : tt) +) => { ... };
((& self, $Rhs : ty) $vis : vis struct $name : ident $($body : tt) +) => { ... };
((& $a : lifetime self, $Rhs : ty) $vis : vis struct $name : ident
$($body : tt) +) => { ... };
(((& self, $Rhs : ty) where $($bound : tt) *) $vis : vis struct $name : ident
$($body : tt) +) => { ... };
(((& $a : lifetime self, $Rhs : ty) where $($bound : tt) *) $vis : vis struct
$name : ident $($body : tt) +) => { ... };
((< $($lt : lifetime), + $(, $($T : ident), +) ? $(,) ? > (& self, $Rhs : ty)
$(where $($bound : tt) *) ?) $vis : vis struct $name : ident $($body : tt)
+) => { ... };
((< $($lt : lifetime), + $(, $($T : ident), +) ? $(,) ? >
(& $a : lifetime self, $Rhs : ty) $(where $($bound : tt) *) ?) $vis : vis
struct $name : ident $($body : tt) +) => { ... };
((< $($($T : ident), + $(,) ?) ? > (& self, $Rhs : ty)
$(where $($bound : tt) *) ?) $vis : vis struct $name : ident $($body : tt)
+) => { ... };
((< $($($T : ident), + $(,) ?) ? > (& $a : lifetime self, $Rhs : ty)
$(where $($bound : tt) *) ?) $vis : vis struct $name : ident $($body : tt)
+) => { ... };
((& Self) $vis : vis struct $name : ident $($body : tt) +) => { ... };
((& $a : lifetime Self) $vis : vis struct $name : ident $($body : tt) +) => { ... };
(((& Self) where $($bound : tt) *) $vis : vis struct $name : ident
$($body : tt) +) => { ... };
(((& $a : lifetime Self) where $($bound : tt) *) $vis : vis struct $name :
ident $($body : tt) +) => { ... };
(($Rhs : ty) $vis : vis struct $name : ident $($body : tt) +) => { ... };
((($Rhs : ty) where $($bound : tt) *) $vis : vis struct $name : ident
$($body : tt) +) => { ... };
((< $($lt : lifetime), + $(, $($T : ident), +) ? $(,) ? > ($Rhs : ty)
$(where $($bound : tt) *) ?) $vis : vis struct $name : ident $($body : tt)
+) => { ... };
((< $($($T : ident), + $(,) ?) ? > ($Rhs : ty) $(where $($bound : tt) *) ?)
$vis : vis struct $name : ident $($body : tt) +) => { ... };
}