can you outline a sketch? closures by themselves do not guarantee the absence of side effects ie:
(let ((state 'someobject))
(defun phase1 ()
(done1 state))
(defun phase2 ()
(done2 state)
.
.
.and so on