anchor.diff:  (defmacro pick-weighted (&body choices)
     "Given CHOICES with constant weights, pick a random one at runtime."
     (let ((total (loop for (weight . body) in choices
  -		     sum weight))
  -	(var (gensym))
  -	(accum 0))
  +                     sum weight))
  +        (var (gensym))
  +        (accum 0))
       `(let ((,var (random ,total)))
          (cond ,@(loop for (weight . body) in choices
  -		     collect `((< ,var ,(incf accum weight)) ,@body))
  -	     (t (error "Bug"))))))
  +                     collect `((< ,var ,(incf accum weight)) ,@body))
  +             (t (error "Bug"))))))
   
   ; Reporting results
   
  
positive.code: (defun hash-table-values (table)
    "Return a list of TABLE's values in arbitrary order."
    (let ((results '()))
      (maphash (lambda (key value) 
  	       (declare (ignore key))
  	       (push value results)) 
  	     table)
      results))
  
  (defun run-trial (test-fn vars generators)
    "Run one trial of a FOR-ALL test."
    (let* ((values (mapcar #'generate generators))
  	 (bindings (mapcar #'list vars values)))
      (let-dfv ((*logger* (test)
  	        (call-next-function
  		 (update-bindings test 
  				  (append (test-bindings test) bindings)))))
        (apply test-fn values))))
  
  (defun generate (generator)
  
negative.code: ; A (general) test is either a test case or a list of general tests.
  ; TODO: be consistent about naming tests vs. cases in the code.
  
  (defstruct test
    name      ; What test was run.
    flopped   ; NIL if passed, 'SKIPPED if skipped, T if false assertion,
              ; or a condition if an error occurred.
    detail    ; Function of no args to write more info to stdout.
    bindings) ; A-list of variables and values from FOR-ALL.
  
  