anchor.diff:  
   (defstate request-fsm :initial (fsm data)
     (format t "~S => ~S~%" fsm (code-char data))
  -  (when (char-equal (code-char data) #\Return)
  -    :seek-newline))
  +  (cond ((char-equal (code-char data) #\Return)
  +         :seek-newline)
  +        ((char-equal (code-char data) #\Newline)
  +         :error)))
   
   (defstate request-fsm :seek-newline (fsm data)
     (if (char-equal (code-char data) #\Newline)
  
positive.code:            (return (1+ i))))))))
  
  ;; HTTP Peer
  (defclass http-peer ()
    ((socket :initarg :socket
             :accessor sock)
     (parser :accessor parser)))
  
  (defmethod initialize-instance :after ((peer http-peer) &key)
    (setf (parser peer) (make-instance 'request-parser :peer peer))
  
    (add-listener (sock peer) "data"
                  (lambda (data)
  
negative.code:   (:default-initargs . (:state :seek-return-1)))
  
  (defstate header-fsm :seek-return-1 (fsm data)
    (format t "~S[~S] => ~S~%" fsm state (code-char data))
    (when (char-equal (code-char data) #\Return)
      :seek-newline-1))
  
  (defstate header-fsm :seek-newline-1 (fsm data)
    (format t "~S[~S] => ~S~%" fsm state (code-char data))
    (if (char-equal (code-char data) #\Newline)
      :seek-return-2
      :error))
  
  (defstate header-fsm :seek-return-2 (fsm data)
    (format t "~S[~S] => ~S~%" fsm state (code-char data))
    (if (char-equal (code-char data) #\Return)
      :seek-newline-2
      :seek-return-1))
  
  (defstate header-fsm :seek-newline-2 (fsm data)
    (format t "~S[~S] => ~S~%" fsm state (code-char data))
    (if (char-equal (code-char data) #\Newline)
        :done
        :error))
  