import type { Kind, TypeLambda } from "effect/HKT"; import type { Covariant } from "./Covariant.js"; import type { Semigroup } from "./Semigroup.js"; import type { SemiProduct } from "./SemiProduct.js"; /** * @category type class * @since 0.24.0 */ export interface SemiApplicative extends SemiProduct, Covariant { } /** * Lift a `Semigroup` into 'F', the inner values are combined using the provided `Semigroup`. * * @category lifting * @since 0.24.0 */ export declare const getSemigroup: (F: SemiApplicative) => (S: Semigroup) => Semigroup>; /** * Zips two `F` values together using a provided function, returning a new `F` of the result. * * @since 0.24.0 */ export declare const zipWith: (F: SemiApplicative) => { (that: Kind, f: (a: A, b: B) => C): (self: Kind) => Kind; (self: Kind, that: Kind, f: (a: A_1, b: B_1) => C_1): Kind; }; /** * @since 0.24.0 */ export declare const ap: (F: SemiApplicative) => { (that: Kind): (self: Kind B>) => Kind; (self: Kind B_1>, that: Kind): Kind; }; /** * @since 0.24.0 */ export declare const zipLeft: (F: SemiApplicative) => { (that: Kind): (self: Kind) => Kind; (self: Kind, that: Kind): Kind; }; /** * @since 0.24.0 */ export declare const zipRight: (F: SemiApplicative) => { (that: Kind): (self: Kind) => Kind; (self: Kind, that: Kind): Kind; }; /** * Lifts a binary function into `F`. * * @category lifting * @since 0.24.0 */ export declare const lift2: (F: SemiApplicative) => (f: (a: A, b: B) => C) => { (that: Kind): (self: Kind) => Kind; (self: Kind, that: Kind): Kind; }; //# sourceMappingURL=SemiApplicative.d.ts.map