anchor.diff:  (defun extract-object (value)
     (let ((address (pointer-part value)))
       (ecase (tag-part value)
  +      ;; FIXME: Negative numbers...
  +      ((#.+tag-even-fixnum+
  +        #.+tag-odd-fixnum+)
  +       (ash value -3))
  +      (#.+tag-cons+
  +       (cons (extract-object (word address))
  +             (extract-object (word (1+ address)))))
         (#.+tag-symbol+
          (let ((name (extract-object (word address)))
                (package (word (+ address 1))))
  
positive.code:        (let* ((fn-value (load-object stream omap))
                (base-name (load-object stream omap))
                (name (resolve-function-name base-name)))
           (format t "Setting (fdefinition ~X) to ~X~%" name fn-value)
           (setf (word (+ (pointer-part name) 3)) fn-value)))
        (#.+llf-unbound+ (error "Should not seen UNBOUND here."))
        (t (let ((id (hash-table-count omap)))
  
negative.code:           (setf (word (+ obarray 1 i)) (make-value address +tag-symbol+)))
      (setf (cold-symbol-value target-symbol) (make-value obarray +tag-array-like+))))
  
  (defun generate-struct-obarray (symtab target-symbol)
    (let ((obarray (allocate (1+ (hash-table-count symtab)))))
      (setf (word obarray) (array-header +array-type-t+ (hash-table-count symtab)))
      (iter (for (nil address) in-hashtable symtab)
            (for i from 0)
            (setf (word (+ obarray 1 i)) (make-value (first address) +tag-array-like+)))
      (setf (cold-symbol-value target-symbol) (make-value obarray +tag-array-like+))))
  
  (defun write-map-file (image-name map)
    (with-open-file (s (format nil "~A.map" image-name)
                       :direction :output
  