Legend:

we can either treat identifiers containing only underscores as lowercase names or invalid depending on how important the ability to obfscusiate code is to us.

15

we can either treat identifiers containing only underscores as lowercase names or invalid depending on how important the ability to obfscusiate code is to us. (or a composite number of them being a variable and a prime number of them being a constructor if we really really want to allow obfscusiated code :) )

16

16

17

17

The leading underscore convention is not only useful as a way to suppress warnings, but as a form of documentation that we expect a name to be unused so being able to use it in these cases would be helpful.