import type { ApplicativeMin } from './Applicative'; import type { Either } from './Either'; import type { Fail, FailMin } from './Fail'; import type { Option } from './Option'; import { Applicative } from './Applicative'; import * as HKT from './HKT'; export interface ApplicativeExcept extends Applicative, Fail { readonly catchAll_: CatchAllFn_; readonly catchAll: CatchAllFn; readonly catchSome_: CatchSomeFn_; readonly catchSome: CatchSomeFn; readonly attempt: AttemptFn; } export declare type ApplicativeExceptMin = ApplicativeMin & FailMin & { readonly catchAll_: CatchAllFn_; }; export declare function ApplicativeExcept(F: ApplicativeExceptMin): ApplicativeExcept; export interface CatchAllFn_ { (fa: HKT.Kind, f: (e: HKT.OrFix<'E', C, E>) => HKT.Kind, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, A1>): HKT.Kind, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, E1, A | A1>; } export interface CatchAllFn { (f: (e: HKT.OrFix<'E', C, E>) => HKT.Kind): (fa: HKT.Kind, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, A>) => HKT.Kind, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, E1, A | A1>; } export interface CatchSomeFn_ { (fa: HKT.Kind, f: (e: HKT.OrFix<'E', C, E>) => Option, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, A1>>): HKT.Kind, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, A | A1>; } export declare function catchSomeF_(F: ApplicativeExceptMin): CatchSomeFn_; export interface CatchSomeFn { (f: (e: HKT.OrFix<'E', C, E>) => Option>): (fa: HKT.Kind, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, HKT.Intro, A>) => HKT.Kind, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, HKT.Mix, A | A1>; } export declare function catchSomeF(F: ApplicativeExceptMin): CatchSomeFn; export interface AttemptFn { (fa: HKT.Kind): HKT.Kind, A>>; } export declare function attemptF(F: ApplicativeExceptMin): AttemptFn; //# sourceMappingURL=ApplicativeExcept.d.ts.map