TypeScript dependent types and function bivariance | Hacker News Reader