anchor.diff:  
   (defmacro define-api (name http-method api (&rest vars) options result-type)
     (let ((_json (gensym)))
  -    `(defun ,name (app ,@vars ,@(options-to-lambda-list options))
  -       (let ((,_json
  -              ,(let ((uri `(format nil ,api ,@vars)))
  -                 (ecase http-method
  -                   (:get `(http-get app ,uri ,(gen-options options)))
  -                   (:post `(http-post app ,uri ,(gen-options options)))
  -                   (:delete `(http-delete app ,uri))))))
  -         (declare (ignorable ,_json))
  -         ,(cond ((null result-type) (values))
  -                ((and (consp result-type)
  -                      (eq 'list (car result-type)))
  -                 `(parse-list ',(cadr result-type) ,_json))
  -                (t
  -                 `(parse ',result-type ,_json)))))))
  +    `(export
  +      (defun ,name (app ,@vars ,@(options-to-lambda-list options))
  +        (let ((,_json
  +               ,(let ((uri `(format nil ,api ,@vars)))
  +                  (ecase http-method
  +                    (:get `(http-get app ,uri ,(gen-options options)))
  +                    (:post `(http-post app ,uri ,(gen-options options)))
  +                    (:delete `(http-delete app ,uri))))))
  +          (declare (ignorable ,_json))
  +          ,(cond ((null result-type) (values))
  +                 ((and (consp result-type)
  +                       (eq 'list (car result-type)))
  +                  `(parse-list ',(cadr result-type) ,_json))
  +                 (t
  +                  `(parse ',result-type ,_json))))))))
   
   (define-api get-account :get "/api/v1/accounts/~D" (id) () <account>)
   (define-api get-current-user :get "/api/v1/accounts/verify_credentials" () () <account>)
  
positive.code:   (:use #:cl
          #:mastodon.config
          #:mastodon.entity
          #:mastodon.base)
    (:export #:get-account
             #:get-current-user
             #:followers
             #:following
             #:account-statuses
             #:follow-account
             #:unfollow-account
             #:block-account
             #:unblock-account
             #:mute-account
             #:unmute-account
             #:relationships
             #:search-accounts
  
             #:search-content
             #:post-status
             ))
  (in-package :mastodon)
  
  (defun option-variable (opt)
  
negative.code:   (text &key in-reply-to-id media-ids sensitive spoiler-text visibility)
    <status>)
  (define-api delete-status :delete "/api/v1/statuses/~D" (id) () nil)
  (define-api reblog :post "/api/v1/statuses/~D/reblog" (id) () <status>)
  (define-api unreblog :post "/api/v1/statuses/~D/unreblog" (id) () <status>)
  (define-api favourite :post "/api/v1/statuses/~D/favourite" (id) () <status>)
  (define-api unfavourite :post "/api/v1/statuses/~D/unfavourite" (id) () <status>)
  (define-api get-timeline-home :get "/api/v1/timeline/home" () (&key local max-id since-id limit)
    (list <status>))
  (define-api get-timeline-public :get "/api/v1/timeline/public" () (&key local max-id since-id limit)
    (list <status>))
  (define-api get-timeline-hashtag :get "/api/v1/timeline/tag/~D" (hashtag)
    (&key local max-id since-id limit)
    (list <status>))
  
  
  