anchor.diff:  Works ONLY inside transactions"
     (declare (type simple-tvector tvec)
              (type fixnum index))
  -  ($-tx (svref (simple-tvector-vec tvec) index)))
  +  ($-tx (svref tvec index)))
   
   (defun (setf tsvref-tx) (value tvec index)
     "Set the INDEX-th element of simple-tvector TVEC to VALUE.
   Works ONLY inside transactions"
     (declare (type simple-tvector tvec)
              (type fixnum index))
  -  (setf ($-tx (svref (simple-tvector-vec tvec) index)) value))
  +  (setf ($-tx (svref tvec index)) value))
   
   
   (defun tsvref-notx (tvec index)
  
positive.code: Works both inside and outside transactions"
    (declare (type simple-tvector tvec)
             (type fixnum index))
    ($ (svref (simple-tvector-vec tvec) index)))
  
  (defun (setf tsvref) (value tvec index)
    "Set the INDEX-th element of simple-tvector TVEC to VALUE.
  Works both inside and outside transactions"
    (declare (type simple-tvector tvec)
             (type fixnum index))
    (setf ($ (svref (simple-tvector-vec tvec) index)) value))
  
  
  (defun tsvref-tx (tvec index)
  
negative.code:   (declare (type fixnum length)
             (type list initial-contents)
             (ignore element-type))
    (let1 tvec (make-array length :element-type 'tvar :initial-element +dummy-tvar+)
      (if initial-contents
          (loop for i from 0 to (1- length)
             for cell = initial-contents then (rest cell)
             for element = (first cell) do
               (setf (svref tvec i) (tvar element)))
          (dotimes (i length)
            (setf (svref tvec i) (tvar initial-element))))
      tvec))
  
  (declaim (inline simple-tvector-length))
  (defun simple-tvector-length (tvec)
    "Return the length of simple-tvector TVEC."
    (declare (type simple-tvector tvec))
    (length tvec))
  
  
  (declaim (inline tsvref (setf tsvref) tsvref-x (setf tsvref-tx) tsvref-notx (setf tsvref-notx)))
  