# Versioned.make

Creates a Versioned value from its components.

## Signatures

```ts
export declare function make<R1, E1, A2, E2, R2, A3, E3, R3>(version: Effect.Effect<number, E1, R1>, fx: Fx.Fx<A2, E2, R2>, effect: Effect.Effect<A3, E3, R3>): Versioned<R1, E1, A2, E2, R2, A3, E3, R3>;
```

## Why

Builds one Versioned value from independently typed version, update, and current-value channels
instead of forcing them into one error or environment type.

## Ownership and lifetime

Construction is lazy with respect to the Fx channel. Current reads share in-flight work until
interrupt is run; each component retains its declared errors and services.

## Examples

```ts
import { Effect } from "effect"
import * as Fx from "@typed/fx/Fx"
import * as Versioned from "@typed/fx/Versioned"

const status = Versioned.make(
  Effect.succeed(1),
  Fx.succeed("ready"),
  Effect.succeed("ready")
)

const snapshot = Effect.all({ value: status, version: status.version })
```
