This is wrong (at least in the comment). Hash on Long should only be calculated like that, if the value cannot be held by a Int. The reason is consistency with `equals`:

```
scala> val value = x
scala> (value ^ (value >>> 32)).toInt
res4: Int = 4
```