     |> MapSet.new()
   end
 
-  defp excluded?(module, func, arity, excludes) do
+  defp excluded?(excludes, module, func, arity) do
     MapSet.member?(excludes, module) or MapSet.member?(excludes, {module, func, arity})
   end
 

      function_exported?(maybe_protocol, :__protocol__, 1)
  end

  defp skip?(_, _, _) do
    false
  end



  @protocol_builtins for {_, type} <- Protocol.__builtin__(), do: type

  defp skip_unreachable?(:erlang, func, 2) when func in [:andalso, :orelse] do
    true
  end

  defp skip_unreachable?(module, :__impl__, 1) do
    {maybe_protocol, maybe_builtin} = module |> Module.split() |> Enum.split(-1)
    maybe_protocol = Module.concat(maybe_protocol)
    maybe_builtin = Module.concat(maybe_builtin)
