Summary
vera/checker.py is currently 1,888 lines and growing. As C7c (visibility enforcement) and C7d (cross-module verification) land, it will approach the ~2,500 line threshold where single-file navigation becomes painful.
Suggested decomposition
Split into a vera/checker/ package:
core.py — TypeChecker class, two-pass architecture, expression synthesis
modules.py — cross-module registration and ModuleCall checking (C7b+)
effects.py — effect row checking, handler validation
__init__.py — re-export typecheck() public API
When
After C7 series completes, as a dedicated refactor phase. Splitting mid-feature would be disruptive since checker.py is modified in every C7 sub-phase.
Summary
vera/checker.pyis currently 1,888 lines and growing. As C7c (visibility enforcement) and C7d (cross-module verification) land, it will approach the ~2,500 line threshold where single-file navigation becomes painful.Suggested decomposition
Split into a
vera/checker/package:core.py— TypeChecker class, two-pass architecture, expression synthesismodules.py— cross-module registration and ModuleCall checking (C7b+)effects.py— effect row checking, handler validation__init__.py— re-exporttypecheck()public APIWhen
After C7 series completes, as a dedicated refactor phase. Splitting mid-feature would be disruptive since checker.py is modified in every C7 sub-phase.