anchor.diff:  		    `#',(make-translator-fun (car tester)
   					     (cdr tester)))
          :tester-definitive ',tester-definitive
  -       :documentation #',(make-documentation-fun from-type
  -						 documentation)
  +       :documentation #',(make-documentation-fun documentation)
          ,@(when pointer-documentation-p
   	       `(:pointer-documentation
  -		 #',(make-documentation-fun from-type
  -					    pointer-documentation)))
  +		 #',(make-documentation-fun pointer-documentation)))
          :menu ',menu
          :priority ,priority
          :translator-function #',(make-translator-fun arglist
  
positive.code: 		    `',tester
  		    `#',(make-translator-fun (car tester)
  					     (cdr tester)))
         :documentation #',(make-documentation-fun from-type
  						 documentation)
         ,@(when pointer-documentation-p
  	       `(:pointer-documentation
  		 #',(make-documentation-fun from-type
  					    pointer-documentation)))
         :menu ',menu
         :priority ,priority
         :translator-function #',(make-translator-fun arglist
  
negative.code:        ,@(and ignore (list ignore))
         ,@body)))
  
  (defun make-documentation-fun (doc-arg)
    (cond ((and doc-arg (symbolp doc-arg))
  	 doc-arg)
  	((consp doc-arg)
  	 (make-translator-fun (car doc-arg) (cdr doc-arg)))
  	((stringp doc-arg)
  	 `(lambda (object &key stream &allow-other-keys)
  	    (declare (ignore object))
  	    (write-string ,doc-arg stream)))
  	((null doc-arg)
  	 `(lambda (object &key presentation stream &allow-other-keys)
  	    (present object (presentation-type presentation)
  		     :stream stream :sensitive nil)))
  	(t (error "Can't handle doc-arg ~S" doc-arg))))
  
  (defmacro define-presentation-translator
  