make range more powerful, support range selection with any call
limit usability of "for each"
introduce the 'let' statement

It allows local definitions within assignments:
  a = { let x = 1; x + 2 }
  a = { let { x = 1; y = 2 }; x + y }