macro_rules! separate_provide_extern_decl {
    ([][$name:ident]) => { ... };
    ([(separate_provide_extern) $($rest:tt)*][$name:ident]) => { ... };
    ([$other:tt $($modifiers:tt)*][$($args:tt)*]) => { ... };
}