class A(var t: T) {} class B(val r: R) {} fun box() : String { val ai = A(1) val aai = A>(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(1)) if(abi.t.r != 1) return "fail" */ return "OK" }