CORE: handle proper scoping rules for identifiers (allow vars and fn params to shadow core functions, no var hoisting).
MISC: add spec for closures.