   end
 
   # Finally compile the module and emit its bytecode.
-  defp compile({ :ok, protocol, code }) do
+  defp compile({ protocol, code }) do
     opts = if Code.compiler_options[:debug_info], do: [:debug_info], else: []
     { :ok, ^protocol, binary, _warnings } = :compile.forms(code, [:return|opts])
     { :ok, binary }
   end
-
-  defp compile(other) do
-    other
-  end
 end

    { :error, :not_a_protocol } |
    { :error, :no_beam_info }

  def apply_to(protocol, types) when is_atom(protocol) do
    protocol
    |> ensure_protocol
    |> change_debug_info(types)
    |> compile
  end

  # Ensure the given module is loaded and is a protocol.

                           attributes: attributes] } } ->
        case attributes[:protocol] do
          [fallback_to_any: any, consolidated: _] ->
            { :ok, { protocol, any, abstract_code } }
          _ ->
            { :error, :not_a_protocol }
        end
