/** * 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.js'; import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C } from './Apply.js'; import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C } from './Chain.js'; import * as E from './Either.js'; import { LazyArg } from './function.js'; import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C } from './Functor.js'; import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT.js'; import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad.js'; import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C } from './Pointed.js'; import { Semigroup } from './Semigroup.js'; type 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: LazyArg>>) => (first: Kind3>) => Kind3>; export declare function alt(M: Monad3C): (second: LazyArg>>) => (first: Kind3>) => Kind3>; export declare function alt(M: Monad2): (second: LazyArg>>) => (first: Kind2>) => Kind2>; export declare function alt(M: Monad2C): (second: LazyArg>>) => (first: Kind2>) => Kind2>; export declare function alt(M: Monad1): (second: LazyArg>>) => (first: Kind>) => Kind>; export declare function alt(M: Monad): (second: LazyArg>>) => (first: HKT>) => HKT>; /** * @since 2.10.0 */ export declare function bimap(F: Functor3): (f: (e: E) => G, g: (a: A) => B) => (self: Kind3>) => Kind3>; export declare function bimap(F: Functor3C): (f: (e: E) => G, g: (a: A) => B) => (self: Kind3>) => Kind3>; export declare function bimap(F: Functor2): (f: (e: E) => G, g: (a: A) => B) => (self: Kind2>) => Kind2>; export declare function bimap(F: Functor2C): (f: (e: E) => G, g: (a: A) => B) => (self: Kind2>) => Kind2>; export declare function bimap(F: Functor1): (f: (e: E) => G, g: (a: A) => B) => (self: Kind>) => Kind>; export declare function bimap(F: Functor): (f: (e: E) => G, g: (a: A) => B) => (self: HKT>) => HKT>; /** * @since 2.10.0 */ export declare function mapLeft(F: Functor3): (f: (e: E) => G) => (self: Kind3>) => Kind3>; export declare function mapLeft(F: Functor3C): (f: (e: E) => G) => (self: Kind3>) => Kind3>; export declare function mapLeft(F: Functor2): (f: (e: E) => G) => (self: Kind2>) => Kind2>; export declare function mapLeft(F: Functor2C): (f: (e: E) => G) => (self: Kind2>) => Kind2>; export declare function mapLeft(F: Functor1): (f: (e: E) => G) => (self: Kind>) => Kind>; export declare function mapLeft(F: Functor): (f: (e: E) => G) => (self: HKT>) => HKT>; /** * @category error handling * @since 2.10.0 */ export declare function altValidation(M: Monad3, S: Semigroup): (second: LazyArg>>) => (first: Kind3>) => Kind3>; export declare function altValidation(M: Monad3C, S: Semigroup): (second: LazyArg>>) => (first: Kind3>) => Kind3>; export declare function altValidation(M: Monad2, S: Semigroup): (second: LazyArg>>) => (first: Kind2>) => Kind2>; export declare function altValidation(M: Monad2C, S: Semigroup): (second: LazyArg>>) => (first: Kind2>) => Kind2>; export declare function altValidation(M: Monad1, S: Semigroup): (second: LazyArg>>) => (first: Kind>) => Kind>; export declare function altValidation(M: Monad, S: Semigroup): (second: LazyArg>>) => (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; type 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: LazyArg>) => 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 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: LazyArg>) => 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 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: LazyArg>) => 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; export {};