anchor.diff:           (format s "  Backtrace:~%~A" backtrace))))))
   
   (defun preserve-shell-environment (&key label backtrace-p)
  +  "Capture the current shell environment and return an object
  +representing all of its state.
  +
  +The returned object must be destroyed explicitly with
  +`destroy-preserved-shell-environment'.  Aside from destruction, you
  +can also re-hydrate the shell environment using
  +`with-restored-shell-environment'.
  +
  +The shell environment usually consists of things like file descriptor
  +bindings, shell variable bindings, and things of that like.  If you
  +want to include state in the shell environment, use
  +`extend-shell-environment'."
     (let* ((table (make-hash-table))
            (backtrace (when backtrace-p
                         (with-output-to-string (s)
  
positive.code: (defparameter *shell-environment-handlers* (make-hash-table))
  
  (defun extend-shell-environment (name pickler unpickler reclaimer)
    (setf (gethash name *shell-environment-handlers*)
          (make-entry :pickle pickler :unpickle unpickler :reclaim reclaimer)))
  
  
negative.code:       result)))
  
  (defun destroy-preserved-shell-environment (shell-environment)
    "Reclaim all the resources associated with the given preserved shell environment.
  
  It is safe to destroy a preserved shell environment multiple times.
  
  See `preserve-shell-environment'."
    (%destroy-preserved-shell-environment (preserved-environment-data shell-environment))
    (trivial-garbage:cancel-finalization shell-environment))
  
  