UNPKG

effect-ts-folds

Version:
27 lines 1.36 kB
import { Covariant as CO } from '@effect/typeclass'; import { Array as AR } from 'effect'; import { TypeLambda } from 'effect/HKT'; import { Algebra } from './folds.js'; /** * Convert a tuple of algebras into an algebra of a tuple. * @category ops */ export declare const zipFolds: <F extends TypeLambda>(F: CO.Covariant<F>) => <const Targets extends AR.NonEmptyArray<unknown>, E = unknown, R = never>(...[head, ...tail]: TupledAlgebras<F, Targets, E, R>) => Algebra<F, Targets, E, R>; /** * Append an algebra to an algebra of a tuple. * @category ops */ export declare const appendFold: <F extends TypeLambda>(F: CO.Covariant<F>) => <const Targets extends AR.NonEmptyArray<unknown>, A, E = unknown, R = never>(algebra: Algebra<F, Targets, E, R>, append: Algebra<F, A, E, R>) => Algebra<F, [...Targets, A], E, R>; /** * Convert an algebra of `A` into an algebra of `[A]`. * @category ops */ export declare const unaryTuple: <F extends TypeLambda>(F: CO.Covariant<F>) => <A, E = unknown, R = never>(fold: Algebra<F, A, E, R>) => Algebra<F, [A], E, R>; /** * The type of a tuple of algebras with the given `Targets`. * @category ops */ export type TupledAlgebras<F extends TypeLambda, Targets extends [unknown, ...unknown[]], R = never, E = unknown> = { [K in keyof Targets]: Algebra<F, Targets[K], E, R>; }; //# sourceMappingURL=tuple.d.ts.map