Step 2: Core Type Checker

Plain strict typing (no effects yet): functions, primitives, structs, enums. Proves parse -> check -> reject-bad-programs works end-to-end. Generics ride on this step (T: type is an ordinary param, List(T) an ordinary call; monomorphization deferred to codegen).

-
95% Completed