Closed joelburget closed 3 years ago
Though I closed this by doing the binding check described above, it occurs to me now, we could also modify abstract syntax definitions with explicit variable declarations, eg
term :=
| x
| Operator(list term)
This applies only to the
lvca.abstract_syntax_module
ppx. There,term := Operator(list term)
generates:Do we want the
Term_var
constructor? Probably, usually. If the language ever binds aterm
, then yes:But not if there's no
scope
. This can be easily statically determined when all definitions live in the same language, but not ifterm
is imported as an external into another language, however I guess at that point it would be represented asNominal
(currently).