So there is lexical scope, but it requires "do" which means an extra function, something that wasn't required in JS. You don't get lexical scope "for free" in CoffeeScript, there's overhead, unlike in JS. Is that right?
https://github.com/jashkenas/coffee-script/issues/2552
Scheme interpreters have been optimizing away the cost for most cases since the 1970s.