anchor.diff:  	 (destructuring-bind ,options-ll (decode-options ,type)
   	   (declare (ignorable ,@(get-all-params options-ll)))
   	   ,form)))))
  +
  +(defun make-expansion-lambda (params-ll options-ll)
  +  (let ((params-form (recreate-lambda-list params-ll))
  +	(options-form (recreate-lambda-list options-ll))
  +	(parameters (gensym))
  +	(options (gensym)))
  +    `(lambda (typespec)
  +       (with-presentation-type-decoded (name ,parameters ,options)
  +	 typespec
  +	 (make-type-spec name
  +			 (destructuring-bind ,params-ll
  +			     ,parameters
  +			   ,params-form)
  +			 (destructuring-bind ,options-ll
  +			     ,options
  +			   ,options-form))))))
   
   (defvar *presentation-type-table* (make-hash-table :test #'eq))
   
  
positive.code: 	(parse-method-body args)
        `(defmethod ,(generic-function-name gf) ,@qualifiers (,(type-key-arg gf)
  							    ,@lambda-list)
  	 ,@body))))
  
  (defun %funcall-presentation-generic-function (name gf type-arg-position
  					       &rest args)
    (let* ((type-spec (nth (1- type-arg-position) args))
  	 (ptype-name (presentation-type-name type-spec))
  	 (ptype-meta (get-ptype-metaclass ptype-name)))
  
negative.code: 	 (options-ll (transform-options-lambda-list options))
  	 (inherit-from-func (make-inherit-from-lambda params-ll
  						      options-ll
  						      inherit-from)))
      `(progn
         (eval-when (:compile-toplevel)
  	 (record-presentation-type ',name ',parameters ',params-ll ',options
  				   ',options-ll #',inherit-from-func
  				   ',description ',history
  				   ',parameters-are-types
  				   t nil nil))
         (eval-when (:load-toplevel :execute)
  	 (%define-presentation-type ,name ,parameters ,params-ll
  				    ,options ,options-ll
  