&gt; Doesn&#x27;t seem very erlangy. I&#x27;d expect a runtime error, as someone&#x27;s passed foo() the wrong value.<p>It depends.<p>Sometimes you want to crash when handed an unexpected value.<p>Sometimes you expect that you&#x27;ll be handed unexpected values and need to either fail more gracefully, print a warning and then fail, or warn and keep going, or whatever.<p>Erlang gives you a bunch of tools, and they all have their place. [0] :)<p>[0] With the possible exception of the if statement... which is of <i>questionable</i> utility.