anchor.diff:      (loop for (version . object-copy) being the hash-values of (objects transaction)
          using (hash-key object)
          when (not (equalp (transactional-object-version object) version))
  -       do (error "~A is not valid ~A ~A" transaction (object-version object) version))))
  +       do (error "~A is not valid: conflict in ~A (~A <> ~A)"
  +		 transaction
  +		 object
  +		 (object-version object)
  +		 version))))
   
   (defmethod commit-transaction ((transaction transaction))
     (let ((*transaction* nil))
  
positive.code:    (parent :initarg :parent
  	   :reader parent
  	   :initform nil
  	   :documentation "The parent transaction. Think of nested transactions semantics!!")
     (status :initform :new
  	   :accessor status)))
  
  (defmethod commited-p ((transaction transaction))
    (equalp (status transaction) :commited))
  
negative.code: 
  (defgeneric transactional-slots-using-class (object class)
    (declare (optimize speed))
    (:documentation "Return a list of transactional slot-definitions.
     The default calls compute slots with class")
    (:method ((object t) (class transactional-class))
      (remove '%lock (remove 'requires-transaction
  			   (class-slots class) :key (lambda (obj)
  						      (slot-value obj 'sb-pcl::name)))
  	    :key (lambda (obj)
  						      (slot-value obj 'sb-pcl::name)))))
  
  (defmethod transactional-slot-p ((object transactional-object) slot-name)
    (some (lambda (slot)
  