interface IA {

}

interface IB {
  abstract operator fun IA.compareTo(other: IA): Int

}

fun IB.test1(a1: IA, a2: IA): Boolean {
  return greater(arg0 = (<this>, a1).compareTo(other = a2), arg1 = 0)
}

fun IB.test2(a1: IA, a2: IA): Boolean {
  return greaterOrEqual(arg0 = (<this>, a1).compareTo(other = a2), arg1 = 0)
}

fun IB.test3(a1: IA, a2: IA): Boolean {
  return less(arg0 = (<this>, a1).compareTo(other = a2), arg1 = 0)
}

fun IB.test4(a1: IA, a2: IA): Boolean {
  return lessOrEqual(arg0 = (<this>, a1).compareTo(other = a2), arg1 = 0)
}
