-- track lvals when propagatign types, and ensure we have one when needed.
-- allow passing objects to functions by reference is requested
-- Assign/Decl to accept lvalue for assigning to reference
-- add [] as size-of-array
-- replace [foo::] declaration of array with [] - fix all main() calls
-- ensure all param passing and value return is handled correctly
-- remove all UNTESTED