class C1 { region r1, r3; int x in r1; C2 c2 in r3; C2 m1() writes Root : r1, Root : r3 { x = 1; c2 = new C2(); return c2; } } class C2 { region r2; int y in r2; void m2() writes Root : r2 { y = 2; } } class C3 { void m3() writes Root : C1.r1, Root : C2.r2, Root : C1.r3 { C1 c1 = new C1(); c1.m1().m2(); } }