This interface defines a total ordering among instances of each class implementing it.
In other words:
`b.compare_to(c) < 0` then `a.compare_to(c) < 0`.
`a.compare_to(b) = -b.compare_to(a)`.
The relationship must be immutable. In other words if at one point of program `a.compare_to(b)` had certain value then call `a.compare_to(b)` must always return the original value until end of `a` and `b` lifetime.