anchor.diff:  
   (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)
  +  (:method ((town town-snapshot) &key (stream t) limit)
       (with-accessors ((age ticks) (members population) (styles styles)) town
         (format stream "~&~3d:  " age)
         (loop for i across styles
  
positive.code:                
  (defun build-new-town (population &key (hipsterish-tendency 2/3) (styles #(#\# #\.)))
    "Builds a new town with a population of population, seeding with the two types of clothes."
    (make-instance 'hipster-town-snapshot
                   :population (generate-random-town population styles)
                   :styles styles
                   :hipsterish-tendency hipsterish-tendency))
  
  (defun build-delayed-town (population period &key (hipsterish-tendency 2/3) (styles #(#\# #\.)))
    (make-instance 'hipster-town-delay
                   :population (generate-random-town population styles)
                   :period period
                   :history (make-array (list period))
                   :hipsterish-tendency hipsterish-tendency
                   :styles styles))
  
  (defmethod initialize-instance :after ((instance hipster-town-delay) &key)
    (setf (aref (town-history instance) (mod (ticks instance) (period instance))) (population instance)))
  
  ;;; Common class methods
  
  (defmethod print-object ((object hipster-town-snapshot) stream)
    (with-accessors ((ticks ticks) (population population) (tendency hipsterish-tendency) (styles styles)) object
      (print-unreadable-object (object stream :type t)
        (format stream "~a ~4,2f%-hipsters with styles ~a @ t = ~a" (length population) (* tendency 100) (coerce styles 'list) ticks))))
  
  (defmethod print-object ((object hipster-town-delay) stream)
    (with-accessors ((ticks ticks) (population population) (tendency hipsterish-tendency) (styles styles) (period period)) object
      (print-unreadable-object (object stream :type t)
        (format stream  "~a ~4,2f%-hipsters with styles ~a, period ~a @ t = ~a" (length population) (* tendency 100) (coerce styles 'list) period ticks))))
  
negative.code: 
  (defgeneric tick (town)
    (:documentation "Nondestructively returns the next iteration of the simulation.")
    (:method ((town town-snapshot))
      (make-instance 'town-snapshot
                     :time                (1+ (ticks town))
                     :population          (deconform town)
                     :styles              (styles town)
  