zipWith package:repa
Combine two arrays, element-wise, with a binary operator. If the
extent of the two array arguments differ, then the resulting array's
extent is their intersection.
Structured zipWith. If you have a cursored or partitioned
source array then use that as the third argument (corresponding to
r1 here)