@sig((H/ "a" >> "b" >> "c" >> "d")/ H >> ["a"] >> ["b"] >> ["c"] >> ["d"])
def zipWith3(fn, a, b, c):
    """
    zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]

    The zipWith3 function takes a function which combines three elements, as
    well as three lists and returns a list of their point-wise combination,
    analogous to zipWith.
    """
    return L[(fn(*s) for s in zip3(a, b, c))]
dataset/ETHPy150Open billpmurphy/hask/hask/Data/List.py/zipWith3/swapped operands of `/`