Как установить и получить строку документации с несколькими методами в clojure?

Я использую мультиметоды для анализа команд командной строки и их аргументов.

(defmulti run (fn [command args] command))

(defmethod run :default
  [& _]
  ...)

^{:args "[command]"}
(defmethod run "help"
  [_ & [args]]
  "Display command list or help for a given command"
  ...)

^{:args ""}
(defmethod run "version"
  [_ & [args]]
  "Print program's version"
  ...)

(defn -main
  [& args]
  (run (first args)
    (next args)))

Когда я пытаюсь получить доступ к строке документации для определенного метода, clojure вызывает исключение:

(doc ((methods run) "help"))
ClassCastException clojure.lang.PersistentList cannot be cast to clojure.lang.Symbol  clojure.core/find-ns (core.clj:3996)

Можно ли установить строку документации для определенного метода и позже получить ее в коде?


person Alexey    schedule 17.09.2016    source источник
comment
Поскольку сама строка документации помещается в метаданные, я бы посчитал это дубликатом.   -  person OlegTheCat    schedule 17.09.2016
comment
@OlegTheCat Что ж, в таком случае лучше пометить вопрос как дубликат.   -  person Alexey    schedule 19.09.2016