anchor.diff:       (defmethod write-value ((type (eql ',name)) stream value &key)
          (progn ,@(mapcar #'slot->write-value slot)))))
   
  -
   ;;; below are stub method for debug.
   (defmethod read-value ((type (eql 'u2)) stream &key)
     (format t "u2 read value ~%"))
  
positive.code: 
  (defmethod write-value ((type (eql 'ascii)) value stream &key length)
    (format t "ascii write value ~a~%" length))
  
negative.code: ;;  ((major-version :initarg :major-version :accessor major-version)
  ;;   (minor-version :initarg :minor-version :accessor minor-version)
  ;;   (name :initarg :name :accessor name)))
  
  (defmacro with-gensyms ((&rest names) &body body)
    `(let ,(loop for n in names collect `(,n (make-symbol ,(string n))))
       ,@body))
  
  (defun to-keyword (sym)
    (intern (string sym) :keyword))
  