# tuple

Combines multiple Versioned values into a single tuple.

## Signatures

```ts
export declare function tuple<const VS extends ReadonlyArray<Versioned<any, any, any, any, any, any, any, any>>>(versioneds: VS): Versioned<Versioned.VersionContext<VS[number]>, Versioned.VersionError<VS[number]>, {
    readonly [K in keyof VS]: Fx.Success<VS[K]>;
}, Fx.Error<VS[number]>, Fx.Services<VS[number]>, {
    readonly [K in keyof VS]: Effect.Success<VS[K]>;
}, Effect.Error<VS[number]>, Effect.Services<VS[number]>>;
```

## Why

Combines several Versioned values positionally and uses their versions as one invalidation token
for the assembled tuple.

## Ownership and lifetime

tuple does not take ownership of its inputs. Its observation and current-read channels retain
upstream lifetime, typed failures, services, and interruption behavior.
