import type { Applicative } from './Applicative'; import type { Either } from './Either'; import type { FilterableMin } from './Filterable'; import type { Option } from './Option'; import type { TraversableMin } from './Traversable'; import { Filterable } from './Filterable'; import * as HKT from './HKT'; import { Traversable } from './Traversable'; export interface Witherable extends Filterable, Traversable { readonly separateA_: WiltFn_; readonly separateA: WiltFn; readonly compactA_: WitherFn_; readonly compactA: WitherFn; } export declare type WitherableMin = FilterableMin & TraversableMin & { readonly separateA_: WiltFn_; readonly compactA_: WitherFn_; }; export declare function Witherable(F: WitherableMin): Witherable; export interface WitherFn { (F: Applicative): (f: (a: A) => HKT.Kind>) => (wa: HKT.Kind) => HKT.Kind>; } export interface WitherFn_ { (F: Applicative): (wa: HKT.Kind, f: (a: A) => HKT.Kind>) => HKT.Kind>; } export declare function implementWither(): (i: (_: { A: A; B: B; G: G; NF: NF; FK: FK; FQ: FQ; FW: FW; FX: FX; FI: FI; FS: FS; FR: FR; FE: FE; }) => (G: Applicative>) => (f: (a: A) => HKT.HKT>) => (wa: HKT.Kind) => HKT.HKT>) => WitherFn; export declare function implementWither_(): (i: (_: { A: A; B: B; G: G; NF: NF; FK: FK; FQ: FQ; FW: FW; FX: FX; FI: FI; FS: FS; FR: FR; FE: FE; }) => (G: Applicative>) => (wa: HKT.Kind, f: (a: A) => HKT.HKT>) => HKT.HKT>) => WitherFn_; export interface WiltFn { (F: Applicative): (f: (a: A) => HKT.Kind>) => (wa: HKT.Kind) => HKT.Kind, HKT.Kind ]>; } export interface WiltFn_ { (F: Applicative): (wa: HKT.Kind, f: (a: A) => HKT.Kind>) => HKT.Kind, HKT.Kind ]>; } export declare function implementWilt(): (i: (_: { A: A; B: B; B1: B1; G: G; NF: NF; KF: KF; QF: QF; WF: WF; XF: XF; IF: IF; SF: SF; RF: RF; EF: EF; }) => (G: Applicative>) => (f: (a: A) => HKT.HKT>) => (wa: HKT.Kind) => HKT.HKT, HKT.Kind ]>) => WiltFn; //# sourceMappingURL=Witherable.d.ts.map