UNPKG

effect-ts-folds

Version:
14 lines 826 B
import { HKT } from 'effect'; /** `Cofree<F, A> ≡ [A, F<Cofree<F, A>>]` */ export type Cofree<F extends HKT.TypeLambda, A, E = unknown, R = unknown, I = never> = [A, HKT.Kind<F, I, R, E, Cofree<F, A, E, R, I>>]; /** * ```ts * Kind<CofreeTypeLambda<F>, E, R, I, A> ≡ Cofree<F, A, E, R, I> * ``` */ export interface CofreeTypeLambda<F extends HKT.TypeLambda> extends HKT.TypeLambda { readonly type: Cofree<F, this['Target'], this['Out1'], this['Out2'], this['In']>; } export declare const extract: <F extends HKT.TypeLambda, A, E = unknown, R = unknown, I = never>([head]: Cofree<F, A, E, R, I>) => A; export declare const unwrap: <F extends HKT.TypeLambda, A, E = unknown, R = unknown, I = never>([_, tail]: Cofree<F, A, E, R, I>) => HKT.Kind<F, I, R, E, Cofree<F, A, E, R, I>>; //# sourceMappingURL=cofree.d.ts.map