1    private@
2    
3    type A =
4        var u : i32 = 0
5        var from : i32 = 0
6        var to : i32 = 0
7    
8        observe@ u { prev_x x ->
9            assert u == x
10           from = prev_x
11           to = x }
12   
13   do
14       let a = A.new
15       a.u = 7
16       assert a.from == 0 && a.to == 7
17   
18       a.u = 8
19       assert a.from == 7 && a.to == 8
20