macro_rules! call_provider {
    ([][$qcx:expr, $name:ident, $key:expr]) => { ... };
    ([(separate_provide_extern) $($rest:tt)*][$qcx:expr, $name:ident, $key:expr]) => { ... };
    ([$other:tt $($modifiers:tt)*][$($args:tt)*]) => { ... };
}