Macro Rebinding
(
rebinding (&rest vars) &body < body > )
Similar to ONCE-ONLY. Typical usage:
(defmacro square (x)
(rebinding (x)
`(* ,x ,x)))
The magic is that the X inside the backquote is actaully a gensym bound to the
value of the form the caller gave us.