       {:"::", _, [arguments, return]} =
         Code.Typespec.spec_to_quoted(unquote(function_name), function_spec)
 
-      expected_arguments_spec = "#{unquote(function_name)}(#{unquote(arguments_spec)})"
+      accepted_arguments_specs =
+        Enum.map(unquote(arguments_specs), fn arguments_spec ->
+          "#{unquote(function_name)}(#{arguments_spec})"
+        end)
+
       actual_arguments_spec = Macro.to_string(arguments)
-      assert actual_arguments_spec == expected_arguments_spec
+      assert actual_arguments_spec in accepted_arguments_specs
 
       expected_return_spec = unquote(return_spec)
       actual_return_spec = Macro.to_string(return)


    @tag task_id: 3
    test "has a typespec" do
      assert_spec({:letters, 1}, "String.t()", "[String.t()]")
    end
  end


    end
  end

  defmacrop assert_spec({function_name, function_arity}, arguments_specs, return_spec) do
    quote do
      {:ok, specs} = Code.Typespec.fetch_specs(Form)

