[x] don't ignore type signatures of declared global / local variables
[x] return local variables
[x] check that only locals can be passed to a function
The above already works, to the extent that you get a "Conflicting definitions for
" error, which I can live with personally.
[x] make local vars reference types instead of value types.
[x] assert that local var is indeed the value stated at the unlocal block.
[ ] fix that you can't declare multiple while-loops.
Some notes about the integration of eval and QQ: