anchor.diff:  
   (defun command->msg (command &optional args)
     "Encode nvim command and optional args into msgpack packet."
  -  (encode `(0 ,(incf *id*) ,command ,(or args #()))))
  +  (let* ((*extended-types* *nvim-type-list*))
  +    (encode `(0 ,(incf *msg-id*) ,command ,(or args #())))))
   
   (defun send-command (socket command &rest args)
     "Send nvim command to neovim socket and return the result."
     (let ((msg (command->msg command args)))
       (send-msg socket msg)
       (get-result socket)))
  -
  -; Hello world:
  -(send-command (socket-connect #(127 0 0 1) 7777 :element-type '(unsigned-byte 8))
  -              "vim_del_current_line")
  
positive.code:         do (write-byte m (socket-stream socket))
          finally (force-output (socket-stream socket))))
  
  (defun parse-response (response)
    "Parse the response received from nvim socket."
      (let* ((response (decode response))
             (msg-id (elt response 1))
             (err (elt response 2))
             (err-str (if err (octets-to-string (concatenate '(vector (unsigned-byte 8)) (elt err 1)) :encoding :utf-8)))
             (result (elt response 3)))
        (if err
          (values NIL msg-id err-str)
  
negative.code: ;;;; cl-neovim.lisp
  (in-package #:cl-neovim)
  
  (defparameter *msg-id* 0)
  (defparameter *nvim-type-list* (define-extension-types
                                   '(:numeric
                                      0
                                      Buffer
                                      Window
                                      Tabpage)))
  
  (defun send-msg (socket msg)
    "Send encoded msg to nvim."
  