質問: HaskellにあるSumモノイドとProdモノイド、どうも実用性を感じません。いちいち数字をSumとProdで囲って計算するラッパー作ったりしてまで使うくらいなら素直に + 、 * を使います。 ということは実用性、というよりは「Haskellはモノイド作れるよ!例えばモノイドである加法、乗法どちらもHaskellでモノイドとして実装できるよ!」というアピール(?)なのでしょうか? もしくは数学的議論をしていてプログラムを使うときにSumモノイド、Prodモノイドがあると円滑にすすむ、というようなプログラマ向けではない理由なのでしょうか? 実用的な例があったら教えてください。
回答: Monoidクラスに対する多相関数が使える、という事が利点です。 具体的には、単位元を用いた一般的なた代数的操作が可能です。また多相関数の実装では、結合律を仮定した最適化が可能になるでしょう。