broom-lang / broom

A programming language with first-class modules and algebraic effects.
https://broom.readthedocs.io
BSD 3-Clause "New" or "Revised" License
10 stars 1 forks source link

Convenient variable representation for FAst #12

Closed nilern closed 4 years ago

nilern commented 5 years ago

Some sort of use-def/def-use pointers and stuff like in the imperative version of "Shrinking Lambda Expressions in Linear Time" and "Shrinking Reductions in SML.NET" would be convenient for optimization. Alphatization is not as convenient and mangles the names, which is bad for debugging and especially error messages.

E.g. ATM the well-foundedness analysis must construct scope trees to deal properly with scoping without mangling the names (to keep error messages intelligible).