anchor.diff:  
   ;;; Class constructors
   
  -(defun generate-random-town (population styles volatile)
  +(defun generate-random-town (population styles volatile hipsterish-tendency)
     "Generates a random town of n people with the given vector of styles."
     (let ((out (make-array (list population) :adjustable volatile)))
       (dotimes (i population)
  -      (setf (aref out i) (make-instance 'inhabitant :style (aref styles (random (length styles))))))
  +      (setf (aref out i)
  +            (make-instance 'inhabitant
  +                           :style (aref styles (random (length styles)))
  +                           :hipsterish-tendency hipsterish-tendency)))
       out))
   
   (defun make-town (population &key (hipsterish-tendency 2/3) (styles #(#\# #\.)) volatile)
  
positive.code:   (when (numberp styles)
      (setf styles (subseq *style-character-list* 0 styles)))
    (make-instance 'foggy-town
                   :population (generate-random-town population styles volatile)
                   :visibility visibility
                   :hipsterish-tendency hipsterish-tendency
                   :styles styles))
  
  ;;; Common class methods
  
  (defmethod print-object ((object town-snapshot) stream)
    (with-accessors ((ticks ticks) (population population) (tendency hipsterish-tendency) (styles styles)) object
      (print-unreadable-object (object stream :type t)
        (format stream ":~:[~;VOLATILE-~]POPULATION ~a :TENDENCY ~4,2f% :STYLES ~a @ t = ~a"
                (adjustable-array-p population) (length population) (* tendency 100) (length styles) ticks))))
  
  (defmethod print-object ((object delayed-town) stream)
    (with-accessors ((ticks ticks) (population population) (tendency hipsterish-tendency) (styles styles) (period period)) object
      (print-unreadable-object (object stream :type t)
        (format stream ":~:[~;VOLATILE-~]POPULATION ~a :TENDENCY ~4,2f% :STYLES ~a :DELAY ~a @ t = ~a"
                (adjustable-array-p population) (length population) (* tendency 100) (length styles) period ticks))))
  
  (defmethod print-object ((object foggy-town) stream)
    (with-accessors ((ticks ticks) (population population) (tendency hipsterish-tendency) (styles styles) (visibility visibility)) object
      (print-unreadable-object (object stream :type t)
        (format stream ":~:[~;VOLATILE-~]POPULATION ~a :TENDENCY ~4,2f% :STYLES ~a :VISIBILITY ~a @ t = ~a"
                (adjustable-array-p population) (length population) (* tendency 100) (length styles) visibility ticks))))
  
  (defmethod print-object ((object inhabitant) stream)
    (with-accessors ((type inhabitant-type) (tendency hipsterish-tendency) (styles styles)) object
  
negative.code:   (:method ((town town-snapshot))
      (make-instance
       'town-snapshot
       :styles              (copy-seq (styles town))
       :population          (map 'vector #'copy (population town))
       :time                (ticks town)))
    (:method ((town delayed-town))
      (make-instance
       'delayed-town
       :styles              (copy-seq (styles town))
       :population          (map 'vector #'copy (population town))
       :time                (ticks town)
  