       end
 
     tuples =
-      for definition <- definitions_in(module),
-          definition in behaviour_callbacks,
-          do: definition
+      for definition <- definitions_in(module), definition in behaviour_callbacks, do: definition
 
     make_overridable(module, tuples)
   end

  defp normalize_macro_or_function_callback({function_name, arity}) do
    case :erlang.atom_to_list(function_name) do
      # Macros are always provided one extra argument in behaviour_info/1
      'MACRO-' ++ tail -> {{:erlang.list_to_atom(tail), arity - 1}, :defmacro}
      _ -> {{function_name, arity}, :def}
    end
  end


              end

            overridable_definitions = :elixir_overridable.overridable(module)

            count =
              case :maps.find(tuple, overridable_definitions) do
                {:ok, {count, _, _, _}} -> count + 1
                :error -> 1
              end

            overridable_definitions =
              :maps.put(tuple, {count, clause, neighbours, false}, overridable_definitions)

            :elixir_overridable.overridable(module, overridable_definitions)
        end

      other ->
        error_message =
          "each element in tuple list has to be a {function_name :: atom, arity :: 0..255} tuple, got: #{
            inspect(other)
          }"

        raise ArgumentError, error_message
    end

    :lists.foreach(func, tuples)
  end

  @spec make_overridable(module, module) :: :ok
