import type { Applicative } from "./applicative"; import type { AsyncFunctor } from "./async-functor"; export interface AsyncApplicative extends AsyncFunctor, Applicative { asyncApply( this: AsyncApplicative<(a: A) => Promise>, arg: AsyncApplicative | A> ): Promise>; asyncApply( this: AsyncApplicative | A>, fn: AsyncApplicative<(a: A) => Promise> ): Promise>; }