UNPKG

effect-ts-folds

Version:
13 lines 781 B
import { Covariant as CO } from '@effect/typeclass'; import { Types } from 'effect'; import { Kind, TypeLambda } from 'effect/HKT'; import { Algebra } from './folds.js'; export type StructReturns<F extends TypeLambda, S extends Record<string, Algebra<F, any>>, E = unknown, R = unknown, I = never> = { [K in keyof S]: S[K] extends Algebra<F, infer A, E, R, I> ? A : never; }; /** * Convert a struct of algebras into an algebra of a struct. * @category ops */ export declare const struct: <F extends TypeLambda>(F: CO.Covariant<F>) => <const S extends Record<string, Algebra<F, any>>>(struct: S) => <E = unknown, R = unknown, I = never>(fas: Kind<F, I, R, E, StructReturns<F, S, E, R, I>>) => Types.Simplify<StructReturns<F, S, E, R, I>>; //# sourceMappingURL=struct.d.ts.map