パターンマッチング > ガード > if_then_elseの順で書けるなら書いてくのがいい気がするがどうだろう。
網羅性の判別についてif_then_elseだと分かり難い気がする。