   {"cljs.core"              {"clojurescript" {"core.cljs"        "src/cljs/cljs/core.cljs"
                                               "core.clj"         "src/clj/cljs/core.clj"}
                              "clojure"       {"core.clj"         "src/clj/clojure/core.clj"
-                                              "core_deftype.clj" "src/clj/clojure/core_deftype.clj"}}
+                                              "core_deftype.clj" "src/clj/clojure/core_deftype.clj"
+                                              "core_print.clj"   "src/clj/clojure/core_print.clj"
+                                              "core_proxy.clj"   "src/clj/clojure/core_proxy.clj"}}
    "cljs.reader"            {"clojurescript" {"reader.cljs"      "src/cljs/cljs/reader.cljs"}}
    "clojure.set"            {"clojurescript" {"set.cljs"         "src/cljs/clojure/set.cljs"}}
    "clojure.string"         {"clojurescript" {"string.cljs"      "src/cljs/clojure/string.cljs"}}


(defmethod parse-form* "def fn"
  [form]
  (assoc (parse-def-fn form) :fn-or-macro "function"))

(defmethod parse-form* "defn"
  [form]
  (assoc (parse-defn-or-macro form) :fn-or-macro "function"))

(defmethod parse-form* "defmacro"
  [form]
  (assoc (parse-defn-or-macro form) :fn-or-macro "macro"))

(defmethod parse-form* nil
  [form]

        signatures (when-let [arglists (:arglists m)]
                     (when (= 'quote (first arglists))
                       (second arglists)))]
    {:docstring docstring
     :signatures signatures
     :fn-or-macro "function"}))

(defmulti parse-form*
  (fn [form]
