anchor.diff:  
   (define-test test-optional-parameters
       "Optional parameters are filled in with their default value."
  -   (assert-equal (func-with-opt-params :test-1 :test-2) ___)
  -   (assert-equal (func-with-opt-params :test-1) ___)
  -   (assert-equal (func-with-opt-params) ___))
  +   (assert-equal (func-with-opt-params :test-1 :test-2) '(:test-1 :test-2))
  +   (assert-equal (func-with-opt-params :test-1) '(:test-1 3))
  +   (assert-equal (func-with-opt-params) '(2 3)))
   
   
   ;; ----
  
positive.code:     (setq f2 '-)
      (setq f3 'max)
  
      (assert-equal ___ (apply f1 '(1 2)))
      (assert-equal ___ (apply f2 '(1 2)))
  
      ; after the function name, the parameters are consed onto the front
      ; of the very last parameter
      (assert-equal ___ (apply f1 1 2 '(3)))
      (assert-equal ___ (apply f3 1 2 3 4 '()))))
  
  
  (define-test test-apply-function-with-funcall
  
negative.code: 
  (define-test test-many-kinds-params
      "CL provides the programmer with more than enough rope to hang himself."
     (assert-equal (func-with-funky-parameters 1) '(1 nil 1 nil))
     (assert-equal (func-with-funky-parameters 1 :b 2) '(1 2 1 (:b 2)))
     (assert-equal (func-with-funky-parameters 1 :b 2 :c 3) '(1 2 3 (:b 2 :c 3)))
     (assert-equal (func-with-funky-parameters 1 :c 3 :b 2) '(1 2 3 (:c 3 :b 2))))
  
  
  ;; Note that &rest parameters have to come before &key parameters.
  