TypeScript type system can't describe currying? | Hacker News Reader