Implement a zipwith function
Haskell, 22 bytes

(.zip).(.).map.uncurry

Try it online!
Not particularly interesting, just a reimplementation of zipWith converted to pointfree form:
\f x y -&gt; map (uncurry f) (zip x y)
\f x -&gt; map (uncurry f) . zip x
\f x -&gt; (map (uncurry f) .) zip x
\f -&gt; (map (uncurry f) .) . zip
\f -&gt; (. zip) (map (uncurry f) .)
\f -&gt; (. zip) ((.) (map (uncurry f)))
\f -&gt; (. zip) ((.) ((map . uncurry) f))
\f -&gt; (. zip) ((.) . (map . uncurry) $ f)
\f -&gt; (. zip) . ((.) . (map . uncurry)) $ f
(. zip) . ((.) . (map . uncurry))