Object Identity Many languages provide built-in pointer and structural equality and comparison. To preserve encapsulation, in Sather these operations must go through the class interface like every method. BOOL ' must be explicitly defined by the type of the left side for this syntax to be useful. This class also provides built-in mechanisms for comparison and hashing. This class is a common parameter bound in container classes.
Many classes define a notion of equality which is different than pointer equality.
For example, two STR strings may be equal although they are not unique. Many container classes need to be able to compute hash values of their items. ID also provides this built-in hash function. To preserve class encapsulation, Sather does not provide a built-in way to copy objects.