anchor.diff:                                    &key (content nil contentp) &allow-other-keys)
     "This special :around reply wraps the standard SERVER reply and encodes/decodes JSON where
   appropriate, which makes for a nicer Lisp-side API."
  -  (when contentp
  -    (setf all-keys
  -          (append all-keys (list :content
  -                                 (with-output-to-string (s)
  -                                   (json:encode content s))))))
     (multiple-value-bind (response status-code)
  -      (apply #'call-next-method server uri all-keys)
  +      (apply #'call-next-method server uri
  +             :content (if contentp
  +                          (with-output-to-string (s)
  +                            (json:encode content s))
  +                          "") all-keys)
       (values (json:parse response) status-code)))
   
   (defun all-dbs (server)
  
positive.code: (defgeneric get-document (db id)
    (:documentation "Returns an CouchDB document from DB as an alist.")
    (:method ((db database) id)
      (handle-request (response db id)
        (:ok response)
        (:not-found (error 'document-not-found :db db :id id)))))
  
  
negative.code: (defgeneric copy-document (db from-id to-id &key)
    (:documentation "Copies a document's content in-database.")
    (:method ((db database) from-id to-id &key revision)
      (handle-request (response db (princ-to-string from-id) :method :copy
                                :additional-headers `(("Destination" . ,(princ-to-string to-id)))
                                :parameters `(,(when revision `("rev" . ,revision))))
        (:created response))))
  