program T { property P { x: int = 0, y: int = 7, next: P } function bump(p: P) -> void { p.x = p.x + 100 } entry { let a = new P print(a.y) # 7 default a.x = 5 let b = a b.x = 9 print(a.x) # 9 (reference) bump(a) print(a.x) # 109 let c = new P c.x = 2 a.next = c print(a.next.x) # 2 chained a.next.x = 42 print(c.x) # 42 } }