import type * as P from "@principia/prelude"; import type { LazyPromise, URI, V } from "./model"; /** * ```haskell * both_ :: Apply f => (f a, f b) -> f (a, b) * ``` * * Applies both `LazyPromise`s and collects their results into a tuple * * @category Apply * @since 1.0.0 */ export declare const both_: (fa: LazyPromise, fb: LazyPromise) => LazyPromise; /** * ```haskell * both :: Apply f => f b -> f a -> f (a, b) * ``` * * Applies both `LazyPromise`s and collects their results into a tuple * * @category Apply * @since 1.0.0 */ export declare const both: (fb: LazyPromise) => (fa: LazyPromise) => LazyPromise; /** * ```haskell * bothSeq_ :: Apply f => (f a, f b) -> f (a, b) * ``` * * Sequentially applies both `LazyPromise`s and collects their results into a tuple. For a parallel version, see `both_` * * @category Apply * @since 1.0.0 */ export declare const bothSeq_: (fa: LazyPromise, fb: LazyPromise) => LazyPromise; /** * ```haskell * bothSeq :: Apply f => f b -> f a -> f (a, b) * ``` * * Sequentially applies both `LazyPromise`s and collects their results into a tuple. For a parallel version, see `both` * * @category Apply * @since 1.0.0 */ export declare const bothSeq: (fb: LazyPromise) => (fa: LazyPromise) => LazyPromise; /** * ```haskell * pure :: a -> LazyPromise a * ``` * * Lifts a pure value into a `LazyPromise` * * @category Applicative * @since 1.0.0 */ export declare const pure: (a: A) => LazyPromise; export declare const ApplicativePar: P.Applicative<[URI], V>; export declare const ApplicativeSeq: P.Applicative<[URI], V>; //# sourceMappingURL=applicative.d.ts.map