effekt-lang / effekt

A research language with effect handlers and lightweight effect polymorphism

Home Page:https://effekt-lang.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Make constructors explicit in core and ff.

b-studios opened this issue · comments

Constructor calls are currently represented by PureApp nodes in the core tree and following representations.

This would be a bit more symmetrical to how the introduction and elimination of codata/objects (new) is treated.

Note that optimizations (case-of-known-case etc.) are currently possible without making constructors explicit, since we can just compare the symbols.

This works, since free variables in core (such as data types and constructors) are not renamed (which is the case for bound local variables) and the PureApp and the Match thus still point to the constructor symbol.