JavaScript IO: Separating pure and impure functions | Hacker News Reader