macro_rules! def_group_generics {
(
$(#[$attr:meta])*
$name:ident[$($gen:tt)*] where [$($where:tt)*] =
($ty:ty, $op:expr, $id:expr, $recip:expr $(, $marker:ident)? $(,)?) $(,)?
) => { ... };
(
$(#[$attr:meta])*
pub $name:ident[$($gen:tt)*] where [$($where:tt)*] =
($ty:ty, $op:expr, $id:expr, $recip:expr $(, $marker:ident)? $(,)?) $(,)?
) => { ... };
(
$(#[$attr:meta])*
pub($($vis:tt)+) $name:ident[$($gen:tt)*] where [$($where:tt)*] =
($ty:ty, $op:expr, $id:expr, $recip:expr $(, $marker:ident)? $(,)?) $(,)?
) => { ... };
}