anchor.diff:    ;; declare some useful local functions
     (labels (
   
  -	   (make-header (line)
  -	     (map 'list #'string-strip (string-split line :delim ":" :limit 1)))
  -
  -	   ;; frame name is first line
  -	   (find-name (source)
  -	     (first source))
  -
  -	   ;; frame headers are second lines through to empty line
  -	   (find-headers (source)
  -	     (let ((lines (rest source)))
  -	       (loop
  -		  :for line :in lines
  -		  :while (> (length line) 0)
  -		  :collect (make-header line))))
  -
  -	   ;; frame body is all lines after the empty line
  -	   (find-body (source)
  -	     (let* ((lines (reverse source))
  -		    (result (loop
  -			       :for line :in lines
  -			       :while (> (length line) 0)
  -			       :collect line)))
  -	       (string-join (nreverse result)))))
  +           (make-header (line)
  +             (map 'list #'string-strip (string-split line :delim ":" :limit 1)))
  +
  +           ;; frame name is first line
  +           (find-name (source)
  +             (first source))
  +
  +           ;; frame headers are second lines through to empty line
  +           (find-headers (source)
  +             (let ((lines (rest source)))
  +               (loop
  +                  :for line :in lines
  +                  :while (> (length line) 0)
  +                  :collect (make-header line))))
  +
  +           ;; frame body is all lines after the empty line
  +           (find-body (source)
  +             (let* ((lines (reverse source))
  +                    (result (loop
  +                               :for line :in lines
  +                               :while (> (length line) 0)
  +                               :collect line)))
  +               (string-join (nreverse result)))))
   
       (let ((lines (string-lines string)))
         (let ((name (find-name lines))
  -	    (headers (find-headers lines))
  -	    (body (find-body lines)))
  -	(make-instance 'frame :name name :headers headers :body body)))))
  +            (headers (find-headers lines))
  +            (body (find-body lines)))
  +        (make-instance 'frame :name name :headers headers :body body)))))
   
   (defmethod print-object ((self frame) stream)
     (with-slots (name headers body) self
  
positive.code:       ;; open the socket and send the connect string
  
        (with-slots (host port ip socket fd handler) self
  	(setf ip (ip-addr-of host))
  	(setf socket (sk-make))
  	(sk-connect socket ip port)
  	(setf fd (sk-file-desc socket))
  	(setf handler (sb-sys:add-fd-handler fd :input (lambda (x)
  							 (declare (ignore x))
  							 (receive self))))
  	(let ((frame (make-instance 'frame :name "CONNECT")))
  	  (if user
  	      (set-header frame "login" user))
  	  (if pass
  	      (set-header frame "passcode" pass))
  	  (send self frame)))
  
      ;; just log the error for now
  
  
negative.code: (defmethod send ((self stomp-connection) string)
    (with-slots (fd) self
      (let ((stream (sb-sys:make-fd-stream fd :output t :element-type '(unsigned-byte 8)
                                           :buffering :none)))
        (write-sequence (sb-ext:string-to-octets string) stream)
        (finish-output stream))))
  
  