     (def exit reply.main/exit)
     (def quit reply.main/exit)
     (def help reply.initialization/help)
+
     (help)
     (reply.initialization/intern-with-meta 'user 'clojuredocs #'cd-client.core/pr-examples)
+    (binding [*err* (java.io.StringWriter.)]
+      (reply.initialization/intern-with-meta 'user 'defn #'reply.initialization/repl-defn))
+    (reply.initialization/intern-with-meta 'user 'sourcery #'reply.initialization/sourcery)
     nil))
 
 (defn eval-in-user-ns [code]

  [{:keys [skip-default-init
           custom-init] :as options}]
  `(do
    ~(when-not skip-default-init default-init-code)
    ~(when custom-init custom-init)
    nil))



(defn intern-with-meta [ns sym value-var]
  (intern ns
          (with-meta sym (meta value-var))
          @value-var))

(defn default-init-code []
  '(do
    (println "Welcome to REPL-y!")
    (println "Clojure" (clojure-version))
