import { Exp, ExpMeta } from "../exp"; import { Core } from "../core"; import { Value } from "../value"; import { Ctx } from "../ctx"; export declare class Let extends Exp { meta: ExpMeta; name: string; exp: Exp; ret: Exp; constructor(name: string, exp: Exp, ret: Exp, meta: ExpMeta); free_names(bound_names: Set): Set; subst(name: string, exp: Exp): Let; infer(ctx: Ctx): { t: Value; core: Core; }; check(ctx: Ctx, t: Value): Core; repr(): string; }