macro_rules! define_id {
($v:vis $name:ident, $repr:tt) => { ... };
($v:vis $name:ident, $repr:tt, $doc:tt) => { ... };
($v:vis $name:ident, $repr:tt, pretty $pretty_name:expr) => { ... };
($v:vis $name:ident, $repr:tt, $doc:tt, pretty $pretty_name:tt) => { ... };
}