anchor.diff:  	       (t nil)))))
   
   (defmacro define-presentation-type (name parameters
  -                                         &key options inherit-from
  -                                         description (history t)
  -                                         parameters-are-types)
  +				    &key options inherit-from
  +				    (description
  +				     (make-default-description name))
  +				    (history t)
  +				    parameters-are-types)
     (let* ((params-ll (transform-parameters-lambda-list parameters))
   	 (options-ll (transform-options-lambda-list options))
   	 (inherit-from-func (make-inherit-from-lambda params-ll
  
positive.code: 	 (%define-presentation-type ,name ,parameters ,params-ll
  				    ,options ,options-ll
  				    ,inherit-from ,inherit-from-func
  				    ',description ',history
  				    ',parameters-are-types)))))
  
  
  (defun presentation-type-parameters (type-name &optional env)
  
negative.code: 
  (defun transform-options-lambda-list (ll)
    "Return a legal lambda list given an options specification"
    (let ((descriptionp nil))
      (loop for spec in ll
  	  collect (if (atom spec)
  		      (progn
  			(when (eq (make-keyword spec) :description)
  			  (setq descriptionp t))
  			spec)
  		      (progn
  			(let ((key (if (atom (car spec))
  				       (make-keyword (car spec))
  				       (caar spec))))
  			  (when (eq key :description)
  			    (setq descriptionp t)))
  			(ldiff spec (cdddr spec))))
  	  into specs
  	  finally (return `(&key
  			    ,@specs
  			    ,@(unless descriptionp
  			        `(((:description ,(gensym))))))))))
  
  
  ;;; External function
  (defun presentation-type-name (type)
  