>>142
へ?
パターンマッチとガードでごく普通の関数として書けるけど
型クラスなんて大仰なもん使わんよ
と言うか、ifが普通に書けるのが遅延評価と関数もファーストクラスの値っていう特徴の賜物じゃないか

if flg t f | flg == True = t
      | flg == False = f

関数型言語は必ず値を返すって性質上、if elseしか許されないが

先行評価のだと、両方とも関数を受け取った時点で評価前に実行されちゃうから正しく動かない
(評価前に両方実行されて、評価後にどちらかが実行される)