 
   * :no-pr-str-on-value If true, avoids wrapping value in pr-str.
 
-  The opts map passed here overrides the environment options."
+  The opts map passed here overrides the environment options.
+  Note that value is always the last parameter."
   ([opts cb value]
-   (handle-eval-success! opts cb value identity))
-  ([opts cb value side-effect!]
+   (handle-eval-success! opts cb identity value))
+  ([opts cb side-effect! value]
    (side-effect!)
    (cb true (if-not (:no-pr-str-on-value opts)
               (pr-str value)

        ns-form (make-ns-form kind specs target-ns)]
    (when (:verbose opts)
      (debug-prn "Processing " (name kind) " via ns: " (pr-str ns-form)))
    (cljs/eval
     st
     ns-form
     (make-base-eval-opts! opts)
     (partial handle-eval-result! opts cb #(when is-self-require?
                                             (swap! app-env assoc :current-ns restore-ns))))))

(defn process-doc
  [cb env sym]

           (if (some (partial = ns-symbol) (known-namespaces))
             (handle-eval-success! opts
                                   cb
                                   #(swap! app-env assoc :current-ns ns-symbol)
                                   nil)
             (let [ns-form `(~'ns ~ns-symbol)]
               (cljs/eval
                st
