Ответ
Reified позволяет сохранить информацию о типе во время выполнения, избегая стирания, благодаря inline-функциям. При компиляции код inline-функции подставляется на место вызова, и тип становится известен статически.
Пример:
inline fun <reified T> checkType(value: Any) {
if (value is T) println("Correct type")
else println("Wrong type")
}
checkType<String>("test") // Выведет: Correct type
Без reified проверка value is T невозможна из-за стирания типа T в runtime. Inline-функции позволяют "подставить" реальный тип (String в примере) прямо в месте вызова, сохраняя его информацию.