macro_rules! scan {
(zip!($($iae:expr),* $(,)?), $init:expr, |$acc:pat_param, ($($iip:pat_param),* $(,)?)| $body:expr) => { ... };
(zip!($($iae:expr),* $(,)?), $init:expr, $fn:expr) => { ... };
($iae:expr, $init:expr, |$acc:pat_param, $iip:pat_param| $body:expr) => { ... };
($iae:expr, $init:expr, $fn:expr) => { ... };
(@zip_function [$(($iae:expr, $ii:ident))*] [$init:expr] [$fn:expr]) => { ... };
}