Typechecking in ATS2 is essentially done in the same way as it was done in
ATS1.
While there are some improvements, they are relatively minor.
However, the way ATS2 compiles source into C code is very different from
ATS1.
The C code generated by the ATS1 compiler is largely readable but this
cannot be said
about the C code generated by the ATS2 compiler. This is largely due to
extensive use of
templates in ATS2.
In the future, I hope that some kind of tool can be implemented to help
people read the C
code generated by the ATS2 compiler. In particular, this tool should be
able to remove identical
copies of functions (generated from template compilation).