     case shutdown_receive(task, mon, :brutal_kill, :infinity) do
       {:down, proc, :noconnection} ->
         exit({reason(:noconnection, proc), {__MODULE__, :shutdown, [task, :brutal_kill]}})
+
       {:down, _, reason} ->
         {:exit, reason}
+
       result ->
         result
     end

      {^ref, reply} ->
        Process.demonitor(ref, [:flush])
        {:ok, reply}
      {:DOWN, ^ref, _, proc, :noconnection} ->
        exit({reason(:noconnection, proc), {__MODULE__, :yield, [task, timeout]}})
      {:DOWN, ^ref, _, _, reason} ->
        {:exit, reason}
    after

      Enum.to_list(stream)

  """
  @spec async_stream(Enumerable.t(), module, atom, [term], keyword) :: Enumerable.t()
  def async_stream(enumerable, module, function, args, options \\ [])
      when is_atom(module) and is_atom(function) and is_list(args) do
    build_stream(enumerable, {module, function, args}, options)
