macro_rules! zip {
(@map $p:pat => $t:expr) => { ... };
(@map $p:pat => ($($t:tt)*), $_removed:expr$(, $rest:expr )*) => { ... };
($a:expr$(,)*) => { ... };
($a:expr, $b:expr$(,)*) => { ... };
($a:expr$(, $rest:expr)*$(,)*) => { ... };
}