It is very useful to use ordered data structures such as TreeMap with Pair and Triple objects. In almost every other programming language, the natural order for tuples is the natural order of each element from left to right. For example in Python and Clojure:
sorted([[1, 2], [1, 5], [1, 1]])) => [[1, 1], [1, 2], [1, 5]]
(sort [[1 2] [1 5] [1 1]]) => ([1 1] [1 2] [1 5])
Even in statically typed languages such as C++ that happens as well (make_pair).
In Kotlin however, it is required to implement a cumbersome Comparable interface even when it is pretty clear what is the common case of sorting a Pair<Int, Int> for example. Is there any reason for that being the case?