Import
import { make } from "@typed/fx/Versioned";Signatures
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
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 })Other public imports
These import paths expose the same declaration. Each page retains its own public name and signature.