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:   (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)))
  	   )
  
negative.code: 			       `(funcall (lambda (variables values) ,@body)
  					 variable-form gvalues))
  					;		 ,@(when ,gignores `((declare (ignore ,@gignores))))
  			   ,@(bind-filter-declarations
  			      declarations variable-form)
  			   ,@(bind-macro-helper
  			      remaining-bindings declarations body)))))
  		``((,@,(if (symbolp (first body))
  			   `(,(first body) variable-form ,(if accept-multiple-forms-p
  