Type System & PL Twitter question:
What is a good name for the opposite of 'elaboration'? Ie. going from the core language back to the surface language. Some ideas:
- resugaring
- delaboration
- co-elaboration (collaboration? 🤪)
Conversation
resugaring probably. are you thinking about the possibility of doing this in a structure preserving way or just making a morphism of this at all?
1
Replying to
Hmm, not sure about what it would look like to do either of those. I wouldn't require `resugar(elaborate(concrete)) == concrete`, but I _would_ require `elaborate(resugar(core)) == core`, if that's what you're talking about?
Replying to
right the latter is the property I'm getting at. wondering if there are properties which can be lost in desugaring which can't be resugared. for context free syntax/reader macros it's definitely doable. otherwise you're trading on how much lower core is.
1

