/** * The error monad transformer. It can be used to add error handling to other monads. * * The `of` function yields a successful computation, while `chain` sequences two subcomputations, failing on the first error. * * @since 2.0.0 */ import { ApplicativeComposition12, ApplicativeComposition22, ApplicativeCompositionHKT2 } from './Applicative' import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C } from './Apply' import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C } from './Chain' import * as E from './Either' import { Lazy } from './function' import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C } from './Functor' import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad' import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C } from './Pointed' import { Semigroup } from './Semigroup' import Either = E.Either /** * @since 2.10.0 */ export declare function right( F: Pointed3 ): (a: A) => Kind3> export declare function right( F: Pointed3C ): (a: A) => Kind3> export declare function right(F: Pointed2): (a: A) => Kind2> export declare function right( F: Pointed2C ): (a: A) => Kind2> export declare function right(F: Pointed1): (a: A) => Kind> export declare function right(F: Pointed): (a: A) => HKT> /** * @since 2.10.0 */ export declare function left( F: Pointed3 ): (e: E) => Kind3> export declare function left( F: Pointed3C ): (e: E) => Kind3> export declare function left(F: Pointed2): (e: E) => Kind2> export declare function left( F: Pointed2C ): (e: E) => Kind2> export declare function left(F: Pointed1): (e: E) => Kind> export declare function left(F: Pointed): (e: E) => HKT> /** * @since 2.10.0 */ export declare function rightF( F: Functor3 ): (fa: Kind3) => Kind3> export declare function rightF( F: Functor3C ): (fa: Kind3) => Kind3> export declare function rightF( F: Functor2 ): (fa: Kind2) => Kind2> export declare function rightF( F: Functor2C ): (fa: Kind2) => Kind2> export declare function rightF(F: Functor1): (fa: Kind) => Kind> export declare function rightF(F: Functor): (fa: HKT) => HKT> /** * @since 2.10.0 */ export declare function leftF( F: Functor3 ): (fe: Kind3) => Kind3> export declare function leftF( F: Functor3C ): (fe: Kind3) => Kind3> export declare function leftF( F: Functor2 ): (fe: Kind2) => Kind2> export declare function leftF( F: Functor2C ): (fe: Kind2) => Kind2> export declare function leftF(F: Functor1): (fe: Kind) => Kind> export declare function leftF(F: Functor): (fe: HKT) => HKT> /** * @since 2.12.0 */ export declare function fromNullable( F: Pointed3 ): (e: E) => (a: A) => Kind3>> export declare function fromNullable( F: Pointed3C ): (e: E) => (a: A) => Kind3>> export declare function fromNullable( F: Pointed2 ): (e: E) => (a: A) => Kind2>> export declare function fromNullable( F: Pointed2C ): (e: E) => (a: A) => Kind2>> export declare function fromNullable( F: Pointed1 ): (e: E) => (a: A) => Kind>> export declare function fromNullable(F: Pointed): (e: E) => (a: A) => HKT>> /** * @since 2.12.0 */ export declare function fromNullableK( F: Pointed3 ): ( e: E ) => , B>( f: (...a: A) => B | null | undefined ) => (...a: A) => Kind3>> export declare function fromNullableK( F: Pointed3C ): ( e: E ) => , B>( f: (...a: A) => B | null | undefined ) => (...a: A) => Kind3>> export declare function fromNullableK( F: Pointed2 ): ( e: E ) => , B>( f: (...a: A) => B | null | undefined ) => (...a: A) => Kind2>> export declare function fromNullableK( F: Pointed2C ): ( e: E ) => , B>( f: (...a: A) => B | null | undefined ) => (...a: A) => Kind2>> export declare function fromNullableK( F: Pointed1 ): ( e: E ) => , B>( f: (...a: A) => B | null | undefined ) => (...a: A) => Kind>> export declare function fromNullableK( F: Pointed ): ( e: E ) => , B>( f: (...a: A) => B | null | undefined ) => (...a: A) => HKT>> /** * @since 2.12.0 */ export declare function chainNullableK( M: Monad3 ): ( e: E ) => ( f: (a: A) => B | null | undefined ) => (ma: Kind3>) => Kind3>> export declare function chainNullableK( M: Monad3C ): ( e: E ) => ( f: (a: A) => B | null | undefined ) => (ma: Kind3>) => Kind3>> export declare function chainNullableK( M: Monad2 ): ( e: E ) => ( f: (a: A) => B | null | undefined ) => (ma: Kind2>) => Kind2>> export declare function chainNullableK( M: Monad2C ): ( e: E ) => ( f: (a: A) => B | null | undefined ) => (ma: Kind2>) => Kind2>> export declare function chainNullableK( M: Monad1 ): ( e: E ) => (f: (a: A) => B | null | undefined) => (ma: Kind>) => Kind>> export declare function chainNullableK( M: Monad ): ( e: E ) => (f: (a: A) => B | null | undefined) => (ma: HKT>) => HKT>> /** * @since 2.10.0 */ export declare function map( F: Functor3 ): (f: (a: A) => B) => (fa: Kind3>) => Kind3> export declare function map( F: Functor3C ): (f: (a: A) => B) => (fa: Kind3>) => Kind3> export declare function map( F: Functor2 ): (f: (a: A) => B) => (fa: Kind2>) => Kind2> export declare function map( F: Functor2C ): (f: (a: A) => B) => (fa: Kind2>) => Kind2> export declare function map( F: Functor1 ): (f: (a: A) => B) => (fa: Kind>) => Kind> export declare function map( F: Functor ): (f: (a: A) => B) => (fa: HKT>) => HKT> /** * @since 2.10.0 */ export declare function ap( F: Apply3 ): ( fa: Kind3> ) => (fab: Kind3 B>>) => Kind3> export declare function ap( F: Apply3C ): ( fa: Kind3> ) => (fab: Kind3 B>>) => Kind3> export declare function ap( F: Apply2 ): ( fa: Kind2> ) => (fab: Kind2 B>>) => Kind2> export declare function ap( F: Apply2C ): ( fa: Kind2> ) => (fab: Kind2 B>>) => Kind2> export declare function ap( F: Apply1 ): (fa: Kind>) => (fab: Kind B>>) => Kind> export declare function ap( F: Apply ): (fa: HKT>) => (fab: HKT B>>) => HKT> /** * @since 2.10.0 */ export declare function chain( M: Monad3 ): ( f: (a: A) => Kind3> ) => (ma: Kind3>) => Kind3> export declare function chain( M: Monad3C ): ( f: (a: A) => Kind3> ) => (ma: Kind3>) => Kind3> export declare function chain( M: Monad2 ): ( f: (a: A) => Kind2> ) => (ma: Kind2>) => Kind2> export declare function chain( M: Monad2C ): (f: (a: A) => Kind2>) => (ma: Kind2>) => Kind2> export declare function chain( M: Monad1 ): (f: (a: A) => Kind>) => (ma: Kind>) => Kind> export declare function chain( M: Monad ): (f: (a: A) => HKT>) => (ma: HKT>) => HKT> /** * @since 2.10.0 */ export declare function alt( M: Monad3 ): ( second: Lazy>> ) => (first: Kind3>) => Kind3> export declare function alt( M: Monad3C ): ( second: Lazy>> ) => (first: Kind3>) => Kind3> export declare function alt( M: Monad2 ): ( second: Lazy>> ) => (first: Kind2>) => Kind2> export declare function alt( M: Monad2C ): (second: Lazy>>) => (first: Kind2>) => Kind2> export declare function alt( M: Monad1 ): (second: Lazy>>) => (first: Kind>) => Kind> export declare function alt( M: Monad ): (second: Lazy>>) => (first: HKT>) => HKT> /** * @since 2.10.0 */ export declare function bimap( F: Functor3 ): ( f: (e: E) => G, g: (a: A) => B ) => (fea: Kind3>) => Kind3> export declare function bimap( F: Functor3C ): ( f: (e: E) => G, g: (a: A) => B ) => (fea: Kind3>) => Kind3> export declare function bimap( F: Functor2 ): (f: (e: E) => G, g: (a: A) => B) => (fea: Kind2>) => Kind2> export declare function bimap( F: Functor2C ): (f: (e: E) => G, g: (a: A) => B) => (fea: Kind2>) => Kind2> export declare function bimap( F: Functor1 ): (f: (e: E) => G, g: (a: A) => B) => (fea: Kind>) => Kind> export declare function bimap( F: Functor ): (f: (e: E) => G, g: (a: A) => B) => (fea: HKT>) => HKT> /** * @since 2.10.0 */ export declare function mapLeft( F: Functor3 ): (f: (e: E) => G) => (fea: Kind3>) => Kind3> export declare function mapLeft( F: Functor3C ): (f: (e: E) => G) => (fea: Kind3>) => Kind3> export declare function mapLeft( F: Functor2 ): (f: (e: E) => G) => (fea: Kind2>) => Kind2> export declare function mapLeft( F: Functor2C ): (f: (e: E) => G) => (fea: Kind2>) => Kind2> export declare function mapLeft( F: Functor1 ): (f: (e: E) => G) => (fea: Kind>) => Kind> export declare function mapLeft( F: Functor ): (f: (e: E) => G) => (fea: HKT>) => HKT> /** * @category error handling * @since 2.10.0 */ export declare function altValidation( M: Monad3, S: Semigroup ): ( second: Lazy>> ) => (first: Kind3>) => Kind3> export declare function altValidation( M: Monad3C, S: Semigroup ): ( second: Lazy>> ) => (first: Kind3>) => Kind3> export declare function altValidation( M: Monad2, S: Semigroup ): ( second: Lazy>> ) => (first: Kind2>) => Kind2> export declare function altValidation( M: Monad2C, S: Semigroup ): (second: Lazy>>) => (first: Kind2>) => Kind2> export declare function altValidation( M: Monad1, S: Semigroup ): (second: Lazy>>) => (first: Kind>) => Kind> export declare function altValidation( M: Monad, S: Semigroup ): (second: Lazy>>) => (first: HKT>) => HKT> /** * @category pattern matching * @since 2.11.0 */ export declare function match( F: Functor3 ): ( onLeft: (e: E) => B, onRight: (a: A) => B ) => (ma: Kind3>) => Kind3 export declare function match( F: Functor3C ): (onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Kind3>) => Kind3 export declare function match( F: Functor2 ): (onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Kind2>) => Kind2 export declare function match( F: Functor2C ): (onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Kind2>) => Kind2 export declare function match( F: Functor1 ): (onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Kind>) => Kind export declare function match( F: Functor ): (onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: HKT>) => HKT /** * @since 2.10.0 */ export declare function matchE( M: Chain3 ): ( onLeft: (e: E) => Kind3, onRight: (a: A) => Kind3 ) => (ma: Kind3>) => Kind3 export declare function matchE( M: Chain3C ): ( onLeft: (e: E) => Kind3, onRight: (a: A) => Kind3 ) => (ma: Kind3>) => Kind3 export declare function matchE( M: Chain2 ): ( onLeft: (e: E) => Kind2, onRight: (a: A) => Kind2 ) => (ma: Kind2>) => Kind2 export declare function matchE( M: Chain2C ): ( onLeft: (e: E) => Kind2, onRight: (a: A) => Kind2 ) => (ma: Kind2>) => Kind2 export declare function matchE( M: Chain1 ): (onLeft: (e: E) => Kind, onRight: (a: A) => Kind) => (ma: Kind>) => Kind export declare function matchE( M: Chain ): (onLeft: (e: E) => HKT, onRight: (a: A) => HKT) => (ma: HKT>) => HKT /** * @since 2.10.0 */ export declare function getOrElse( M: Monad3 ): (onLeft: (e: E) => Kind3) => (ma: Kind3>) => Kind3 export declare function getOrElse( M: Monad3C ): (onLeft: (e: E) => Kind3) => (ma: Kind3>) => Kind3 export declare function getOrElse( M: Monad2 ): (onLeft: (e: E) => Kind2) => (ma: Kind2>) => Kind2 export declare function getOrElse( M: Monad2C ): (onLeft: (e: E) => Kind2) => (ma: Kind2>) => Kind2 export declare function getOrElse( M: Monad1 ): (onLeft: (e: E) => Kind) => (ma: Kind>) => Kind export declare function getOrElse( M: Monad ): (onLeft: (e: E) => HKT) => (ma: HKT>) => HKT /** * @since 2.10.0 */ export declare function orElse( M: Monad3 ): ( onLeft: (e: E1) => Kind3> ) => (ma: Kind3>) => Kind3> export declare function orElse( M: Monad3C ): ( onLeft: (e: E1) => Kind3> ) => (ma: Kind3>) => Kind3> export declare function orElse( M: Monad2 ): ( onLeft: (e: E1) => Kind2> ) => (ma: Kind2>) => Kind2> export declare function orElse( M: Monad2C ): ( onLeft: (e: E1) => Kind2> ) => (ma: Kind2>) => Kind2> export declare function orElse( M: Monad1 ): (onLeft: (e: E1) => Kind>) => (ma: Kind>) => Kind> export declare function orElse( M: Monad ): (onLeft: (e: E1) => HKT>) => (ma: HKT>) => HKT> /** * @category error handling * @since 2.11.0 */ export declare function orElseFirst( M: Monad3 ): ( onLeft: (e: E) => Kind3> ) => (ma: Kind3>) => Kind3> export declare function orElseFirst( M: Monad3C ): ( onLeft: (e: E) => Kind3> ) => (ma: Kind3>) => Kind3> export declare function orElseFirst( M: Monad2 ): ( onLeft: (e: E) => Kind2> ) => (ma: Kind2>) => Kind2> export declare function orElseFirst( M: Monad2C ): ( onLeft: (e: E) => Kind2> ) => (ma: Kind2>) => Kind2> export declare function orElseFirst( M: Monad1 ): (onLeft: (e: E) => Kind>) => (ma: Kind>) => Kind> export declare function orElseFirst( M: Monad ): (onLeft: (e: E) => HKT>) => (ma: HKT>) => HKT> /** * @category error handling * @since 2.11.0 */ export declare function orLeft( M: Monad3 ): ( onLeft: (e: E1) => Kind3 ) => (fa: Kind3>) => Kind3> export declare function orLeft( M: Monad3C ): ( onLeft: (e: E1) => Kind3 ) => (fa: Kind3>) => Kind3> export declare function orLeft( M: Monad2 ): ( onLeft: (e: E1) => Kind2 ) => (fa: Kind2>) => Kind2> export declare function orLeft( M: Monad2C ): (onLeft: (e: E1) => Kind2) => (fa: Kind2>) => Kind2> export declare function orLeft( M: Monad1 ): (onLeft: (e: E1) => Kind) => (fa: Kind>) => Kind> export declare function orLeft( M: Monad ): (onLeft: (e: E1) => HKT) => (fa: HKT>) => HKT> /** * @since 2.10.0 */ export declare function swap( F: Functor3 ): (ma: Kind3>) => Kind3> export declare function swap( F: Functor3C ): (ma: Kind3>) => Kind3> export declare function swap( F: Functor2 ): (ma: Kind2>) => Kind2> export declare function swap( F: Functor2C ): (ma: Kind2>) => Kind2> export declare function swap(F: Functor1): (ma: Kind>) => Kind> export declare function swap(F: Functor): (ma: HKT>) => HKT> /** * @since 2.10.0 */ export declare function toUnion( F: Functor3 ): (fa: Kind3>) => Kind3 export declare function toUnion( F: Functor3C ): (fa: Kind3>) => Kind3 export declare function toUnion( F: Functor2 ): (fa: Kind2>) => Kind2 export declare function toUnion( F: Functor2C ): (fa: Kind2>) => Kind2 export declare function toUnion(F: Functor1): (fa: Kind>) => Kind export declare function toUnion(F: Functor): (fa: HKT>) => HKT import URI = E.URI /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface EitherT extends HKT> {} /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface EitherM extends ApplicativeCompositionHKT2 { readonly chain: (ma: EitherT, f: (a: A) => EitherT) => EitherT readonly alt: (fa: EitherT, that: Lazy>) => EitherT readonly bimap: (ma: EitherT, f: (e: E) => N, g: (a: A) => B) => EitherT readonly mapLeft: (ma: EitherT, f: (e: E) => N) => EitherT readonly fold: (ma: EitherT, onLeft: (e: E) => HKT, onRight: (a: A) => HKT) => HKT readonly getOrElse: (ma: EitherT, onLeft: (e: E) => HKT) => HKT readonly orElse: (ma: EitherT, onLeft: (e: E) => EitherT) => EitherT readonly swap: (ma: EitherT) => EitherT readonly rightM: (ma: HKT) => EitherT readonly leftM: (me: HKT) => EitherT readonly left: (e: E) => EitherT } /** * @category zone of death * @since 2.0.0 * @deprecated */ export declare type EitherT1 = Kind> /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface EitherM1 extends ApplicativeComposition12 { readonly chain: (ma: EitherT1, f: (a: A) => EitherT1) => EitherT1 readonly alt: (fa: EitherT1, that: Lazy>) => EitherT1 readonly bimap: (ma: EitherT1, f: (e: E) => N, g: (a: A) => B) => EitherT1 readonly mapLeft: (ma: EitherT1, f: (e: E) => N) => EitherT1 readonly fold: ( ma: EitherT1, onLeft: (e: E) => Kind, onRight: (a: A) => Kind ) => Kind readonly getOrElse: (ma: EitherT1, onLeft: (e: E) => Kind) => Kind readonly orElse: (ma: EitherT1, onLeft: (e: E) => EitherT1) => EitherT1 readonly swap: (ma: EitherT1) => EitherT1 readonly rightM: (ma: Kind) => EitherT1 readonly leftM: (me: Kind) => EitherT1 readonly left: (e: E) => EitherT1 } /** * @category zone of death * @since 2.0.0 * @deprecated */ export declare type EitherT2 = Kind2> /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface EitherM2 extends ApplicativeComposition22 { readonly chain: (ma: EitherT2, f: (a: A) => EitherT2) => EitherT2 readonly alt: (fa: EitherT2, that: Lazy>) => EitherT2 readonly bimap: (ma: EitherT2, f: (e: E) => N, g: (a: A) => B) => EitherT2 readonly mapLeft: (ma: EitherT2, f: (e: E) => N) => EitherT2 readonly fold: ( ma: EitherT2, onLeft: (e: E) => Kind2, onRight: (a: A) => Kind2 ) => Kind2 readonly getOrElse: (ma: EitherT2, onLeft: (e: E) => Kind2) => Kind2 readonly orElse: ( ma: EitherT2, onLeft: (e: E) => EitherT2 ) => EitherT2 readonly swap: (ma: EitherT2) => EitherT2 readonly rightM: (ma: Kind2) => EitherT2 readonly leftM: (me: Kind2) => EitherT2 readonly left: (e: E) => EitherT2 } /** * @category zone of death * @since 2.0.0 * @deprecated */ export declare function getEitherM(M: Monad2): EitherM2 /** @deprecated */ export declare function getEitherM(M: Monad1): EitherM1 /** @deprecated */ export declare function getEitherM(M: Monad): EitherM