Another variadic question

I'm trying to write a function which will merge two tuples using variadics. Something like this:

func merge<each T>(
    source: (repeat Optional<each T>),
    target: (repeat Optional<each T>)
) -> (repeat Optional<each T>) {
    (repeat (each source).merge(each target))

extension Optional {
    func merge(_ target: Optional<Wrapped>) -> Optional<Wrapped> {
        target == nil ? self : target

let t: (Int?, String?, Double?) = (.some(13), .none, .none)
let u: (Int?, String?, Double?) = (.some(11), .some("howdy"), .some(47.0))

let v = merge(source: u, target: t)

where I'd like the result to be:

(.some(13), .some("howdy"), .some(47.0))

The above compiles under 5.9.2 but when I try to run it, I get:

1.	Apple Swift version 5.9.2 (swiftlang- clang-1500.
2.	Compiling with the current language version
3.	While evaluating request ASTLoweringRequest(Lowering AST to SIL for file `...`
4.	While silgen emitFunction SIL function `...`

My bigger problem is that I'm not sure if the repeat clause above is being used properly. i.e. will the compiler simultaneously iterate over two each clauses inside of one repeat. Doesn't seem intuitive, but that's the only form I'm able to get through the compiler?

Should this be doable?