let identity = function‹T›(x: T): T { // ... } let reverse = function‹U›(y: U): U { // ... } identity = reverse; // OK, because (x: any) => any matches (y: any) => any