anchor.diff:  	  (setq side-effects
   		(remove-variables-from-side-effects
   		 (mapcar #'variable-name (binding-variables binding))
  -		 (max-side-effects side-effects (mvform-side-effects (binding-mvform binding)))))
  +		 (max-side-effects (mvform-side-effects (binding-mvform binding)) side-effects)))
   	  (case (length (binding-variables binding))
   	    (0 (make-let*)
   	       (setq body (cons (mvform-form (binding-mvform binding))
  
positive.code:     (compile-body (list bst-name))
      (package-as-form)))	
  
  (defun compile-bst-function (bst-name function-definition stream)
    (let ((*currently-compiled-function* bst-name)
  	(lisp-name (bst-name-to-lisp-name bst-name :function)))
      (handler-case 
  	(multiple-value-bind (defun-form argument-types
  				 result-types side-effects)
  	    (bst-compile-defun lisp-name function-definition)
  	  #-clisp    ; CLISP does not seem to handle ~< ... ~:> properly
  	  (format stream
  		  "~%~<;; ~@;~:S --> ~:S ~:[~;with side-effects ~]~:[~;~%with assignment to~:*~{ ~S~}~]~:[~;~%with possible assignment to~:*~{ ~S~}~]~:[~;~%with reference to~:*~{ ~S~}~]~:>"
  		  (list argument-types result-types
  			(side-effects-side-effects-p side-effects)
  			(side-effects-unconditionally-assigned-variables side-effects)
  			(set-difference (side-effects-assigned-variables side-effects)
  					(side-effects-unconditionally-assigned-variables side-effects)
  					:test 'equalp)			
  			(side-effects-used-variables side-effects)))
  	  (lisp-write defun-form)
  	  (setf (gethash (string bst-name) *bst-functions*)
  		(make-bst-function :name (string bst-name)
  				   :lisp-name lisp-name
  				   :type 'compiled-wiz-defined
  				   :argument-types argument-types
  				   :result-types result-types
  				   :side-effects side-effects)))
        (bst-compiler-error (condition)
  	(format *error-output*
  		"While compiling wizard-defined function `~S':~%~A~%"
  
negative.code: 	   (side-effects
  	    (apply #'max-side-effects
  		   (make-instance 'side-effects :assigned-variables assigned-variables)
  		   (mapcar #'mvform-side-effects mvforms))))
        (case (length *borrowed-variables*)
  	(0 nil)
  	(1 (push-mvform :form `(setq ,@psetq-args)
  