Reconstructing a TypeScript bidirectional type checker | Hacker News Reader