anchor.diff:          (yason:parse stream
                        :object-key-fn #'string-to-keyword
                        :object-as :plist)))))
  +
  +
  +(defun query-string (&rest plist)
  +  (with-output-to-string (out)
  +    (let ((plist (loop
  +                    for (x y) on plist by #'cddr
  +                    unless (null y)
  +                    collect x
  +                    collect y)))
  +      (when plist
  +        (destructuring-bind (attr value &rest others) plist
  +          (declare (ignore others))
  +          (format out "?~a=~a" attr value)))
  +      (loop
  +         for (attr value) on (cddr plist) by #'cddr
  +         do (format out "&~a=~a" attr value)))))
  
positive.code:              (docker-protocol-error-reason condition)))))
  
  
  (defun parse-status-line (line)
    ;; HTTP-Version SP Status-Code SP Reason-Phrase CRLF
    (let* ((sp1 (position #\space line))
  
negative.code:   (:import-from :flexi-streams)
    (:import-from :yason)
    (:export #:request
             #:request-json
             #:query-string))
  
  (in-package :docker/request)
  
  