The
zipWith3 function takes a function which combines three
elements, as well as three lists and returns a list of the function
applied to corresponding elements, analogous to
zipWith. It is
capable of list fusion, but it is restricted to its first list
argument and its resulting list.
zipWith3 (,,) xs ys zs == zip3 xs ys zs
zipWith3 f [x1,x2,x3..] [y1,y2,y3..] [z1,z2,z3..] == [f x1 y1 z1, f x2 y2 z2, f x3 y3 z3..]