anchor.diff:                                           (concatenate 'string
                                                         (car lst)
                                                         (cdr lst)))
  -                                     params))))
  +                                     sorted-params))))
       (with-accessors ((secret-key secret-key)) api
         (format nil "~(~{~2,'0X~}~)"
                 (map 'list #'identity
                      (md5:md5sum-sequence (concatenate 'string
                                                        secret-key
                                                        flaten-params)))))))
  -  
  +
   (defgeneric urlencode (api params)
     (:documentation "Encode url parameters."))
   
  
positive.code:   (:documentation "Sign url params."))
  
  (defmethod signurl ((api api) params)
    (let* ((sorted-params (sort params
                                #'string<
                                :key #'car))
           (flaten-params (format nil
  
negative.code:   (with-accessors ((public-key public-key)
                     (secret-key secret-key)
                     (api-token api-token)) api
      (append (list (cons "api_key" public-key)
                    (cons "api_token" api-token)
                    (cons "api_sig" (signurl api params)))
              params)))