Crear nueva cláusula de guardia

En Elixir, ¿cómo podría crear una nueva cláusula de guarda para una función? Obviamente, he visto que no puedes simplemente llamar a cualquier función en unwhen declaración, pero sería bueno poder hacer algo como esto:

defmodule Player do
  def play_card(player), do: []
  def play_card(player) when has_cards(player), do: ...
  # Define has_cards as guard clause?
end

Respuestas a la pregunta(2)

Su respuesta a la pregunta