                  (fn [{error :error}]
                    (call-back! opts cb
                                (merge data
-                                      {:side-effect! #(when is-self-require?
-                                                        (swap! app-env assoc :current-ns restore-ns))})
+                                      {:side-effect-fn! #(when is-self-require?
+                                                           (swap! app-env assoc :current-ns restore-ns))})
                                (if error
                                  error
                                  (common/wrap-success nil))))))))

  1. The opts map passed here overrides the environment options.
  2. This function will also clear the :last-eval-warning flag in
  app-env.
  3. It will execute (:side-effect!) or (on-success!)  and (on-error!)
  *before* the callback is called.

  ** Every function in this namespace should call call-back! as
  single point of exit. **"


(defn call-side-effect!
  "Execute the correct side effecting function from data.
  Handles :side-effect-fn!, :on-error-fn! and on-success-fn!."
  [data {:keys [value error]}]
  (if-let [f! (:side-effect-fn! data)]
    (f!)
    (if-not error
      (when-let [s! (:on-success-fn! data)] (s!))
      (when-let [e! (:on-error-fn! data)] (e!)))))

(defn warning-error-map!
  "Checks if there has been a warning and if so will return the correct
