 
     case Protocol.consolidate(protocol, impls) do
       {:ok, binary} ->
-        File.write!(Path.join(output, "#{protocol}.beam"), binary)
+        File.write!(Path.join(output, "#{Atom.to_string(protocol)}.beam"), binary)
 
         if opts[:verbose] do
-          Mix.shell().info("Consolidated #{inspect(protocol)}")
+          Mix.shell().info("Consolidated #{inspect_protocol(protocol)}")
         end
 
       # If we remove a dependency and we have implemented one of its

  end

  defp remove_consolidated(protocol, output) do
    File.rm(Path.join(output, "#{protocol}.beam"))
  end
end

        remove_consolidated(protocol, output)

        if opts[:verbose] do
          Mix.shell().info("Unavailable #{inspect_protocol(protocol)}")
        end
    end
  end

  # We cannot use the inspect protocol while consolidating
  # since inspect may not be available.
  defp inspect_protocol(protocol) do
    Code.Identifier.inspect_as_atom(protocol)
  end

  defp reload(module) do
