Canonical.Create
Create.create defs exp
constructs a canonical-shape. The defs
give context for sub-expressions of the form: apply n exps
; n
being a reference to the n'th definition in defs
.
Definition are required for record
s and variant
s, but may also occurs for any cyclic expression: in this case being constructed using define
.
Within a definition body, var i
refers to the i'th formal type-var, and corresponds to the i'the argument of an application args
.
val poly_variant : Location.t -> (string * Exp.t option) list -> Exp.t
val var : int -> Exp.t