anchor.diff:          (values T msg-id result)))) 
   
   (defun get-result (socket)
  -  "Decode result from the socket."
  +  "Wait for response from nvim."
     (let ((buffer (make-array 0 :element-type 'unsigned-byte :adjustable t :fill-pointer t)))
       (wait-for-input socket)
       (loop with byte
  
positive.code: (defparameter *id* 0)
  
  (defun send-msg (socket msg)
    "Send encoded msg to the socket."
    (loop for m across msg
          do (write-byte m (socket-stream socket))
          finally (force-output (socket-stream socket))))
  
  (defun parse-response (response)
    "Parse the result received from nvim socket."
      (let* ((response (decode response))
             (msg-id (elt response 1))
             (err (elt response 2))
  
negative.code: 
  (defun command->msg (command &optional args)
    "Encode nvim command and optional args into msgpack packet."
    (encode `(0 ,(incf *id*) ,command ,(or args #()))))
  
  (defun send-command (socket command &rest args)
    "Send nvim command to neovim socket and return the result."
  