This is strange, but in this context -is an acceptable identifier for a type parameter. Here is a longer example:
class Y {
def identity[-](x: -): - = x
}
(new Y).identity(5) // returns 5
-inside [-]here is the normal type name, as well -as the class name in the following code:
class -
, , - . , :
class Z[-] {}