program M; (* example of multilevel iheritance *) var x: integer; unit A: class; var x: integer; begin x := 3; inner; end A; begin pref A block var y: integer, bb: B; unit B: class; begin x := y; writeln(x); inner; end B; begin y := 2; bb := new B; pref A block var y: integer, cc: C; unit C: B class; begin y := x; writeln(y); inner; end C; begin y := 4; cc := new C; end end; writeln(x); end program;