anchor.diff:  	(setf (fdefinition name) #'dispatch-message)
   	buzzword)))
   
  -(defmacro defmessage (name lambda-list &body body)
  -  `(ensure-message
  -    :name ',name
  -    :lambda-list (extract-lambda-list ',lambda-list)
  -    :participants (extract-participants ',lambda-list)
  -    :body (block ,name ',body)))
  -
   (defun extract-lambda-list (lambda-list)
     (mapcar #'extract-var-name lambda-list))
   (defun extract-var-name (item)
  
positive.code: 
  ) ; end buzzword-table closure
  
  (defmacro defbuzzword (name &optional (docstring ""))
    `(ensure-buzzword
      :name ',name
      :documentation ,docstring))
  
  (defun ensure-buzzword (&key name documentation)
    (if (find-buzzword name nil)
  
negative.code:     :accessor message-pointer)))
  
  ;;;
  ;;; Buzzword/message definition
  ;;;
  
  ;;; Macros
  (defmacro defbuzzword (name &optional (docstring ""))
    `(ensure-buzzword
      :name ',name
      :documentation ,docstring))
  
  (defmacro defmessage (name lambda-list &body body)
    `(ensure-message
      :name ',name
      :lambda-list (extract-lambda-list ',lambda-list)
      :participants (extract-participants ',lambda-list)
      :body '(block ,name ,@body)))
  
  ;;; Buzzword table
  (let ((buzzword-table (make-hash-table :test #'equal)))
  
    (defun find-buzzword (name &optional (errorp t))
  