Consider `inline fun <reified T> typeName(): String = T::class.java.name`. How is the `reified` type parameter realized in the generated bytecode at each call site?
inline fun <reified T> typeName(): String = T::class.java.name
val a = typeName<String>()
val b = typeName<Int>()