macro_rules! or_leads_to_combine_n_internal {
($spec:expr, $p1:expr, $p2:expr; $q:expr) => { ... };
($spec:expr, $p1:expr, $p2:expr, $($rest:expr),+; $q:expr) => { ... };
}macro_rules! or_leads_to_combine_n_internal {
($spec:expr, $p1:expr, $p2:expr; $q:expr) => { ... };
($spec:expr, $p1:expr, $p2:expr, $($rest:expr),+; $q:expr) => { ... };
}