I spent a few hours recently going deep on one of the most deceptively tricky JavaScript problems I've encountered: implementing curry from scratch, in TypeScript. The problem statement sounds simple.