Types That Enforce
This segment should take about 45 minutes. It contains:
| Slide | Duration |
|---|---|
| Newtypes: Parse, Don’t Validate | 12 minutes |
| Enums: Illegal States, Unrepresentable | 12 minutes |
| Typestate: State Machines That Compile | 12 minutes |
| RAII, Guards, and Drop Bombs | 9 minutes |
Four patterns with one purpose: move a runtime check into the type system, so generated code doesn’t need to remember to perform it.
For a reviewer, these patterns are also a signal. Their presence suggests the codebase was designed. Their absence, with validation scattered through bodies and states tracked in booleans, suggests it accumulated.