Implementations of `#equals` should return `false` for different types, not
throw.

```java
class Data {
  private int a;

  @Override
  public boolean equals(Object other) {
    Data that = (Data) other; // BAD: This may throw ClassCastException.
    return a == that.a;
  }
}
```
