Верхние границы: <T : CharSequence>, несколько через where T : A, T : B.
Разбор
fun <T> foo() where T : Comparable<T>, T : Any.
- Nullable bounds:
T : Any?.
- Variance рядом с bounds усложняет API — документируйте.
- reified + bound в inline.
Итог
where-clause задаёт пересечение ограничений на параметр типа.