How to build a program that cannot do the wrong thing | Hacker News Reader