anchor.diff:  - 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)))
  +        (slots (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))))
  -
  -
  +         ,@(mapcar #'tstruct-slot->form slots))
  +
  +       ,@(tstruct-def->functions struct-def slots))))
  +
  +
  
positive.code: 
             
    
  (defun tstruct-def->functions (struct-def slot-objs)
    "Define constructors, copier and accessors functions"
    (declare (type tstruct-def struct-def)
             (type list slot-objs))
  
    (let ((name   (tstruct-def-name   struct-def)))
  
      (setf (tstruct-def-tx-slots struct-def) (remove-if #'stringp slot-objs))
      
      (with-gensym struct-defs-var
        (delete
  
negative.code: 
    (when (consp constructor-name-and-arglist)
      (error "CONSTRUCTOR-ARGLIST option not yet implemented
  in (TRANSACTIONAL-STRUCT (DEFSTRUCT (~A (:CONSTRUCTOR ...))))" (tstruct-def-name struct-def)))
  
    (let ((slots (tstruct-def-all-slots struct-def))
          (constructor-name constructor-name-and-arglist))
  