anchor.diff:        *response-methods*)))
   
   (defun pathname-to-uri (pathname)
  -  (format nil "file://~A" pathname))
  +  (format nil "file://~A" (truename pathname)))
   
   (defun {} (&rest plist)
     (alexandria:plist-hash-table plist :test 'equal))
  
positive.code: 
  (defparameter *log-stream* *error-output*)
  
  (defvar *workspaces* (make-hash-table :test 'equal))
  (defvar *response-methods* '())
  
  (defstruct workspace
  
negative.code: (defun initialize-hooks (buffer)
    (lem:add-hook (lem:variable-value 'lem:before-change-functions :buffer buffer) #'on-change))
  
  (defun start (buffer)
    (let* ((root-path *root-path*)
           (workspace (find-workspace root-path)))
      (cond
        (workspace
         (setf (buffer-workspace buffer) workspace))
        (t
         (let* ((connection (jsonrpc:make-client))
                (workspace (make-workspace :connection connection
                                           :root root-path
                                           :language-id *language-id*)))
           (push workspace *workspaces*)
           (setf (buffer-workspace buffer) workspace)
           (dolist (response-method *response-methods*)
             (jsonrpc:expose connection (string response-method) response-method))
           (jsonrpc:client-connect (workspace-connection workspace)
                                   :mode :tcp
                                   :port 4389)
           (initialize workspace)
           (initialized workspace)
           workspace))))
    (text-document-did-open buffer))
  