The comparison (< and > operators) between objects of different types is
now based on object's addresses in memory. This leads to unpredictable results
and causes troubles with test scripts.
Proposed solution is:
- This is undefined behavior and could change in future, leave it undocumented
- Error and Undefined should always be < than any other object
- Objects of different type should compare < or > based on their Type ID
- Objects of the same type should always have comparison method implemented.
The code should not compile if those methods have not been implemented.