let, var, def became layer-neutral definition (not @val).
scope splitting (let x=1;let x=2;let y=(let x=3);x  is  1) is correctly implemented now.