> .NET's type system is quite elegant
What do you think about being able to use Void in Generics? Java's issue of not supporting primitive types pales in comparison to that.
Also, while reified generics and structs are fine, most of the optimizations one would reasonably suspect to be supported are just not there. Some time ago, it was still faster to pass value types by reference ... that's just embarrassing. Maybe RyuJIT does better here?