anchor.diff:    (let ((add-100 (adder 100))
           (add-500 (adder 500)))
     "add-100 and add-500 now refer to different bindings to x"
  -   (assert-equal ___ (funcall add-100 3))
  -   (assert-equal ___ (funcall add-500 3))))
  +   (assert-equal 103 (funcall add-100 3))
  +   (assert-equal 503 (funcall add-500 3))))
   
   
   ;; ----
  
positive.code: (define-test test-func-with-rest-params
    "With &rest, the remaining params, are handed in as a list.  Remaining
     arguments (possibly none) are collected into a list."
    (assert-equal (func-with-rest-params) ___)
    (assert-equal (func-with-rest-params 1) ___)
     (assert-equal (func-with-rest-params 1 :two 333) ___))
  
  
  ;; ----
  
negative.code: 
  (define-test test-key-params ()
    "Key params allow the user to specify params in any order"
     (assert-equal (func-with-key-params) '(nil nil))
     (assert-equal (func-with-key-params :a 11 :b 22) '(11 22))
     ; it is not necessary to specify all key parameters
     (assert-equal (func-with-key-params :b 22) '(nil 22))
     ; order is not important
     (assert-equal (func-with-key-params :b 22 :a 0) '(0 22)))
  
  (defun func-key-params-can-have-defaults (&key  (a 3 a?) (b 4 b?))
    (list a a? b b?))
  
  (define-test test-key-params-can-have-defaults
      "key parameters can have defaults also"
     (assert-equal (func-key-params-can-have-defaults) '(3 nil 4 nil))
     (assert-equal (func-key-params-can-have-defaults :a 3 :b 4) '(3 t 4 t))
     (assert-equal (func-key-params-can-have-defaults :a 11 :b 22) '(11 t 22 t))
     (assert-equal (func-key-params-can-have-defaults :b 22) '(3 nil 22 t))
     ; order is not important
     (assert-equal (func-key-params-can-have-defaults :b 22 :a 0) '(0 t 22 t)))
  
  
  ;; ----
  