     (indent-line-breaks (clojure.string/join "\n"
                                              (map pprint-str
                                                   args))
-                        (:depth entry))))
+                        (:depth entry)
+                        :end "  ")))
 
 (defn return-str
   [entry]
   (when-let [return (:return entry)]
     (str (indent (:depth entry))
-         "return => "
-         (pprint-str return)
-         "\n")))
+         "return => \n"
+         (indent-line-breaks (str (pprint-str return)
+                                  "\n")
+                             (:depth entry)
+                             :end "  "))))
 
 (defn throw-str
   [entry]

  [entry]
  (let [depth (:depth entry)]
    (clojure.string/join "" [(fg-color-code depth)
                             (indent depth)
                             (:name entry)
                             reset-color-code])))


  (str depth (clojure.string/join "" (repeat depth "|"))))

(defn indent
  [depth & {:keys [start end]
            :or   {start " " end " "}}]
  (format "%s%s%s"
          start
          (->> depth
               inc
               (range 1)
               (map #(str (fg-color-code %)
                          "|"))
               (clojure.string/join ""))
          end))

(defn indent-line-breaks
  [s depth & rest]
  (clojure.string/join ""
                       (mapcat (fn [line] [(apply indent depth rest)
                                           line
                                           reset-color-code
                                           "\n"])
