Static type systems: Programming Language Design course | Zoonk
21. Static type systems
Define typing judgments and implement a checker for expressions, functions, records, and control flow. Distinguish static guarantees from checks that must remain at runtime.