/** * Utility functions to accommodate `fp-ts/Monoid`. * * @since 0.12.0 */ import type { Foldable1, Foldable2, Foldable2C, Foldable3, Foldable3C, Foldable4 } from "fp-ts/Foldable"; import type { Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from "fp-ts/HKT"; import type { Monoid } from "fp-ts/Monoid"; import type { Lazy } from "./Lazy"; /** * Extracts the value from within a foldable, falling back to the monoidal * identity of said value. * * @example * import { toMonoid } from 'fp-ts-std/Monoid' * import * as O from 'fp-ts/Option' * import * as Str from 'fp-ts/string' * * const f = toMonoid(O.Foldable)(Str.Monoid) * * assert.deepStrictEqual(f(O.some('x')), 'x') * assert.deepStrictEqual(f(O.none), '') * * @category 2 Typeclass Methods * @since 0.12.0 */ export declare function toMonoid(F: Foldable4): (G: Monoid) => (x: Kind4) => A; export declare function toMonoid(F: Foldable3): (G: Monoid) => (x: Kind3) => A; export declare function toMonoid(F: Foldable3C): (G: Monoid) => (x: Kind3) => A; export declare function toMonoid(F: Foldable2): (G: Monoid) => (x: Kind2) => A; export declare function toMonoid(F: Foldable2C): (G: Monoid) => (x: Kind2) => A; export declare function toMonoid(F: Foldable1): (G: Monoid) => (x: Kind) => A; /** * Conditionally returns the provided monoidal value or its identity. The dual * to `memptyUnless`. The lazy value is evaluated only if the condition passes. * * @example * import { constant } from 'fp-ts/function' * import { memptyWhen } from 'fp-ts-std/Monoid' * import * as O from 'fp-ts/Option' * import * as Str from 'fp-ts/string' * * const f = memptyWhen(O.getMonoid(Str.Monoid)) * * assert.deepStrictEqual(f(true)(constant(O.some('x'))), O.none) * assert.deepStrictEqual(f(true)(constant(O.none)), O.none) * assert.deepStrictEqual(f(false)(constant(O.some('x'))), O.some('x')) * assert.deepStrictEqual(f(false)(constant(O.none)), O.none) * * @category 2 Typeclass Methods * @since 0.13.0 */ export declare const memptyWhen: (M: Monoid) => (x: boolean) => (y: Lazy) => A; /** * Conditionally returns the provided monoidal value or its identity. The dual * to `memptyWhen`. The lazy value is evaluated only if the condition passes. * * @example * import { constant } from 'fp-ts/function' * import { memptyUnless } from 'fp-ts-std/Monoid' * import * as O from 'fp-ts/Option' * import * as Str from 'fp-ts/string' * * const f = memptyUnless(O.getMonoid(Str.Monoid)) * * assert.deepStrictEqual(f(true)(constant(O.some('x'))), O.some('x')) * assert.deepStrictEqual(f(true)(constant(O.none)), O.none) * assert.deepStrictEqual(f(false)(constant(O.some('x'))), O.none) * assert.deepStrictEqual(f(false)(constant(O.none)), O.none) * * @category 2 Typeclass Methods * @since 0.13.0 */ export declare const memptyUnless: (M: Monoid) => (x: boolean) => (y: Lazy) => A; //# sourceMappingURL=Monoid.d.ts.map