import * as Effect from "effect/Effect"; export type IsAny = 0 extends 1 & T ? true : false; export type UnionToIntersection = ( U extends any ? (k: U) => void : never ) extends (k: infer I) => void ? I : never; export const assertDefined = (value: T | undefined, message: string): T => { if (!value) { throw new Error(message); } return value; }; export const asEffect = ( effect: T | Effect.Effect, ): Effect.Effect => Effect.isEffect(effect) ? effect : Effect.succeed(effect);