class A<T>(var t: T) {}
class B<R>(val r: R) {}

fun box() : String {
    val ai = A<Int>(1)
    val aai = A<A<Int>>(ai)
    if(aai.t.t != 1)  return "fail"
/*
    aai.t.t = 2
    if(aai.t.t != 2)  return "fail"

    if(ai.t != 2)  return "fail"
    if(aai.t != ai)  return "fail"
    if(aai.t !== ai) return "fail"

    val abi = A<B<Int>>(B<Int>(1))
    if(abi.t.r != 1) return "fail"
*/
    return "OK"
}
