anchor.diff:            (symbol-package symbol)))
   
   (eval-when (:compile-toplevel :load-toplevel :execute)
  -  (defun %make-decoder-flet (name)
  +  (defun %make-decoder-local-func (channel name next)
       (let* ((component (ensure-component name))
              (args (decoder-args-of component))
              (body (decoder-body-of component)))
         `(,name (,@args)
  -         (declare (ignorable ,@args))
  -         ,@body))))
  +         ,@(unless next
  +             `((declare (ignorable ,@args))))
  +         (flet ((stop-decoding ()
  +                  (return-from ,name))
  +                ,@(when next
  +                    `((decode-next (recipient packet)
  +                        (,next ,channel recipient packet)))))
  +           ,@body
  +           ,@(when next
  +               `((decode-next ,@args))))))))
   
   (eval-when (:compile-toplevel :load-toplevel :execute)
     (defun %make-decoder-call (name loop-var list-of-packets channel recipient packet)
  
positive.code:             :initform nil)))
  (defchannel-decoder channel (ch rc pk)
    (setf (payload-of pk) (unserialize :payload)
          (recipient-of rc) pk)
    (return-packet pk))
  
  (defclass channel-packet ()
  
negative.code:     `(defmethod channel-decoder ((,channel ,channel-type)
                                   (,recipient ,recipient-type)
                                   (,packet ,packet-type))
         (let ((,return-list nil))
           (flet ((return-packet (packet)
                    (check-type packet ,packet-type)
                    (push packet ,return-list)))
             (labels ,(loop :for prev = nil :then name
                            :for name :in (reverse component-names)
                            :collecting (%make-decoder-local-func channel
                                                                  name
                                                                  prev))
               (,(first component-names) ,channel ,recipient ,packet)
               (nreverse ,return-list)))))))
  
  (defclass d1-d2-channel-recipient () ())
  (defclass d1-d2-channel-packet () ())
  (%create-decoder d1-d2-channel (d1 d2 channel))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  