Algunos tipos se leen como una dirección larga: Map<String, List<Pair<UserId, Role>>>: está bien para el compilador, es agotador para los humanos. typealias proporciona un nombre más corto sin cambiar el tiempo de ejecución; sigue siendo el mismo tipo subyacente. Cuando necesita un tipo distinto en tiempo de compilación sin ajustar el costo en la JVM, la clase de valor @JvmInline ajusta un valor pero lo borra en tiempo de ejecución cuando está optimizado, perfecto para identificadores y unidades.
typealias: apodo, no nueva identidad