Also, adding an "catch all" is usually not recommended in Erlang (even though it's good for some things), so most of the time you would do just: foo(bar) -> void.
And then let it crash if the value is something else than expected.
I don't know, I find I do it with variables more than functions. With functions I seprate them by arity, so there could be a foo/0 and foo/1 maybe. But usually I haven't seen much fun1 fun2 fun3 ... pattern.
And if you don't see a way, don't split it. I mean, make your code look good and easy to understand for yourself and others, that's the point.
Appending 1 to functions might be used for utility/internal functions with a slightly different (and less convenient) signature than the base[0], usually because the original signature does not allow for tail-recursion. That's not the case here.
foo1 is used to illustrate a point not that you'd name functions like that. The whole thing would be probably:
I don't know, I see that better than the case statement.