Type abstractions. Type abstractions are just like normal abstractions, but instead of introducing a variable that ranges over values, it introduces a type variable that ranges over types.
Вот было бы классно, если бы такое было в мейнстримовых языках