zipWith more accurate implementation