To elaborate a bit, `RDD.countByValue()` uses `OpenHashMap` in this patch, and it would only compile if `RDD`'s type parameter also was bounded by `>: Null`. And that alone makes a whole, whole lot of code require the same bound.

I am new to Scala, but, does dropping the bound actually hurt? It means that one could use value types as keys, which seems conceptually OK. The class supports mapping `null` to a value with the `nullValue` field, and that is used only where a method gets a `null` key. For value types, the key will simply never be `null`. Even lines like `null.asInstanceOf[V]` work fine for value types; for `Int` you get 0 for example.

So my read is that the class permits `null` (i.e. reference types) but does not require them, really? If I'm right I think the simplest thing is to just permit value types as keys?