Haskellにおける、関数の比較

Haskellで、関数の比較 (関数の評価結果の比較でなくて、関数自身の比較)はできないものでしょうかね?関数を渡して、関数名に変換するようなことをしたいです。

f op = case op of
    + -> "add"
    - -> "sub"
    * -> "mul"

main = do
    print $ f (+)
    print $ f (-)
    print $ f (*)

こんなコードを書いてコンパイルしたところ、コンパイルは通るものの"Pattern match is redundant"というwarningが表示され、main関数の3つのprintはいずれも"add"と表示されます。