def zip_with_m_(monad_t, zip_function, left, right): "Same as zip_with_m, but ignores the result." return sequence_(monad_t, func.zip_with(zip_function, left, right))
def zip_with_m(monad_t, zip_function, left, right): "Generalizes zip_with over non-list monads." return sequence(monad_t, func.zip_with(zip_function, left, right))