macro_rules! newtype {
(
$(#[$outer:meta])*
$viz:vis $Name:ident $(<$($G:ident),+>)? ($iviz:vis $Inner:ty)
) => { ... };
(
$(#[$outer:meta])*
$viz:vis mut $Name:ident $(<$($G:ident),+>)? ($iviz:vis $Inner:ty)
) => { ... };
}