8ef93e2af5
The TypeChecker implementation was becoming quite large, so it has been refactored into several modules: - `context`: Handles type checking contexts and inference access. - `inference`: Contains the core Hindley-Milner inference logic (unification, generalization, etc.). - `finalize`: Manages the finalization step, applying substitutions and dispatching hooks. - `check`: Implements the main type checking logic for AST nodes. This modularization improves code organization and maintainability.