Yes, it would be nice to do it pairwise.  But then you will need two versions: one for `AbstractArray` arguments (which support random access) and one for arbitrary iterables (which only support sequential access.)