Closures and Garbage
Note that creating a closure allocates memory and can be a source of garbage and slowness.
If the closure can be allocated on the stack, then do so using dynamic-extent.
(defun add-to-list (num list)
(labels ((adder (x) (+ x num)))
(declare (dynamic-extent #’adder))