macro_rules! map_array {
(3; $a:expr, $f:expr) => { ... };
(4; $a:expr, $f:expr) => { ... };
(8; $a:expr, &a) => { ... };
(8; $a:expr, $f:expr) => { ... };
(8; $a:expr, _.$f:ident) => { ... };
(8; $a:expr, _[$ix:expr]) => { ... };
}