anchor.diff:      (cond ((requestp msg) 
              (multiple-value-bind (msg-id msg-method msg-params) (parse-request msg)
                (format t "Received request [~A] ~A(~{~A~^, ~})~%" msg-id msg-method (first msg-params))
  -             (send-msg (make-response msg-id (format NIL "Replying to request [~A] ~A(~{~A~^, ~})" msg-id msg-method (first msg-params)) NIL))))
  +             (send-response msg-id (format NIL "Replying to request [~A] ~A(~{~A~^, ~})" msg-id msg-method (first msg-params)) NIL)))
             ((responsep msg) 
              (multiple-value-bind (msg-id msg-result) (parse-response msg)
                (format t "Received response [~A] ~A~%" msg-id msg-result)
  
positive.code: 
  (defmacro msg-rpc-type (type-name type-id &rest components)
    (let ((make-name (symbol-append 'make- type-name))
          (predicate-name (symbol-append type-name 'p))
          (parse-name (symbol-append 'parse- type-name)) 
          (components (mapcar #'mklst components)))
      `(progn
         (defun ,make-name ,(first-els (remove-lsts-with :make components))
           (concatenate '(vector (unsigned-byte 8)) (encode (list ,type-id ,@(mapcar #'(lambda (c) (or (getf (rest c) :make) (first c))) components)))))
         (defun ,predicate-name (msg)
           (= (first msg) ,type-id))
         (defun ,parse-name (msg)
  
negative.code: (in-package #:cl-neovim)
  
  (defparameter *msg-id* 0 "Unique id for messages.")
  (defparameter *socket* NIL "Socket used for reading/writing.")
  
  (eval-when (:compile-toplevel)
    (defun symbol-append (&rest symbols) 
  