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