macro_rules! zip { ($x: expr) => { ... }; ($x: expr, $($y: expr), +) => { ... }; }
zips multiple vectors into iterators https://stackoverflow.com/a/62016977/941031