TypeScript: How to implement higher kinded polymorphism (high-order generics) | Heykuki News