The typechecking/typechecker.py file is too big, containing almost everything related to the typechecker.
Some modularization should be done, especially:
- put all error definitions in
error_defs
- put the environment definition (e.g. builtins ...) in
env_defs
maybe some more modularization (?)