evincarofautumn / kitten

A statically typed concatenative systems programming language.
http://kittenlang.org/
Other
1.09k stars 39 forks source link

Simplify terms. #168

Closed evincarofautumn closed 6 years ago

evincarofautumn commented 7 years ago

The Group constructor is redundant because (x) is equivalent to {x} call, and Group is only used for infix desugaring, after which it just gets in the way. This is a work in progress—currently, the compiler can fail to find the right instantiation of the definition generated by lifting the intermediate quotation. In the future, optimisations will be able to remove this unnecessary closure, but this issue needs to be fixed anyway.

Since a quotation is only ever used at a single type, we should be able to generate the correct instantiation immediately.

evincarofautumn commented 6 years ago

I’ve started to take these thoughts in a different direction on the reorg branch.