import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT.js'; /** * @category model * @since 2.0.0 */ export interface Functor { readonly URI: F; readonly map: (fa: HKT, f: (a: A) => B) => HKT; } /** * @category model * @since 2.0.0 */ export interface Functor1 { readonly URI: F; readonly map: (fa: Kind, f: (a: A) => B) => Kind; } /** * @category model * @since 2.0.0 */ export interface Functor2 { readonly URI: F; readonly map: (fa: Kind2, f: (a: A) => B) => Kind2; } /** * @category model * @since 2.0.0 */ export interface Functor2C { readonly URI: F; readonly _E: E; readonly map: (fa: Kind2, f: (a: A) => B) => Kind2; } /** * @category model * @since 2.0.0 */ export interface Functor3 { readonly URI: F; readonly map: (fa: Kind3, f: (a: A) => B) => Kind3; } /** * @category model * @since 2.2.0 */ export interface Functor3C { readonly URI: F; readonly _E: E; readonly map: (fa: Kind3, f: (a: A) => B) => Kind3; } /** * @category model * @since 2.0.0 */ export interface Functor4 { readonly URI: F; readonly map: (fa: Kind4, f: (a: A) => B) => Kind4; } /** * `map` composition. * * @since 2.10.0 */ export declare function map(F: Functor3, G: Functor1): (f: (a: A) => B) => (fa: Kind3>) => Kind3>; export declare function map(F: Functor2, G: Functor2): (f: (a: A) => B) => (fa: Kind2>) => Kind2>; export declare function map(F: Functor2, G: Functor1): (f: (a: A) => B) => (fa: Kind2>) => Kind2>; export declare function map(F: Functor1, G: Functor3): (f: (a: A) => B) => (fa: Kind>) => Kind>; export declare function map(F: Functor1, G: Functor2): (f: (a: A) => B) => (fa: Kind>) => Kind>; export declare function map(F: Functor1, G: Functor1): (f: (a: A) => B) => (fa: Kind>) => Kind>; export declare function map(F: Functor, G: Functor2): (f: (a: A) => B) => (fa: HKT>) => HKT>; export declare function map(F: Functor, G: Functor1): (f: (a: A) => B) => (fa: HKT>) => HKT>; export declare function map(F: Functor, G: Functor): (f: (a: A) => B) => (fa: HKT>) => HKT>; /** * @category mapping * @since 2.10.0 */ export declare function flap(F: Functor4): (a: A) => (fab: Kind4 B>) => Kind4; export declare function flap(F: Functor3): (a: A) => (fab: Kind3 B>) => Kind3; export declare function flap(F: Functor2): (a: A) => (fab: Kind2 B>) => Kind2; export declare function flap(F: Functor1): (a: A) => (fab: Kind B>) => Kind; export declare function flap(F: Functor): (a: A) => (fab: HKT B>) => HKT; /** * @since 2.10.0 */ export declare function bindTo(F: Functor4): (name: N) => (fa: Kind4) => Kind4; export declare function bindTo(F: Functor3): (name: N) => (fa: Kind3) => Kind3; export declare function bindTo(F: Functor3C): (name: N) => (fa: Kind3) => Kind3; export declare function bindTo(F: Functor2): (name: N) => (fa: Kind2) => Kind2; export declare function bindTo(F: Functor2C): (name: N) => (fa: Kind2) => Kind2; export declare function bindTo(F: Functor1): (name: N) => (fa: Kind) => Kind; export declare function bindTo(F: Functor): (name: N) => (fa: HKT) => HKT; /** * @since 2.13.0 */ declare function let_(F: Functor4): (name: Exclude, f: (a: A) => B) => (fa: Kind4) => Kind4; declare function let_(F: Functor3): (name: Exclude, f: (a: A) => B) => (fa: Kind3) => Kind3; declare function let_(F: Functor3C): (name: Exclude, f: (a: A) => B) => (fa: Kind3) => Kind3; declare function let_(F: Functor2): (name: Exclude, f: (a: A) => B) => (fa: Kind2) => Kind2; declare function let_(F: Functor2C): (name: Exclude, f: (a: A) => B) => (fa: Kind2) => Kind2; declare function let_(F: Functor1): (name: Exclude, f: (a: A) => B) => (fa: Kind) => Kind; declare function let_(F: Functor): (name: Exclude, f: (a: A) => B) => (fa: HKT) => HKT; export { /** * @since 2.13.0 */ let_ as let }; /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorComposition { readonly map: (fa: HKT>, f: (a: A) => B) => HKT>; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorCompositionHKT1 { readonly map: (fa: HKT>, f: (a: A) => B) => HKT>; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorCompositionHKT2 { readonly map: (fa: HKT>, f: (a: A) => B) => HKT>; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorCompositionHKT2C { readonly map: (fa: HKT>, f: (a: A) => B) => HKT>; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorComposition11 { readonly map: (fa: Kind>, f: (a: A) => B) => Kind>; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorComposition12 { readonly map: (fa: Kind>, f: (a: A) => B) => Kind>; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorComposition12C { readonly map: (fa: Kind>, f: (a: A) => B) => Kind>; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorComposition21 { readonly map: (fa: Kind2>, f: (a: A) => B) => Kind2>; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorComposition2C1 { readonly map: (fa: Kind2>, f: (a: A) => B) => Kind2>; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorComposition22 { readonly map: (fa: Kind2>, f: (a: A) => B) => Kind2>; } /** * @category zone of death * @since 2.0.0 * @deprecated */ export interface FunctorComposition22C { readonly map: (fa: Kind2>, f: (a: A) => B) => Kind2>; } /** * @category zone of death * @since 2.2.0 * @deprecated */ export interface FunctorComposition23 { readonly map: (fa: Kind2>, f: (a: A) => B) => Kind2>; } /** * @category zone of death * @since 2.2.0 * @deprecated */ export interface FunctorComposition23C { readonly map: (fa: Kind2>, f: (a: A) => B) => Kind2>; } /** * Use [`map`](#map) instead. * * @category zone of death * @since 2.0.0 * @deprecated */ export declare function getFunctorComposition(F: Functor2, G: Functor3C): FunctorComposition23C; /** @deprecated */ export declare function getFunctorComposition(F: Functor2, G: Functor2C): FunctorComposition22C; /** @deprecated */ export declare function getFunctorComposition(F: Functor2, G: Functor2): FunctorComposition22; /** @deprecated */ export declare function getFunctorComposition(F: Functor2C, G: Functor1): FunctorComposition2C1; /** @deprecated */ export declare function getFunctorComposition(F: Functor2, G: Functor1): FunctorComposition21; /** @deprecated */ export declare function getFunctorComposition(F: Functor1, G: Functor2C): FunctorComposition12C; /** @deprecated */ export declare function getFunctorComposition(F: Functor1, G: Functor2): FunctorComposition12; /** @deprecated */ export declare function getFunctorComposition(F: Functor1, G: Functor1): FunctorComposition11; /** @deprecated */ export declare function getFunctorComposition(F: Functor, G: Functor): FunctorComposition;