data class MyContainer {
  var s: String
    field = s
    get
    set

  constructor(s: String) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  operator fun component1(): String {
    return <this>.#s
  }

  fun copy(s: String = <this>.#s): MyContainer {
    return MyContainer(s = s)
  }

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

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

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

}

fun box(): String {
  return with<Int, String>(receiver = 42, block = local fun Int.<anonymous>(): String {
    val myContainer: MyContainer = MyContainer(s = "fail")
    myContainer.set($context_receiver_0 = $this$with, index = 0, value = "OK")
    return { // BLOCK
      val tmp_1: String? = myContainer.get($context_receiver_0 = $this$with, index = 0)
      when {
        EQEQ(arg0 = tmp_1, arg1 = null) -> "fail"
        else -> tmp_1
      }
    }
  }
)
}

operator fun MyContainer.get($context_receiver_0: Int, index: Int): String? {
  return when {
    when {
      EQEQ(arg0 = index, arg1 = 0) -> EQEQ(arg0 = $context_receiver_0, arg1 = 42)
      else -> false
    } -> <this>.<get-s>()
    else -> null
  }
}

operator fun MyContainer.set($context_receiver_0: Int, index: Int, value: String) {
  when {
    when {
      EQEQ(arg0 = index, arg1 = 0).not() -> true
      else -> EQEQ(arg0 = $context_receiver_0, arg1 = 42).not()
    } -> return Unit
  }
  <this>.<set-s>(<set-?> = value)
}

