Use reduce in  merge_with(binop, ...)

merge_with(binop, ...) -> merge_with(partial(reduce, binop), ...)