Always call compare() regardless of inheritance hierarchy

Ekneuss pointed out that right now sibling classes with a common
base would not make use of compare(). Thus now the inheritance
order is no longer checked and simply the class of the left object
is used to call the method.