TC-H Improvements
Just like there is not a single best programming language, there is not a single good and valid implementation of a garbage collector.
Each language has its own dynamic memory management model, and offer different tools to programmers to interact with it. Therefore, languages often have very different allocation / collection models, tailor made to fit their needs regarding memory management.
This allows some languages like Haskell to have very specialized models built around dynamic memory management.
Read the reference manual, think about how you would write a large program in Tiger, and how you would interact with memory.
And most importantly, have fun !