MVP unification implementation plan
The implementation of unification (inference) following this document can be split into a few smaller, separate tasks/PRs for smoother transition and easier testing.
Stage 1: Type checker enhancement
At the time of writing, the first stage of the totality checker MVP is finished. But the second and third stages, namely type checking data type and function declarations are required before unification can be implemented.
At the end of this stage, conversion/type checking for constructors is implemented.