 
   defp crash_info(min_level, info, prefix \\ [?\n])
 
-  defp crash_info(min_level,
-                  [{:initial_call, {mod, fun, args}} | info], prefix) do
-    [prefix, "Initial Call: ", crash_call(mod, fun, args) |
-     crash_info(min_level, info, prefix)]
-  end
-
-  defp crash_info(min_level,
-                  [{:current_function, {mod, fun, args}} | info], prefix) do
-    [prefix, "Current Call: ", crash_call(mod, fun, args) |
-     crash_info(min_level, info, prefix)]
+  defp crash_info(min_level, [{:initial_call, {mod, fun, args}} | info], prefix) do
+    [prefix, "Initial Call: ", crash_call(mod, fun, args) | crash_info(min_level, info, prefix)]
+  end
+
+  defp crash_info(min_level, [{:current_function, {mod, fun, args}} | info], prefix) do
+    [prefix, "Current Call: ", crash_call(mod, fun, args) | crash_info(min_level, info, prefix)]
   end
 
   defp crash_info(min_level, [{:current_function, []} | info], prefix) do
     crash_info(min_level, info, prefix)
   end
 
-  defp crash_info(min_level,
-                  [{:ancestors, ancestors} | debug], prefix) do
-    [prefix, "Ancestors: ", inspect(ancestors) |
-     crash_info(min_level, debug, prefix)]
+  defp crash_info(min_level, [{:ancestors, ancestors} | debug], prefix) do
+    [prefix, "Ancestors: ", inspect(ancestors) | crash_info(min_level, debug, prefix)]
   end
 
   defp crash_info(:debug, debug, prefix) do

    Exception.format_exit(reason)
  end

  defp translate_crash(min_level,
                       [[{:initial_call, _} = initial_call,
                         {:pid, pid},
                         {:registered_name, name},
                         {:error_info, {kind, exception, stack}} | crashed],
                        linked]) do
    {:ok, ["Process ", crash_name(pid, name), " terminating",
           format(kind, exception, stack),
           crash_info(min_level, [initial_call | crashed]) |
           crash_linked(min_level, linked)]}
  end

  defp translate_crash(min_level,
                       [[{:pid, pid},
                         {:registered_name, name},
                         {:error_info, {kind, exception, stack}} | crashed],
                        linked]) do
    {:ok, ["Process ", crash_name(pid, name), " terminating",
           format(kind, exception, stack),
           crash_info(min_level, crashed),
           crash_linked(min_level, linked)]}
  end

  defp crash_name(pid, []), do: inspect(pid)

  # OTP processes rewrite the :undef error to these reasons when logging
  @gen_undef [:"module could not be loaded", :"function not exported"]

  defp format_stop_banner(undef, [{mod, fun, args, _info} | _] = stacktrace)
       when undef in @gen_undef and is_atom(mod) and is_atom(fun) do
    cond do
      is_list(args) ->
        format_undef(mod, fun, length(args), undef, stacktrace)

      is_integer(args) ->
        format_undef(mod, fun, args, undef, stacktrace)

      true ->
        format_stop_banner(undef)
    end
