anchor.diff:    (check-type parameter symbol)
     (make-instance 'required-parameter :variable parameter))
   
  +(defmethod unparse ((parameter required-parameter))
  +  (variable parameter))
  +
   (defclass specializable-parameter (required-parameter)
     ((%specializer :initarg :specializer
                    :reader specializer
  -                 :initform nil)))
  +                 :initform t)))
   
   (defun %parse-specializable-parameter (parameter)
     (multiple-value-bind (variable specializer)
         (if (symbolp parameter)
  -          (values parameter nil)
  -          (destructuring-bind (variable &optional specializer)
  +          (values parameter t)
  +          (destructuring-bind (variable &optional (specializer t))
                 parameter
               (values variable specializer)))
       (make-instance 'specializable-parameter
                      :variable variable
                      :specializer specializer)))
   
  +(defmethod unparse ((parameter specializable-parameter))
  +  (let ((variable (variable parameter))
  +        (specializer (specializer parameter)))
  +    (if (eq specializer t)
  +        variable
  +        (list variable specializer))))
  +
   (defclass optional-parameter (parameter parameter-variable-mixin parameter-initform-mixin parameter-suppliedp-variable-mixin)
     ())
   
  
positive.code:     (make-instance 'optional-parameter
                     :variable variable
                     :initform initform)))
  
negative.code:                              (symbol parameter)
                               ((cons symbol null)
                                (car parameter)))))
  
  (defmethod unparse ((parameter optional-no-defaulting-parameter))
    (variable parameter))
  
  (defclass parameter-keyword-name-mixin ()
    ((%keyword-name :initarg :keyword-name
  