anchor.diff:              (collect (1+ ranksize))))))
   
       (defun spread-rank (number)
  -      (let* ((space (if (< (lisp *opin-box-width*)
  +      (let* ((space (if (< (lisp *opin-box-height*)
                              (* number (lisp *preferred-space*)))
                           (lisp *preferred-space*)
                           (lisp *minimum-space*)))
  
positive.code: (in-package :wf/web)
  
  (defparameter *preferred-space* 1.5)
  (defparameter *minimum-space* 1)
  (defparameter *unit-string* "em")
  (defparameter *opin-box-height* 20)
  (defparameter *opin-box-width* 10)
  (defparameter *placement-randomness* 0.45)
  (defparameter *rank-overlap* 2)
  (defparameter *sway-factor* (- 4))
  
  
negative.code:           (dolist (ranklen (distribute-ranks-evenly item-count))
              (dolist (itempos (spread-rank ranklen))
                (collect
                    ;;(list (+ (funcall xpos itempos)
                    ;;         (* rankcount (lisp *rank-overlap*)))
                    ;;      itempos)))
                    (random-wiggle (+ (funcall xpos itempos)
                                    (* rankcount (lisp *rank-overlap*)))
                                   itempos)))
              (incf rankcount)))))
  
  