proc foo(x: int): int = let z = x * 2 #z visible block: let y = z * 4 #z & y visible let foo = 3 #z and foo visible, y out of scope