1. Does (let ...) make a copy, or just assign another pointer? 2. How *do* we make copies efficiently?