/** * The reader monad transformer, which adds a read-only environment to the given monad. * * The `of` function ignores the environment, while `chain` passes the inherited environment to both subcomputations. * * @since 2.0.0 */ import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' import { Monad, Monad1, Monad2, Monad2C, Monad3 } from './Monad' import { NaturalTransformation22, NaturalTransformation12, NaturalTransformation11, NaturalTransformation, NaturalTransformation23R, NaturalTransformation24S } from './NaturalTransformation' import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed' import { Reader } from './Reader' /** * @since 2.10.0 */ export declare function of( F: Pointed4 ): (a: A) => Reader> export declare function of(F: Pointed3): (a: A) => Reader> export declare function of(F: Pointed3C): (a: A) => Reader> export declare function of(F: Pointed2): (a: A) => Reader> export declare function of(F: Pointed2C): (a: A) => Reader> export declare function of(F: Pointed1): (a: A) => Reader> export declare function of(F: Pointed): (a: A) => Reader> /** * @since 2.10.0 */ export declare function map( F: Functor4 ): (f: (a: A) => B) => (fa: Reader>) => Reader> export declare function map( F: Functor3 ): (f: (a: A) => B) => (fa: Reader>) => Reader> export declare function map( F: Functor3C ): (f: (a: A) => B) => (fa: Reader>) => Reader> export declare function map( F: Functor2 ): (f: (a: A) => B) => (fa: Reader>) => Reader> export declare function map( F: Functor2C ): (f: (a: A) => B) => (fa: Reader>) => Reader> export declare function map( F: Functor1 ): (f: (a: A) => B) => (fa: Reader>) => Reader> export declare function map( F: Functor ): (f: (a: A) => B) => (fa: Reader>) => Reader> /** * @since 2.10.0 */ export declare function ap( F: Apply4 ): ( fa: Reader> ) => (fab: Reader B>>) => Reader> export declare function ap( F: Apply3 ): ( fa: Reader> ) => (fab: Reader B>>) => Reader> export declare function ap( F: Apply3C ): ( fa: Reader> ) => (fab: Reader B>>) => Reader> export declare function ap( F: Apply2 ): ( fa: Reader> ) => (fab: Reader B>>) => Reader> export declare function ap( F: Apply2C ): ( fa: Reader> ) => (fab: Reader B>>) => Reader> export declare function ap( F: Apply1 ): (fa: Reader>) => (fab: Reader B>>) => Reader> export declare function ap( F: Apply ): (fa: Reader>) => (fab: Reader B>>) => Reader> /** * @since 2.10.0 */ export declare function chain( M: Chain4 ): ( f: (a: A) => Reader> ) => (ma: Reader>) => Reader> export declare function chain( M: Chain3 ): ( f: (a: A) => Reader> ) => (ma: Reader>) => Reader> export declare function chain( M: Chain3C ): ( f: (a: A) => Reader> ) => (ma: Reader>) => Reader> export declare function chain( M: Chain2 ): ( f: (a: A) => Reader> ) => (ma: Reader>) => Reader> export declare function chain( M: Chain2C ): (f: (a: A) => Reader>) => (ma: Reader>) => Reader> export declare function chain( M: Chain1 ): (f: (a: A) => Reader>) => (ma: Reader>) => Reader> export declare function chain( M: Chain ): (f: (a: A) => Reader>) => (ma: Reader>) => Reader> /** * @since 2.10.0 */ export declare function fromReader( F: Pointed4 ): (ma: Reader) => Reader> export declare function fromReader( F: Pointed3 ): (ma: Reader) => Reader> export declare function fromReader( F: Pointed3C ): (ma: Reader) => Reader> export declare function fromReader( F: Pointed2 ): (ma: Reader) => Reader> export declare function fromReader( F: Pointed2C ): (ma: Reader) => Reader> export declare function fromReader(F: Pointed1): (ma: Reader) => Reader> export declare function fromReader(F: Pointed): (ma: Reader) => Reader> /** * @category constructors * @since 2.11.0 */ export declare function fromNaturalTransformation( nt: NaturalTransformation24S ): (f: (r: R) => Kind2) => Reader> export declare function fromNaturalTransformation( nt: NaturalTransformation23R ): (f: (r: R) => Kind2) => Reader> export declare function fromNaturalTransformation( nt: NaturalTransformation22 ): (f: (r: R) => Kind2) => Reader> export declare function fromNaturalTransformation( nt: NaturalTransformation12 ): (f: (r: R) => Kind) => Reader> export declare function fromNaturalTransformation( nt: NaturalTransformation11 ): (f: (r: R) => Kind) => Reader> export declare function fromNaturalTransformation( nt: NaturalTransformation ): (f: (r: R) => HKT) => Reader> /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderT { (r: R): HKT } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderM { readonly map: (ma: ReaderT, f: (a: A) => B) => ReaderT readonly of: (a: A) => ReaderT readonly ap: (mab: ReaderT B>, ma: ReaderT) => ReaderT readonly chain: (ma: ReaderT, f: (a: A) => ReaderT) => ReaderT readonly ask: () => ReaderT readonly asks: (f: (r: R) => A) => ReaderT readonly local: (ma: ReaderT, f: (d: R2) => R1) => ReaderT readonly fromReader: (ma: Reader) => ReaderT readonly fromM: (ma: HKT) => ReaderT } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderT1 { (r: R): Kind } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderM1 { readonly map: (ma: ReaderT1, f: (a: A) => B) => ReaderT1 readonly of: (a: A) => ReaderT1 readonly ap: (mab: ReaderT1 B>, ma: ReaderT1) => ReaderT1 readonly chain: (ma: ReaderT1, f: (a: A) => ReaderT1) => ReaderT1 readonly ask: () => ReaderT1 readonly asks: (f: (r: R) => A) => ReaderT1 readonly local: (ma: ReaderT1, f: (d: R2) => R1) => ReaderT1 readonly fromReader: (ma: Reader) => ReaderT1 readonly fromM: (ma: Kind) => ReaderT1 } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderT2 { (r: R): Kind2 } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderM2 { readonly map: (ma: ReaderT2, f: (a: A) => B) => ReaderT2 readonly of: (a: A) => ReaderT2 readonly ap: (mab: ReaderT2 B>, ma: ReaderT2) => ReaderT2 readonly chain: (ma: ReaderT2, f: (a: A) => ReaderT2) => ReaderT2 readonly ask: () => ReaderT2 readonly asks: (f: (r: R) => A) => ReaderT2 readonly local: (ma: ReaderT2, f: (d: R2) => R1) => ReaderT2 readonly fromReader: (ma: Reader) => ReaderT2 readonly fromM: (ma: Kind2) => ReaderT2 } /** * @category zone of death * @since 2.2.0 * @deprecated */ export interface ReaderM2C { readonly map: (ma: ReaderT2, f: (a: A) => B) => ReaderT2 readonly of: (a: A) => ReaderT2 readonly ap: (mab: ReaderT2 B>, ma: ReaderT2) => ReaderT2 readonly chain: (ma: ReaderT2, f: (a: A) => ReaderT2) => ReaderT2 readonly ask: () => ReaderT2 readonly asks: (f: (r: R) => A) => ReaderT2 readonly local: (ma: ReaderT2, f: (d: R2) => R1) => ReaderT2 readonly fromReader: (ma: Reader) => ReaderT2 readonly fromM: (ma: Kind2) => ReaderT2 } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderT3 { (r: R): Kind3 } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface ReaderM3 { readonly map: (ma: ReaderT3, f: (a: A) => B) => ReaderT3 readonly of: (a: A) => ReaderT3 readonly ap: ( mab: ReaderT3 B>, ma: ReaderT3 ) => ReaderT3 readonly chain: ( ma: ReaderT3, f: (a: A) => ReaderT3 ) => ReaderT3 readonly ask: () => ReaderT3 readonly asks: (f: (r: R) => A) => ReaderT3 readonly local: (ma: ReaderT3, f: (d: R2) => R1) => ReaderT3 readonly fromReader: (ma: Reader) => ReaderT3 readonly fromM: (ma: Kind3) => ReaderT3 } /** * @category zone of death * @since 2.0.0 * @deprecated */ export declare function getReaderM(M: Monad3): ReaderM3 /** @deprecated */ export declare function getReaderM(M: Monad2): ReaderM2 /** @deprecated */ export declare function getReaderM(M: Monad2C): ReaderM2C /** @deprecated */ export declare function getReaderM(M: Monad1): ReaderM1 /** @deprecated */ export declare function getReaderM(M: Monad): ReaderM