anchor.diff:  
   (defgeneric tick (town)
     (:documentation "Nondestructively returns the next iteration of the simulation.")
  -  (:method ((town hipster-town-snapshot))
  -    (make-instance 'hipster-town-snapshot
  +  (:method ((town town-snapshot))
  +    (make-instance 'town-snapshot
                      :time                (1+ (ticks town))
                      :population          (deconform town)
                      :styles              (styles town)
  
positive.code: 
  (defgeneric print-popularity (town &key stream limit)
    (:documentation "Prints out the first [limit] styles and its percentage popularity, along with a genreation number.")
    (:method ((town hipster-town-snapshot) &key (stream t) limit)
      (with-accessors ((age ticks) (members population) (styles styles)) town
        (format stream "~&~3d:  " age)
        (loop for i across styles
  
negative.code: ;;; When seeing the development of the town, we need to repeat things a lot.
  (defmacro with-town-iterator ((var town &key (times 20) (tick-time :before)) &body body)
    `(let ((,var ,town))
       (assert (typep ,var 'town-snapshot))
       (assert (typep ,tick-time '(member :before :after)))
       (loop repeat ,times
             do (progn
  