More convenient way to use comparators in Kotlin
Is comparator.use { a > b } more readable than comparator.compare(a, b) > 0?

Readability is relative and more a point of view. Usually something is considered more readable, the more people say it is.  

In my personal opinion both solutions are easy to read, while I like the syntax of the first more. Actually something very similar exists in the language already: compareBy

list.sortedWith(
  compareBy{ it.a }.thenBy { it.b }.thenByDescending { it.c }
)


It has all combinations you need and provides a nice, well readable syntax.

Is it a good idea to replace use with invoke operator or make this function infix?


use isntead of invoke


It is opinion based, just like readability. Its up to you and your team.


Infix


Making a function an infix function is just another customisation option for your syntax. The only important thing to remeber is:


  Infix function calls have lower precedence than the arithmetic
  operators, type casts, and the rangeTo operator. The following
  expressions are equivalent:
  
  
  1 shl 2 + 3 is equivalent to 1 shl (2 + 3) 
  0 until n * 2 is equivalent to 0 until (n * 2) 
  xs union ys as Set&lt;> is equivalent to xs union (ysas Set&lt;>)
  
  
  On the other hand, infix function call's precedence is
  higher than that of the boolean operators &amp;&amp; and ||, is- and
  in-checks, and some other operators. These expressions are equivalent
  as well:
  
  
  a &amp;&amp; b xor c is equivalent to a &amp;&amp; (b xor c) 
  a xor b in c isequivalent to (a xor b) in c
  


Kotlinlang.org

-

Any improvement suggestions that you can think of

Strongly consider to use compareBy like described before.