Why is this so different from `Entity::equals`? It looks much nicer with `$that instanceof self` and such.