anchor.diff:  	
   	;; make sure that each element is a list and that
   	;; the last element is a string
  -	(mapcar #'(lambda (e)
  -		    (check-type e list)
  -		    (assert (> (length e) 1) (e) "You *must* supply a documentation string")
  -		    (check-type (car (last e)) string))
  -		(append ordinary-args optional-args rest-args special-args))
  +	(when error-on-missing-doc
  +	  (mapcar #'(lambda (e)
  +		      (check-type e list)
  +		      (assert (> (length e) 1) (e) "You *must* supply a documentation string")
  +		      (check-type (car (last e)) string))
  +		  (append ordinary-args optional-args rest-args special-args)))
  +	;; ensure formatted even if missing docs, but warn
  +	(flet ((fix-broken-arg (arg)
  +		 (let ((a (alexandria:ensure-list arg)))
  +		   (when (not (listp arg))
  +		     (warn "non-list element in documented-lamba list, ensuring list: ~S -> ~S" arg a))
  +		   (when (< (length a) 2)
  +		     (setf a (append a (list "")))
  +		     (warn "doc-less element in documented-lambda list, adding empty doc string: ~S -> ~S" arg a))
  +		   (when (not (stringp (car (last a))))
  +		     (let ((b a))
  +		       (setf a (append a (list "")))
  +		       (warn "final element of documented-lambda list argumet not a doc string, adding empty doc string: ~S -> ~S" b a)))
  +		   a)))
  +	  (setf 
  +	   ordinary-args (mapcar #'fix-broken-arg ordinary-args)
  +	   optional-args (mapcar #'fix-broken-arg optional-args)
  +	   rest-args (mapcar #'fix-broken-arg rest-args)
  +	   special-args (mapcar #'fix-broken-arg special-args)))
  +	
   	
   	(list :positional (append ordinary-args optional-args)
   	      :named special-args
  
positive.code: ;;;; Given a documented lambda list, returns a list of how one should
  ;;;; forward the arguments of the lambda list
  (eval-when (:compile-toplevel :load-toplevel :execute)
    (defun %extract-arguments-from-documented-lambda-list (doc-lambda-list)
      (alexandria:flatten 
       (mapcar #'(lambda (norm-arg)
  		 (getf norm-arg :var-forward))
  	     (%normalize-parsed-documented-lambda-list
  	      (%parse-documented-lambda-list 
  	       doc-lambda-list))))))
  
  
  ;;;;
  ;;;; Given a documetned lambda list, returns a plain lambda list for it
  (eval-when (:compile-toplevel :load-toplevel :execute)
    (defun %documented-lambda-list-to-lambda-list (doc-lambda-list)
      (let* ((norm-args
  	     (%normalize-parsed-documented-lambda-list
  	      (%parse-documented-lambda-list 
  	       doc-lambda-list)))
  	   (positional 
  	     (alexandria:mappend 
  	      #'(lambda (norm-arg)
  
negative.code: ;;;; aux-param-specs = ( bind-name keyword given-p lambda-spec doc-string)
  ;;;; rest-param-specs = ( name doc-string ) | nil
  (eval-when (:compile-toplevel :load-toplevel :execute)
    (defun %parse-documented-lambda-list (lambda-list &key (error-on-missing-doc t))
      
      ;; find the locations of each of the lambda keywords
      ;; and grab the ordinary, special (key and aux) and rest args
  