Multiple clauses, defaults and conflicts

Thanks @peerreynders I think I get it now with:

Optional parameters are not a feature of the underlying language - Erlang. It’s something that Elixir layers on top in a way that “works most of the time as expected”. But there can be surprising edge cases.

This creates ONE function ( same/2 ):

def same({a, b}, c), do: ...
def same(a, b), do: ...

I expected Elixir could handle it. I guess I found one of that surprising edge cases.

I don’t know if to enhance optional parameters is in the roadmap (in the end, it’s not important as it can be handle long-hand) but it’s nice, hopeful it’ll have less edge cases over time.

Thank you so much for the explanation!