import { Kind } from '@fp4ts/core'; import { Apply } from './apply'; import { Either } from './data'; import { ArrayF } from './instances/array'; /** * @category Type Class */ export interface FlatMap extends Apply { readonly flatMap: (f: (a: A) => Kind) => (fa: Kind) => Kind; readonly flatMap_: (fa: Kind, f: (a: A) => Kind) => Kind; readonly flatTap: (f: (a: A) => Kind) => (fa: Kind) => Kind; readonly flatTap_: (fa: Kind, f: (a: A) => Kind) => Kind; readonly flatten: (ffa: Kind]>) => Kind; readonly tailRecM: (a: A) => (f: (a: A) => Kind]>) => Kind; readonly tailRecM_: (a: A, f: (a: A) => Kind]>) => Kind; readonly foreverM: (fa: Kind) => Kind; andThen(g: (b: B) => Kind): (f: (a: A) => Kind) => (a: A) => Kind; andThen_(f: (a: A) => Kind, g: (b: B) => Kind): (a: A) => Kind; compose(f: (a: A) => Kind): (g: (b: B) => Kind) => (a: A) => Kind; compose_(g: (b: B) => Kind, f: (a: A) => Kind): (a: A) => Kind; } export type FlatMapRequirements = Pick, 'flatMap_' | 'map_' | 'tailRecM_'> & Partial>; export declare const FlatMap: Readonly<{ of: (F: FlatMapRequirements) => FlatMap; readonly Array: FlatMap; }>; //# sourceMappingURL=flat-map.d.ts.map