[[ (def ch x:^Int = x!0 ch)!(new y:^Int y) ]] = (def c1 x1:^^Int = (def c2 x2:^Int = x1!x2 [[ (new y:^Int y) ? c2]]) [[(def ch x:^Int = x!0 ch) ? c1]]) = (def c1 x1:^^Int = (def c2 x2:^Int = x1!x2 (new y:^Int [[y ? c2]]) ) (def ch [[ x:^Int = x!0 ]] [[ch ? c1]]) ) = (per semplicita' traduciamo direttamente [[ x:^Int = x!0 ]] in x:^Int = x!0 ) (def c1 x1:^^Int = (def c2 x2:^Int = x1!x2 (new y:^Int c2!y) ) (def ch x:^Int = x!0 c1!ch) )