anchor.diff:  (defstruct (world-tile (:include type-variation-tile)))
   (defmethod copy-tile-with-light ((tile world-tile) new-light)
     (make-world-tile :color (world-tile-color tile)
  -                   :light (world-tile-light tile)
  +                   :light new-light
                      :id (world-tile-id tile)
                      :variation (world-tile-variation tile)))
   (defstruct (wall-tile (:include type-variation-tile)))
   (defmethod copy-tile-with-light ((tile wall-tile) new-light)
     (make-wall-tile :color (wall-tile-color tile)
  -                  :light (wall-tile-light tile)
  +                  :light new-light
                     :id (wall-tile-id tile)
                     :variation (wall-tile-variation tile)))
   (defstruct (fluid-tile (:include map-tile)))
   (defstruct (water-tile (:include fluid-tile)))
   (defmethod copy-tile-with-light ((tile water-tile) new-light)
     (make-water-tile :color (water-tile-color tile)
  -                   :light (water-tile-light tile)))
  +                   :light new-light))
   (defstruct (lava-tile (:include fluid-tile)))
   (defmethod copy-tile-with-light ((tile lava-tile) new-light)
     (make-lava-tile :color (lava-tile-color tile)
  -                  :light (lava-tile-light tile)))
  +                  :light new-light))
   (defstruct (honey-tile (:include fluid-tile)))
   (defmethod copy-tile-with-light ((tile honey-tile) new-light)
     (make-honey-tile :color (honey-tile-color tile)
  -                   :light (honey-tile-light tile)))
  +                   :light new-light))
   (defstruct (variation-tile (:include map-tile))
     (variation 0 :type (unsigned-byte 16) :read-only t))
   (defmethod tile-variation ((tile variation-tile))
  
positive.code:   (light 255 :type (unsigned-byte 8) :read-only t))
  (defmethod tile-raw-color ((tile map-tile))
    (map-tile-color tile))
  (defmethod tile-light-level ((this map-tile))
    (map-tile-light tile))
  (defstruct (unknown-tile (:include map-tile
                                     (light 0 :type (unsigned-byte 8) :read-only t))))
  (defmethod copy-tile-with-light ((tile unknown-tile) new-light)
    (make-unknown-tile :color (unknown-tile-color tile)
                       :light (unknown-tile-light tile)))
  (defstruct (type-variation-tile (:include map-tile))
    (id 0 :type (unsigned-byte 16) :read-only t)
    (variation 0 :type (unsigned-byte 8) :read-only t))
  
negative.code: (defstruct (sky-tile (:include variation-tile)))
  (defmethod copy-tile-with-light ((tile sky-tile) new-light)
    (make-sky-tile :color (sky-tile-color tile)
                   :light new-light
                   :variation (sky-tile-variation tile)))
  (defstruct (ground-tile (:include variation-tile)))
  (defmethod copy-tile-with-light ((tile ground-tile) new-light)
    (make-ground-tile :color (ground-tile-color tile)
                      :light new-light
                      :variation (ground-tile-variation tile)))
  