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))
]
}