import type { Monoid } from './Monoid'; import * as HKT from './HKT'; export interface Foldable extends HKT.Base { readonly foldl_: FoldLeftFn_; readonly foldl: FoldLeftFn; readonly foldMap_: FoldMapFn_; readonly foldMap: FoldMapFn; readonly foldr_: FoldRightFn_; readonly foldr: FoldRightFn; } export declare type FoldableMin = { readonly foldl_: FoldLeftFn_; readonly foldr_: FoldRightFn_; readonly foldMap_: FoldMapFn_; }; export declare function Foldable(F: FoldableMin): Foldable; export interface FoldableComposition extends HKT.CompositionBase2 { readonly foldl_: FoldLeftFnComposition_; readonly foldl: FoldLeftFnComposition; readonly foldMap_: FoldMapFnComposition_; readonly foldMap: FoldMapFnComposition; readonly foldr_: FoldRightFnComposition_; readonly foldr: FoldRightFnComposition; } export declare function getFoldableComposition(F: Foldable, G: Foldable): FoldableComposition; export interface FoldLeftFn { (b: B, f: (b: B, a: A) => B): (fa: HKT.Kind) => B; } export interface FoldLeftFn_ { (fa: HKT.Kind, b: B, f: (b: B, a: A) => B): B; } export interface FoldLeftFnComposition { (b: B, f: (b: B, a: A) => B): (fga: HKT.Kind>) => B; } export interface FoldLeftFnComposition_ { (fga: HKT.Kind>, b: B, f: (b: B, a: A) => B): B; } export interface FoldRightFn { (b: B, f: (a: A, b: B) => B): (fa: HKT.Kind) => B; } export interface FoldRightFn_ { (fa: HKT.Kind, b: B, f: (a: A, b: B) => B): B; } export interface FoldRightFnComposition { (b: B, f: (a: A, b: B) => B): (fa: HKT.Kind>) => B; } export interface FoldRightFnComposition_ { (fa: HKT.Kind>, b: B, f: (a: A, b: B) => B): B; } export interface FoldMapFn { (M: Monoid): (f: (a: A) => M) => (fa: HKT.Kind) => M; } export interface FoldMapFn_ { (M: Monoid): (fa: HKT.Kind, f: (a: A) => M) => M; } export interface FoldMapFnComposition { (M: Monoid): (f: (a: A) => M) => (fga: HKT.Kind>) => M; } export interface FoldMapFnComposition_ { (M: Monoid): (fga: HKT.Kind>, f: (a: A) => M) => M; } //# sourceMappingURL=Foldable.d.ts.map