public int compareTo(MutableValue other) {Class<? extends MutableValue> c1 = this.getClass();Class<? extends MutableValue> c2 = other.getClass();if (c1 != c2) {int c = c1.hashCode() - c2.hashCode();if (c == 0) {c = c1.getCanonicalName().compareTo(c2.getCanonicalName());}return c;}return compareSameType(other);}

public virtual int CompareTo(MutableValue other){Type c1 = this.GetType();Type c2 = other.GetType();if (c1 != c2){int c = c1.GetHashCode() - c2.GetHashCode();if (c == 0){c = c1.FullName.CompareToOrdinal(c2.FullName);}return c;}return CompareSameType(other);}
