> Compare this to the constraints and workarounds that Kotlin and Scala have due to type-erasure on the JVM.

The creator of Scala disagrees: https://youtu.be/Xn_YpUtXWT4?t=850

I take back what I said. I do think Martin is right. He was a creator of Generic Java as well. Not having generics in the runtime is better for language developers, since you can implement different type systems in the language instead. Debugging for users is usually a nightmare though, since generics are usually monomorphized in the IL.

I do think the C#/CLR struct implementation is better though.