val annotate : Uuid.t -> Exp.t -> Exp.tCreate.create defs expconstructs a canonical-shape. Thedefsgive context for sub-expressions of the form:apply n exps;nbeing a reference to the n'th definition indefs.Definition are required for
records andvariants, but may also occurs for any cyclic expression: in this case being constructed usingdefine.Within a definition body,
var irefers to the i'th formal type-var, and corresponds to the i'the argument of an applicationargs.
val basetype : Uuid.t -> Exp.t list -> Exp.tval tuple : Exp.t list -> Exp.tval poly_variant : Location.t -> (string * Exp.t option) list -> Exp.tval var : int -> Exp.tval apply : Def.t -> Exp.t list -> Exp.tval recurse : int -> Exp.t list -> Exp.tval define : Exp.t -> Def.tval record : (string * Exp.t) list -> Exp.tval variant : (string * Exp.t list) list -> Exp.tval create : Exp.t -> t