import { HKT } from "@tsplus/stdlib/prelude/HKT"; import type { Recursive } from "@tsplus/stdlib/prelude/Recursive"; /** * @tsplus type Recursive/Annotated * @tsplus companion Recursive/Annotated/Ops */ export declare class Annotated implements Recursive { readonly caseValue: HKT.Kind>; readonly annotations: A; constructor(caseValue: HKT.Kind>, annotations: A); } export declare namespace Annotated { /** * A function operating on a single level of a recursive structure, * with its recursive terms replaced by a value *and* an annotation, which * represents the value computed for each child. aka `Course-of-Value (CV)Algebra` */ type Fn = (r: HKT.Kind>) => Z; } /** * @tsplus fluent Recursive/Annotated unfix * @tsplus static Recursive/Annotated/Ops unfix * @tsplus location "@tsplus/stdlib/prelude/Recursive/Annotated" */ export declare function unfixAnnotated({ caseValue }: Annotated): HKT.Kind>; /** * @tsplus static Recursive/Annotated/Ops __call * @tsplus static Recursive/Annotated/Ops make * @tsplus location "@tsplus/stdlib/prelude/Recursive/Annotated" */ export declare function makeAnnotated(caseValue: HKT.Kind>, annotations: Z): Annotated; //# sourceMappingURL=Annotated.d.ts.map