Erlang does not specify void | any() return type. It is probably easier to expect every statement to return something. Multiple functions or function with guard clauses usually go along with multiple case | if statements quite well. If they look really bad, try to refactor the code.