By now, there are at least two cases where we want to provide syntax for convenience to the programmer but in the compiler want to desugar it to normal (typed) lambda calculus in ALang:
Destructuring (issue #17)
Explicit state handling (issue #22)
Therefore, I suggest to have another language called OhuaLang which is a superset of ALang and supports all this convenient syntax. The compiler pipeline is then:
OhuaLang -> ALang -> DFLang -> Code
OhuaLang will allow us to do all the desugaring in the compiler once instead of many times in each of the parsers.
By now, there are at least two cases where we want to provide syntax for convenience to the programmer but in the compiler want to desugar it to normal (typed) lambda calculus in ALang:
Therefore, I suggest to have another language called
OhuaLang
which is a superset of ALang and supports all this convenient syntax. The compiler pipeline is then:OhuaLang will allow us to do all the desugaring in the compiler once instead of many times in each of the parsers.