anchor.diff:  	   ,(if use-values-p
   		;; surely this could be simpler!
   		`(let ((gvalues (next-value "values-")))
  -		   `((let ((,gvalues ,,(if accept-multiple-forms-p 
  +		   `((let ((,gvalues ,,(if accept-multiple-forms-p
   					   `value-form
   					   `(first value-form))))
   		       (declare (ignorable ,gvalues))
  
positive.code: 							`value-form
  							`(first value-form))))
  		       ,@(bind-filter-declarations declarations variable-form)
  		       ,@(bind-macro-helper 
  			  remaining-bindings declarations body)))))
  	 ,@(when multiple-names?
  		 (loop for name in name/s collect
  		      `(defmethod bind-generate-bindings 
  			   ((kind (eql ,name))
  			    variable-form value-form body declarations 
  			    remaining-bindings)
  			 (,main-method-name 
  			  variable-form value-form body declarations 
  			  remaining-bindings))))
  	 #+(or)
  	 ,@(when multiple-names?
  		 (loop for name in name/s collect
  		      `(defmethod bind-generate-bindings 
  			   ((kind (eql ,name))
  			    variable-form value-form body declarations 
  			    remaining-bindings)
  			 (,main-method-name 
  			  variable-form
  			  ,(if accept-multiple-forms-p `value-form `(first value-form))
  			  body declarations 
  			  remaining-bindings))))
  	 ))))
  
  
negative.code:   (let* ((multiple-names? (consp name/s))
  	 (main-method-name nil)
  	 (force-keyword? (or multiple-names?
  			     (eq (symbol-package name/s)
  				 (load-time-value (find-package :keyword)))))
  	 #+(or)
  	 (gignores (gensym "ignores")))
      (cond (multiple-names?
  	   (setf main-method-name (gentemp (symbol-name '#:binding-generator)))
  	   )
  