Função de correspondência de padrão em relação ao mapa vazio

Estou brincando com a correspondência de padrões e descobri que não é fácil padronizar os parâmetros de correspondência de um método em um mapa vazio. Eu pensei que seria algo como isto:

defmodule PatternMatch do
  def modify(%{}) do
    %{}
  end

  def modify(map) do
    # expensive operation
    %{ modified: "map" }
  end
end

Mas parece que a primeira cláusula de função corresponde a mapas arbitrários:

iex> PatternMatch.modify(%{a: "map"})
==> %{}

Existe outra maneira de verificar se há mapas vazios?

questionAnswers(3)

yourAnswerToTheQuestion