- Constructor variables are counted as free variables in lambdas. Implement a correct free variable finder algorithm
- Nested match case are deleted by desugaring algorithm (it was code generation that didn't produce stuff unless the value was used)
- Implement pattern matching in the backend.
- Rewrite the way values are stored in adts. Store each value on the heap instead. Might encounter stack overflows for deep recursive data types otherwise.
- Refactor and comment the code a bit.