// ets_tracing: off import { constant, identity } from "@effect-ts/system/Function" import * as X from "@effect-ts/system/Sync" import type { SyncURI } from "../../Modules/index.js" import type { URI } from "../../Prelude/index.js" import * as P from "../../Prelude/index.js" export type V = P.V<"R", "-"> & P.V<"E", "+"> export const Any = P.instance], V>>({ any: () => X.succeed(constant({})) }) export const Covariant = P.instance], V>>({ map: X.map }) export const AssociativeBoth = P.instance], V>>({ both: X.zip }) export const AssociativeEither = P.instance], V>>({ orElseEither: X.orElseEither }) export const AssociativeFlatten = P.instance], V>>({ flatten: (ffa) => X.chain_(ffa, identity) }) export const Applicative = P.instance], V>>({ ...Any, ...Covariant, ...AssociativeBoth }) export const Access = P.instance], V>>({ access: X.access }) export const Fail = P.instance], V>>({ fail: X.fail }) export const Run = P.instance], V>>({ either: X.either }) export const Provide = P.instance], V>>({ provide: X.provideAll }) export const Monad = P.instance], V>>({ ...Any, ...AssociativeFlatten, ...Covariant })