anchor.diff:    (when (zerop (ticks instance))
       (setf (aref (town-history instance) (mod (ticks instance) (period instance))) (population instance))))
   
  +(defun make-foggy-town (population visibility &key (hipsterish-tendency 2/3) (styles #(#\# #\.)))
  +  (make-instance 'foggy-town
  +                 :population (generate-random-town population styles)
  +                 :visibility visibility
  +                 :hipsterish-tendency hipsterish-tendency
  +                 :styles styles))
  +
   ;;; Common class methods
   
   (defmethod print-object ((object town-snapshot) stream)
  
positive.code:   (with-accessors ((ticks ticks) (population population) (tendency hipsterish-tendency) (styles styles) (period period)) object
      (print-unreadable-object (object stream :type t)
        (format stream ":POPULATION ~a :TENDENCY ~4,2f% :STYLES ~a :DELAY ~a @ t = ~a" (length population) (* tendency 100) (length styles) period ticks))))
  
  (defgeneric copy-town (town)
    (:documentation "Returns a deep copy of a given town. Useful for when you need to keep the initiator town around.")
  
negative.code:            :documentation "How long before the individuals know the clothing choice of their peers, measured in ticks.")
     (history :initarg :history
              :accessor town-history
              :documentation "The last iterations of the simulation, for use in computing certain future iterations."))
    (:documentation "A town with a temporal delay. Inhabitants are only able to see their popularities from some time ago."))
  
  (defclass foggy-town (town-snapshot)
    ((visibility :initform 4
                 :initarg :visibility
                 :accessor visibility
                 :documentation "How many other other inhabitants that each inhabitant can see."))
    (:documentation "A town with a spatial delay. Inhabitants are only able to see their popularities with reference to a subset of the population."))
  
  ;; Structs are easy but they still need a bit of tweaking.
  (defmethod hipsterish-tendency ((object inhabitant)) (inhabitant-hipsterish-tendency object))
  (defmethod styles ((object inhabitant)) (inhabitant-style object))
  
  ;;; Class constructors
  
  