enhanced zipWith
fixed foldRight and foldLeft impls