// ets_tracing: off
import * as A from "../../Collections/Immutable/Chunk/index.js"
import * as E from "../../Either/index.js"
export function zipChunks_(
fa: A.Chunk,
fb: A.Chunk,
f: (a: A, b: B) => C
): [A.Chunk, E.Either, A.Chunk>] {
let fc = A.empty()
const len = Math.min(A.size(fa), A.size(fb))
for (let i = 0; i < len; i++) {
fc = A.append_(fc, f(A.unsafeGet_(fa, i), A.unsafeGet_(fb, i)))
}
if (A.size(fa) > A.size(fb)) {
return [fc, E.left(A.drop_(fa, A.size(fb)))]
}
return [fc, E.right(A.drop_(fb, A.size(fa)))]
}