This interface is used to compare elements in a viewer for equality,
and to provide the hash code for an element.
This allows the client of the viewer to specify different equality criteria
and a different hash code implementation than the
equals and hashCode implementations of the
elements themselves.