data class Result {
  constructor(i: Int) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val i: Int
    field = i
    get

  operator fun component1(): Int {
    return <this>.#i
  }

  fun copy(i: Int = <this>.#i): Result {
    return Result(i = i)
  }

  override fun equals(other: Any?): Boolean {
    when {
      EQEQEQ(arg0 = <this>, arg1 = other) -> return true
    }
    when {
      other !is Result -> return false
    }
    val tmp0_other_with_cast: Result = other as Result
    when {
      EQEQ(arg0 = <this>.#i, arg1 = tmp0_other_with_cast.#i).not() -> return false
    }
    return true
  }

  override fun hashCode(): Int {
    return <this>.#i.hashCode()
  }

  override fun toString(): String {
    return "Result(" + "i=" + <this>.#i + ")"
  }

}

var operationScore: Int
  field = 0
  get
  set

operator fun Result.unaryMinus(_context_receiver_0: Int): Result {
  <set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
  return Result(i = <this>.<get-i>().unaryMinus())
}

operator fun Result.unaryPlus(_context_receiver_0: Int): Result {
  <set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
  return Result(i = when {
    less(arg0 = <this>.<get-i>(), arg1 = 0) -> <this>.<get-i>().unaryMinus()
    else -> <this>.<get-i>()
  })
}

operator fun Result.inc(_context_receiver_0: Int): Result {
  <set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
  return Result(i = <this>.<get-i>().plus(other = 1))
}

operator fun Result.dec(_context_receiver_0: Int): Result {
  <set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
  return Result(i = <this>.<get-i>().minus(other = 1))
}

fun box(): String {
  var result: Result = Result(i = 0)
  with<Int, Result>(receiver = 1, block = local fun Int.<anonymous>(): Result {
    val <unary>: Result = result
    result = <unary>.inc(_context_receiver_0 = $this$with)
    <unary> /*~> Unit */
    val <unary>: Result = result
    result = <unary>.inc(_context_receiver_0 = $this$with)
    <unary> /*~> Unit */
    result.unaryMinus(_context_receiver_0 = $this$with) /*~> Unit */
    result.unaryPlus(_context_receiver_0 = $this$with) /*~> Unit */
    val <unary>: Result = result
    result = <unary>.dec(_context_receiver_0 = $this$with)
    return <unary>
  }
) /*~> Unit */
  return when {
    when {
      EQEQ(arg0 = result.<get-i>(), arg1 = 1) -> EQEQ(arg0 = <get-operationScore>(), arg1 = 5)
      else -> false
    } -> "OK"
    else -> "fail"
  }
}
