anchor.diff:      (cond ((requestp msg)
              (with-request msg
                (handler-case (send-response msg-id NIL
  -                                          (apply (gethash msg-method *request-callbacks*)
  -                                                            (first msg-params)))
  +                                          (let ((params (if (listp (first msg-params)) (first msg-params) msg-params)))
  +                                            (apply (gethash msg-method *request-callbacks*) params)))
                  (error (desc) (send-response msg-id (format nil "~A" desc) NIL)))))
             ((responsep msg)
              (with-response msg
  
positive.code:   "Remove a registered notification callback."
    (remhash name *notification-callbacks*))
  
  (defun run (&key host port filename)
    "Run listener in an event loop inside a background thread."
    (bt:make-thread (lambda () (cond (filename        (run-listener #'as:pipe-connect filename))
                                     ((and host port) (run-listener #'as:tcp-connect host port))
                                     (t (error "Currently only tcp/unix sockets are supported."))))
                    :name "Event loop"
                    :initial-bindings `((mpk:*extended-types* . ',*extended-types*))))
  
negative.code: (msg-rpc-type notification 2 msg-method msg-params)
  
  (defun handle-new-msg (socket data)
    (declare (ignore socket))
    "Handle a new message based on its type and contents."
    (let* ((mpk:*decoder-prefers-lists* T)
           (mpk::*bin-as-string* T)
  