It also helps the compiler when you have multiple definitions with default values. For example
def foo(fn,acc)
def foo(:ok, acc \\ []) do
:ok
end
def foo(:error, acc \\ nil) do
:error
end
Try it without the bodyless clause and it should display a warning. (It should, but I’m on mobile so I can’t be sure).
I don’t know exactly why, I just discovered it a few days ago.


















