import type * as P from "@principia/prelude"; import type { URI, V } from "./model"; /** * ```haskell * ap_ :: Apply f => (f (a -> b), f a) -> f b * ``` * * Apply a function to an argument under a type constructor * * @category Apply * @since 1.0.0 */ export declare const ap_: (fab: readonly ((a: A) => B)[], fa: readonly A[]) => readonly B[]; /** * ```haskell * ap :: Apply f => f a -> f (a -> b) -> f b * ``` * * Apply a function to an argument under a type constructor * * @category Apply * @since 1.0.0 */ export declare const ap: (fa: readonly A[]) => (fab: readonly ((a: A) => B)[]) => readonly B[]; /** * ```haskell * apFirst_ :: Apply f => (f a, f b) -> f a * ``` * * Combine two effectful actions, keeping only the result of the first * * @category Apply * @since 1.0.0 */ export declare const apFirst_: (fa: readonly A[], fb: readonly B[]) => readonly A[]; /** * ```haskell * apFirst :: Apply f => f b -> f a -> f a * ``` * * Combine two effectful actions, keeping only the result of the first * * @category Apply * @since 1.0.0 */ export declare const apFirst: (fb: ReadonlyArray) => (fa: ReadonlyArray) => ReadonlyArray; /** * ```haskell * apSecond_ :: Apply f => (f a, f b) -> f b * ``` * * Combine two effectful actions, keeping only the result of the second * * @category Apply * @since 1.0.0 */ export declare const apSecond_: (fa: readonly A[], fb: readonly B[]) => readonly B[]; /** * ```haskell * apSecond :: Apply f => f b -> f a -> f b * ``` * * Combine two effectful actions, keeping only the result of the second * * @category Apply * @since 1.0.0 */ export declare const apSecond: (fb: readonly B[]) => (fa: readonly A[]) => readonly B[]; export declare const zipWith_: (fa: readonly A[], fb: readonly B[], f: (a: A, b: B) => C) => readonly C[]; export declare const mapBoth_: (fa: readonly A[], fb: readonly B[], f: (a: A, b: B) => C) => readonly C[]; export declare const zipWith: (fb: readonly B[], f: (a: A, b: B) => C) => (fa: readonly A[]) => readonly C[]; export declare const mapBoth: (fb: readonly B[], f: (a: A, b: B) => C) => (fa: readonly A[]) => readonly C[]; export declare const Apply: P.Apply<[URI], V>; //# sourceMappingURL=apply.d.ts.map