anchor.diff:  
              
     
  -(defun tstruct-def->functions (struct-def slot-objs)
  +(defun tstruct-def->functions (struct-def slots)
     "Define constructors, copier and accessors functions"
     (declare (type tstruct-def struct-def)
  -           (type list slot-objs))
  +           (type list slots))
   
     (let ((name   (tstruct-def-name   struct-def)))
   
  -    (setf (tstruct-def-tx-slots struct-def) (remove-if #'stringp slot-objs))
  +    (setf (tstruct-def-tx-slots struct-def) (remove-if #'stringp slots))
       
       (with-gensym struct-defs-var
         (delete
  
positive.code: - by default, direct slots are transactional memory (implemented by TVARs)"
  
    (let ((struct-def (parse-tstruct-def name-and-options))
          (slot-objs (parse-tstruct-slots slot-descriptions)))
  
      `(progn
         (,defstruct ,(tstruct-def->form struct-def)
           ,@(loop for slot-obj in slot-objs
                collect (tstruct-slot->form slot-obj)))
  
         ,@(tstruct-def->functions struct-def slot-objs))))
  
  
  
negative.code:   (other-options  nil :type list))
                    
  
  (defun tstruct-slot->form (slot)
    (declare (type (or string tstruct-slot) slot))
  
    (if (stringp slot)
        slot
       
        (let ((name           (tstruct-slot-name slot))
              (initform       (tstruct-slot-initform      slot))
              (transactional? (tstruct-slot-transactional slot)))
          `(,name
              ,(if transactional? `(tvar ,initform) initform)
              :type ,(if transactional? 'tvar (tstruct-slot-type slot))
              :read-only ,(tstruct-slot-read-only slot)
              ,@(tstruct-slot-other-options slot)))))
       
  
  (defun tstruct-slot-accessor (slot struct-def)
  