/** * @since 2.4.0 */ import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C } from './Apply.js'; import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C } from './Chain.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'; import * as T from './These.js'; type These = T.These; /** * @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 both(F: Pointed3): (e: E, a: A) => Kind3>; export declare function both(F: Pointed3C): (e: E, a: A) => Kind3>; export declare function both(F: Pointed2): (e: E, a: A) => Kind2>; export declare function both(F: Pointed2C): (e: E, a: A) => Kind2>; export declare function both(F: Pointed1): (e: E, a: A) => Kind>; export declare function both(F: Pointed): (e: E, a: A) => 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.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, S: Semigroup): (fa: Kind3>) => (fab: Kind3 B>>) => Kind3>; export declare function ap(F: Apply3C, S: Semigroup): (fa: Kind3>) => (fab: Kind3 B>>) => Kind3>; export declare function ap(F: Apply2, S: Semigroup): (fa: Kind2>) => (fab: Kind2 B>>) => Kind2>; export declare function ap(F: Apply2C, S: Semigroup): (fa: Kind2>) => (fab: Kind2 B>>) => Kind2>; export declare function ap(F: Apply1, S: Semigroup): (fa: Kind>) => (fab: Kind B>>) => Kind>; export declare function ap(F: Apply, S: Semigroup): (fa: HKT>) => (fab: HKT B>>) => HKT>; /** * @since 2.10.0 */ export declare function chain(M: Monad3, S: Semigroup): (f: (a: A) => Kind3>) => (ma: Kind3>) => Kind3>; export declare function chain(M: Monad3C, S: Semigroup): (f: (a: A) => Kind3>) => (ma: Kind3>) => Kind3>; export declare function chain(M: Monad2, S: Semigroup): (f: (a: A) => Kind2>) => (ma: Kind2>) => Kind2>; export declare function chain(M: Monad2C, S: Semigroup): (f: (a: A) => Kind2>) => (ma: Kind2>) => Kind2>; export declare function chain(M: Monad1, S: Semigroup): (f: (a: A) => Kind>) => (ma: Kind>) => Kind>; export declare function chain(M: Monad, S: Semigroup): (f: (a: A) => HKT>) => (ma: 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>; /** * @since 2.10.0 */ export declare function match(F: Functor3): (onLeft: (e: E) => B, onRight: (a: A) => B, onBoth: (e: E, a: A) => B) => (ma: Kind3>) => Kind3; export declare function match(F: Functor3C): (onLeft: (e: E) => B, onRight: (a: A) => B, onBoth: (e: E, a: A) => B) => (ma: Kind3>) => Kind3; export declare function match(F: Functor2): (onLeft: (e: E) => B, onRight: (a: A) => B, onBoth: (e: E, a: A) => B) => (ma: Kind2>) => Kind2; export declare function match(F: Functor2C): (onLeft: (e: E) => B, onRight: (a: A) => B, onBoth: (e: E, a: A) => B) => (ma: Kind2>) => Kind2; export declare function match(F: Functor1): (onLeft: (e: E) => B, onRight: (a: A) => B, onBoth: (e: E, a: A) => B) => (ma: Kind>) => Kind; export declare function match(F: Functor): (onLeft: (e: E) => B, onRight: (a: A) => B, onBoth: (e: E, a: A) => B) => (ma: HKT>) => HKT; /** * @since 2.10.0 */ export declare function matchE(M: Chain3): (onLeft: (e: E) => Kind3, onRight: (a: A) => Kind3, onBoth: (e: E, a: A) => Kind3) => (ma: Kind3>) => Kind3; export declare function matchE(M: Chain3C): (onLeft: (e: E) => Kind3, onRight: (a: A) => Kind3, onBoth: (e: E, a: A) => Kind3) => (ma: Kind3>) => Kind3; export declare function matchE(M: Chain2): (onLeft: (e: E) => Kind2, onRight: (a: A) => Kind2, onBoth: (e: E, a: A) => Kind2) => (ma: Kind2>) => Kind2; export declare function matchE(M: Chain2C): (onLeft: (e: E) => Kind2, onRight: (a: A) => Kind2, onBoth: (e: E, a: A) => Kind2) => (ma: Kind2>) => Kind2; export declare function matchE(M: Chain1): (onLeft: (e: E) => Kind, onRight: (a: A) => Kind, onBoth: (e: E, a: A) => Kind) => (ma: Kind>) => Kind; export declare function matchE(M: Chain): (onLeft: (e: E) => HKT, onRight: (a: A) => HKT, onBoth: (e: E, a: A) => HKT) => (ma: 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 toTuple2(F: Functor3): (e: LazyArg, a: LazyArg) => (fa: Kind3>) => Kind3; export declare function toTuple2(F: Functor3C): (e: LazyArg, a: LazyArg) => (fa: Kind3>) => Kind3; export declare function toTuple2(F: Functor2): (e: LazyArg, a: LazyArg) => (fa: Kind2>) => Kind2; export declare function toTuple2(F: Functor2C): (e: LazyArg, a: LazyArg) => (fa: Kind2>) => Kind2; export declare function toTuple2(F: Functor1): (e: LazyArg, a: LazyArg) => (fa: Kind>) => Kind; export declare function toTuple2(F: Functor): (e: LazyArg, a: LazyArg) => (fa: HKT>) => HKT; /** * @category zone of death * @since 2.4.0 * @deprecated */ export interface TheseT extends HKT> { } /** * @category zone of death * @since 2.4.0 * @deprecated */ export interface TheseM { readonly map: (fa: TheseT, f: (a: A) => B) => TheseT; readonly bimap: (fa: TheseT, f: (e: E) => N, g: (a: A) => B) => TheseT; readonly mapLeft: (fa: TheseT, f: (e: E) => N) => TheseT; readonly fold: (fa: TheseT, onLeft: (e: E) => HKT, onRight: (a: A) => HKT, onBoth: (e: E, a: A) => HKT) => HKT; readonly swap: (fa: TheseT) => TheseT; readonly rightM: (ma: HKT) => TheseT; readonly leftM: (me: HKT) => TheseT; readonly left: (e: E) => TheseT; readonly right: (a: A) => TheseT; readonly both: (e: E, a: A) => TheseT; readonly toTuple: (fa: TheseT, e: E, a: A) => HKT; readonly getMonad: (S: Semigroup) => { readonly _E: E; readonly map: (ma: TheseT, f: (a: A) => B) => TheseT; readonly of: (a: A) => TheseT; readonly ap: (mab: TheseT B>, ma: TheseT) => TheseT; readonly chain: (ma: TheseT, f: (a: A) => TheseT) => TheseT; }; } /** * @category zone of death * @since 2.4.0 * @deprecated */ export type TheseT1 = Kind>; /** * @category zone of death * @since 2.4.0 * @deprecated */ export interface TheseM1 { readonly map: (fa: TheseT1, f: (a: A) => B) => TheseT1; readonly bimap: (fa: TheseT1, f: (e: E) => N, g: (a: A) => B) => TheseT1; readonly mapLeft: (fa: TheseT1, f: (e: E) => N) => TheseT1; readonly fold: (fa: TheseT1, onLeft: (e: E) => Kind, onRight: (a: A) => Kind, onBoth: (e: E, a: A) => Kind) => Kind; readonly swap: (fa: TheseT1) => TheseT1; readonly rightM: (ma: Kind) => TheseT1; readonly leftM: (me: Kind) => TheseT1; readonly left: (e: E) => TheseT1; readonly right: (a: A) => TheseT1; readonly both: (e: E, a: A) => TheseT1; readonly toTuple: (fa: TheseT1, e: E, a: A) => Kind; readonly getMonad: (S: Semigroup) => { readonly _E: E; readonly map: (ma: TheseT1, f: (a: A) => B) => TheseT1; readonly of: (a: A) => TheseT1; readonly ap: (mab: TheseT1 B>, ma: TheseT1) => TheseT1; readonly chain: (ma: TheseT1, f: (a: A) => TheseT1) => TheseT1; }; } /** * @category zone of death * @since 2.4.0 * @deprecated */ export type TheseT2 = Kind2>; /** * @category zone of death * @since 2.4.0 * @deprecated */ export interface TheseM2 { readonly map: (fa: TheseT2, f: (a: A) => B) => TheseT2; readonly bimap: (fa: TheseT2, f: (e: E) => N, g: (a: A) => B) => TheseT2; readonly mapLeft: (fa: TheseT2, f: (e: E) => N) => TheseT2; readonly fold: (fa: TheseT2, onLeft: (e: E) => Kind2, onRight: (a: A) => Kind2, onBoth: (e: E, a: A) => Kind2) => Kind2; readonly swap: (fa: TheseT2) => TheseT2; readonly rightM: (ma: Kind2) => TheseT2; readonly leftM: (me: Kind2) => TheseT2; readonly left: (e: E) => TheseT2; readonly right: (a: A) => TheseT2; readonly both: (e: E, a: A) => TheseT2; readonly toTuple: (fa: TheseT2, e: E, a: A) => Kind2; readonly getMonad: (S: Semigroup) => { readonly _E: E; readonly map: (ma: TheseT2, f: (a: A) => B) => TheseT2; readonly of: (a: A) => TheseT2; readonly ap: (mab: TheseT2 B>, ma: TheseT2) => TheseT2; readonly chain: (ma: TheseT2, f: (a: A) => TheseT2) => TheseT2; }; } /** * @category zone of death * @since 2.4.0 * @deprecated */ export declare function getTheseM(M: Monad2): TheseM2; /** @deprecated */ export declare function getTheseM(M: Monad1): TheseM1; /** @deprecated */ export declare function getTheseM(M: Monad): TheseM; export {};