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)