anchor.diff:  printed if the test fails."
     (with-gensyms (result)
       (assertion-expander :result            result
  -                        :test              `(equalp (multiple-value-list ,value)
  -                                                    ,result)
  +                        :test              `(gen-test-form #'equalp
  +                                                           (multiple-value-list ,value)
  +                                                           ,result)
                           :result-expression `(multiple-value-list ,expression)
                           :report-expression `(equalp ,value ,expression)
                           :expected          value
  
positive.code: "
    (with-gensyms (result)
      (assertion-expander :result            result
                          :test              `(equal ,value ,result)
                          :result-expression expression
                          :report-expression `(equal ,value ,expression)
                          :expected          value
                          :forms             forms)))
  
negative.code:                         :forms             forms)))
  
  ;; Equality assertion macros.
  
  (defmacro gen-test-form (predicate values results)
    (let ((res (gensym)))
      `(progn
         (assert (listp ,values))
         (assert (listp ,results))
         (assert (functionp ,predicate))
         (and (= (length ,values)
                 (length ,results))
              (let ((,res t))
                (loop named inner
                      for value  in ,values
                      for result in ,results do
                        (when (not (funcall ,predicate value result))
                          (setf ,res nil)
                          (return-from inner nil)))
                ,res)))))
  
  (defmacro assert-eq (value expression &body forms)
    "Evaluates EXPRESSION  as an assertion,  an assertion passes  if (EQ
  VALUE EXPRESSION) values non nil. FORMS  and their values are printed if
  the test fails."
    (with-gensyms (result)
      (assertion-expander :result            result
                          :test              `(gen-test-form #'eq
                                                             (multiple-value-list ,value)
                                                             ,result)
                          :result-expression `(multiple-value-list ,expression)
                          :report-expression `(eq ,value ,expression)
                          :expected          value
                          :forms             forms)))
  