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 records and variants, 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.tval var : int ‑> Exp.t