anchor.diff:      (nibbles:write-ub32/be size stream)
       (nibbles:write-ub32/be index stream)))
   
  -(defstruct log-message 
  +(defconstant +msg-magic+ #x3D5B612E)
  +
  +(defstruct log-message
  +  magic
     id
     lvl
     time
     msg)
   
   (defun read-log-message (stream)
  -  (let ((id (nibbles:read-ub32/be stream))
  +  (let ((magic (nibbles:read-ub32/be stream))
  +	(id (nibbles:read-ub32/be stream))
   	(lvl (nibbles:read-ub32/be stream))
   	(time (nibbles:read-ub64/be stream))
   	(len (nibbles:read-ub32/be stream)))
       (let ((octets (nibbles:make-octet-vector len)))
         (read-sequence octets stream)
         (make-log-message 
  +       :magic magic
          :id id
          :lvl (ecase lvl
   	      (1 :info)
  
positive.code: 
  (defun write-log-message (stream message)
    (with-slots (id lvl time msg) message
      (nibbles:write-ub32/be id stream)
      (nibbles:write-ub32/be (ecase lvl
  			     (:info 1)
  
negative.code: (defun start-follower (log &key (stream *standard-output*))
    "Start following the log."
    (setf *follower* (make-follower log stream))
    (advance-to-start (follower-log *follower*))
    (setf (follower-exit-p *follower*)
  	nil
  	(follower-thread *follower*)
  