      {:pre [(seq? passes)
             (every? fn? passes)
             (fn? emitter)]}
-     (let [forms (atom [])
-           defs  (atom {})
+     (let [forms  (atom [])
+           defs   (atom {})
            config {:debug? false
                    :exec?  true
                    :forms forms}]
        ;; Loads and macroexpands all the code using the built config
        ;; to generate the forms and defs structures.
+       ;;
+       ;; By definition of a well formed Clojure program, loading the
+       ;; "root" resource must load all depended resources, otherwise
+       ;; there will be a symbol resolution error in the compiling
+       ;; Clojure runtime.
        (load res config)
 
        (let [settings (:passes settings)]

             true
             ;; Bare expression handling
             ;; ----------------------------
             (do ;; Run the code for side-effects
                 (let [res (when (and eval?
                                      (not (= 'clojure.core (.name *ns*))))
                             (em.jvm/eval mform))]

         (with-redefs [clojure.core/load   oxcart.core/load
                       clojure.core/eval   oxcart.core/eval
                       clojure.core/gensym oxcart.core/gensym]
           (with-macro-redefs [#'clojure.core/defmulti        @#'oxcart.core-redefs/defmulti
                               #'clojure.core/defmethod       @#'oxcart.core-redefs/defmethod
                               #'clojure.core/deftype         @#'oxcart.core-redefs/deftype
                               #'clojure.core/defprotocol     @#'oxcart.core-redefs/defprotocol
