// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
class A(val z: Int) : Comparable {
override fun compareTo(other: A): Int {
return z.compareTo(other.z)
}
}
operator fun A.rangeTo(that: A): ClosedRange = object: ClosedRange {
override val endInclusive: A
get() = that
override val start: A
get() = this@rangeTo
}
operator fun ClosedRange.iterator() = (start.z..endInclusive.z).map { A(it) }.iterator()
fun box(): String {
if (!( A(2) in A(1)..A(12) )) return "Fail 1"
if ( A(2) !in A(1)..A(12) ) return "Fail 2"
return "OK"
}