import * as HKT from './HKT' export interface Fail extends HKT.Base { readonly fail: FailFn } export type FailMin = { readonly fail: FailFn } export function Fail(F: FailMin): Fail { return HKT.instance({ fail: F.fail }) } export interface FailFn { < E, N extends string = HKT.Initial, K = HKT.Initial, Q = HKT.Initial, W = HKT.Initial, X = HKT.Initial, I = HKT.Initial, S = HKT.Initial, R = HKT.Initial, A = never >( e: HKT.OrFix<'E', C, E> ): HKT.Kind } export interface FailFnComposition { < EG, NF extends string = HKT.Initial, KF = HKT.Initial, QF = HKT.Initial, WF = HKT.Initial, XF = HKT.Initial, IF = HKT.Initial, SF = HKT.Initial, RF = HKT.Initial, EF = HKT.Initial, NG extends string = HKT.Initial, KG = HKT.Initial, QG = HKT.Initial, WG = HKT.Initial, XG = HKT.Initial, IG = HKT.Initial, SG = HKT.Initial, RG = HKT.Initial, A = never >( e: EG ): HKT.Kind> }