import { $type, Kind, TyK, TyVar } from '@fp4ts/core'; import { Invariant } from './invariant'; import { ComposedFunctor } from './composed'; import { ArrayF } from './instances/array'; /** * @category Type Class */ export interface Functor extends Invariant { readonly map: (f: (a: A) => B) => (fa: Kind) => Kind; readonly map_: (fa: Kind, f: (a: A) => B) => Kind; readonly tupleLeft: (b: B) => (fa: Kind) => Kind; readonly tupleLeft_: (fa: Kind, b: B) => Kind; readonly tupleRight: (b: B) => (fa: Kind) => Kind; readonly tupleRight_: (fa: Kind, b: B) => Kind; readonly tap: (f: (a: A) => unknown) => (fa: Kind) => Kind; readonly tap_: (fa: Kind, f: (a: A) => unknown) => Kind; readonly void: (fa: Kind) => Kind; } export type FunctorRequirements = Pick, 'map_'> & Partial>; export declare const Functor: Readonly<{ of: (F: FunctorRequirements) => Functor; compose: (F: Functor, G: Functor) => ComposedFunctor; readonly ArrayF: Functor; }>; export interface FunctorF extends TyK<[unknown]> { [$type]: Functor>; } //# sourceMappingURL=functor.d.ts.map