Current type checker has (at least) three big problems.
- Insufficient type error message (lack of information of code line where type check fails, constraints of unification variable do not provide information about what they are, how to fix them when they fail)
- Mutations (
TypeMap and LCUVar are mutable object)
- high coupling of normal type check logic and back propagation logic of unification variable.
To go further, we need to rewrite type checker once again. I'm looking for ideas, hope you share your idea here.
Current type checker has (at least) three big problems.
TypeMapandLCUVarare mutable object)To go further, we need to rewrite type checker once again. I'm looking for ideas, hope you share your idea here.