Is your feature request related to a problem? Please describe.
The G-Machine transpiler cannot compile a few expressions:
- partially applied data constructor expressions
- let expressions in non-strict context
- match expressions in non-strict context
- lambda expressions
Those expressions cannot be compiled without extra steps like a lifting step for those expressions. Such a lifting step is not hard to implement, and it helps us to limit the types of runtime heap nodes. miniCUTE already implements a lambda lifting function, but it is only a part of aforementioned expressions.
By implementing this we can also close #57.
Describe the solution you'd like
Implementing lifting functions for other uncompilable expressions.
Is your feature request related to a problem? Please describe.
The G-Machine transpiler cannot compile a few expressions:
Those expressions cannot be compiled without extra steps like a lifting step for those expressions. Such a lifting step is not hard to implement, and it helps us to limit the types of runtime heap nodes. miniCUTE already implements a lambda lifting function, but it is only a part of aforementioned expressions.
By implementing this we can also close #57.
Describe the solution you'd like
Implementing lifting functions for other uncompilable expressions.