Writing correct code, part 1: whatever happened to invariants? | Hacker News Reader