export function zipChunks( leftChunk: Chunk, rightChunk: Chunk, f: (a: A, b: A2) => A3 ): readonly [Chunk, Either, Chunk>] { const leftChunkSize = leftChunk.size const rightChunkSize = rightChunk.size return leftChunkSize > rightChunkSize ? [ leftChunk.take(rightChunkSize).zipWith(rightChunk, f), Either.left(leftChunk.drop(rightChunkSize)) ] : [ leftChunk.zipWith(rightChunk.take(leftChunkSize), f), Either.right(rightChunk.drop(leftChunkSize)) ] }