anchor.diff:  
   ;;; Free metadata objects.
   (defvar *store-freelist-metadata-freelist*)
  +(defvar *store-freelist-n-free-metadata*)
  +(defvar *store-freelist-recursive-metadata-allocation*)
  +(defconstant +store-freelist-metadata-soft-limit+ 16)
   
   ;;; Block counts.
   (defvar *store-freelist-n-free-blocks*)
  
positive.code: 
  (defconstant +freelist-metadata-size+ 32)
  
  (defun freelist-alloc-metadata (start end freep)
    (when (not *store-freelist-metadata-freelist*)
      ;; Repopulate freelist.
      ;; This allocation could potentially get exciting.
      ;; PAGER-ALLOCATE-PAGE doesn't call back into the store functions,
      ;; but if it does then this'll have to change.
      (let* ((frame (pager-allocate-page :other))
             (addr (+ +physical-map-base+ (ash frame 12))))
        (dotimes (i (truncate #x1000 +freelist-metadata-size+))
          (setf (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 0) 0
                (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 1) 0
                (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 2) 0
                (sys.int::memref-unsigned-byte-64 (+ addr (* i +freelist-metadata-size+)) 3) 0)
          (setf (freelist-metadata-next (+ addr (* i +freelist-metadata-size+))) *store-freelist-metadata-freelist*
                *store-freelist-metadata-freelist* (+ addr (* i +freelist-metadata-size+))))))
    (let ((new *store-freelist-metadata-freelist*))
      (setf *store-freelist-metadata-freelist* (freelist-metadata-next new))
      (setf (freelist-metadata-start new) start
  
negative.code:           (freelist-metadata-free-p new) freep
            (freelist-metadata-next new) '()
            (freelist-metadata-prev new) '())
      (decf *store-freelist-n-free-metadata*)
      new))
  
  (defun freelist-free-metadata (md)
    (incf *store-freelist-n-free-metadata*)
    (setf (freelist-metadata-next md) *store-freelist-metadata-freelist*
          *store-freelist-metadata-freelist* md))
  
  (defun store-maybe-refill-metadata ()
    (when (and (not *store-freelist-recursive-metadata-allocation*)
               (< *store-freelist-n-free-metadata*
                  +store-freelist-metadata-soft-limit+))
      (store-refill-metadata)))
  
  (defun adjust-freelist-range-start (range new-start)
    (cond ((freelist-metadata-prev range)
  