(* pour debugger set arguments -v test/good/t8.ept *) type t1 = {x: int; y: int} type t2 = {z: t1; u: int} node g(x: t1) returns (o: t1) let o = x tel node h(x: t1) returns (o: t1) let o = g(x) tel node f(x: t1; z1:t2) returns (o:t2) var last z: t1; m: t2; r: int; let o = z1; m = { z = { y = 2; x = 1 }; u = 3 }; z = { x = 4; y = 2 }; r = (m.z).x; tel node main() returns (o1:t1;o2:t2) let o1 = h({ x = 1; y = 2 }); o2 = f(o1, { z = o1; u = 3 }); tel