Cómo declarar el parámetro de extensión en los enumeradores generics de compañeros

Me gustaría tener .MAX en enumeraciones genéricas para representar el recuento de valores.

Traté de jugar un poco, pero no pude entenderlo.

Cuando escribo, por ejemplo, esto:

val Enum.Companion.MAX get() = enumValues().size

Se queja en enumValues() que

Falló la inferencia de tipo: no hay suficiente información para inferir el parámetro T en

funcion en linea> enumValues ​​(): Matriz Por favor especifíquelo explícitamente.

Tiene sentido, luego lo intenté también:

val <E> Enum<E>.Companion.MAX get() = enumValues().size

Se queja en el segundo E

Los arguments de tipo para la class externa son networkingundantes cuando se hace reference a la class anidada

¿Hay alguna manera?