/** * @since 2.4.0 */ import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C } from './Apply' import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C } from './Chain' 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 * as T from './These' import 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: Lazy, a: Lazy) => (fa: Kind3>) => Kind3 export declare function toTuple2( F: Functor3C ): (e: Lazy, a: Lazy) => (fa: Kind3>) => Kind3 export declare function toTuple2( F: Functor2 ): (e: Lazy, a: Lazy) => (fa: Kind2>) => Kind2 export declare function toTuple2( F: Functor2C ): (e: Lazy, a: Lazy) => (fa: Kind2>) => Kind2 export declare function toTuple2( F: Functor1 ): (e: Lazy, a: Lazy) => (fa: Kind>) => Kind export declare function toTuple2( F: Functor ): (e: Lazy, a: Lazy) => (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 declare 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 declare 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