(defn get-clj-var-info [ns-sym var-sym]
(let [sym (symbol (str ns-sym) (str var-sym))]
{:sym var-sym
:meta (-> sym
find-var
meta
(select-keys [:arglists :doc]))
:source (try (repl/source-fn sym)
(catch Exception _))
:spec (try
(require 'clojure.spec.alpha)
(let [form (resolve (symbol "clojure.spec.alpha" "form"))]
(with-out-str
(clojure.pprint/pprint
(form sym))))
(catch Exception _))
:examples (get-examples ns-sym var-sym)}))