// ets_tracing: off import type { ReaderURI } from "../Modules/index.js" import type { URI } from "../Prelude/index.js" import * as P from "../Prelude/index.js" import { access, map, zip } from "./operations.js" export type V = P.V<"R", "-"> /** * The `Access` instance for `Reader[-_, +_]`. */ export const Access = P.instance], V>>({ access }) /** * The `Any` instance for `Reader[-_, +_]`. */ export const Any = P.instance], V>>({ any: () => () => ({}) }) /** * The `Covariant` instance for `Reader[-_, +_]`. */ export const Covariant = P.instance], V>>({ map }) /** * The `AssociativeBoth` instance for `Reader[-_, +_]`. */ export const AssociativeBoth = P.instance], V>>({ both: zip }) /** * The `AssociativeFlatten` instance for `Reader[-_, +_]`. */ export const AssociativeFlatten = P.instance], V>>( { flatten: (ffa) => (r) => ffa(r)(r) } ) /** * The `IdentityFlatten` instance for `Reader[-_, +_]`. */ export const IdentityFlatten = P.instance], V>>({ ...Any, ...AssociativeFlatten }) /** * The `Monad` instance for `Reader[-_, +_]`. */ export const Monad = P.instance], V>>({ ...Any, ...Covariant, ...AssociativeFlatten }) /** * The `Applicative` instance for `Reader[-_, +_]`. */ export const Applicative = P.instance], V>>({ ...Any, ...Covariant, ...AssociativeBoth })