   def filter_results(results, from) do
     case Enum.reject results, &succeeded?/1 do
       [] -> :ok
-      errors when is_list(errors) -> {:error, :child_tasks, {from, errors}}
+      errors when is_list(errors) -> {:error, {from, errors}}
     end
   end
 

  def filter_results_with_values(results, from) do
    case Enum.reject results, &succeeded?/1 do
      [] -> {:ok, Enum.map(results, &elem(&1, 1))}
      errors when is_list(errors) -> {:error, :child_tasks, {from, errors}}
    end
  end

  @spec succeeded?(result | result(term)) :: boolean

  defp succeeded?(:ok),            do: true
  defp succeeded?({:ok, _}),       do: true
  defp succeeded?({:error, _, _}), do: false

  @doc "Prints an error object in a beautiful format."
  @spec show(result, non_neg_integer) :: :ok

    show :ok, indent
  end

  def show({:error, message}, indent) when is_binary(message) do
    IO.write String.duplicate("  ", indent)
    perr "#{message}"
  end

  def show({:error, {posix, file, 0}}, indent) when is_atom(posix) do
    message = posix |> :file.format_error |> IO.iodata_to_binary
    show {:error, {message, file, 0}}, indent
  end

  def show({:error, {message, file, 0}}, indent) do
    IO.write String.duplicate("  ", indent)
    perr "\x1b[97m#{file}:\x1b[0m #{message}"
  end

  def show({:error, {message, file, line}}, indent) do
    IO.write String.duplicate("  ", indent)
    perr "\x1b[97m#{file}:#{line}:\x1b[0m #{message}"
  end

  def show({:error, {from, errors}}, indent) do
    IO.write String.duplicate("  ", indent)
    IO.puts "\x1b[1;31mSeveral errors occurred from #{from}:\x1b[0m"
    Enum.each errors, &show(&1, indent + 1)
