Currently we can write ``` for (a, b) in vec::zip(as, bs) { ... } ``` but not ``` vec::iter(vec::zip(as, bs)) { |(a, b)| ... } ``` nor ``` fn proc((a: A, b: B)) { ... } vec::iter(vec::zip(as, bs), proc) ``` It would be nice to have these irrefutable patterns work in parameter specifications, if not in all functions then at least in Ruby-like blocks.