解説

演算子について

 先ほどのSemigroup Int型は、「整数と乗算の半群」と呼ばれるものです。
Wikipediaの言葉と合わせて見ていきましょう。

集合 S とその上の二項演算 • : S × S → S が与えられたとき、組 (S, • ) が以下の条件を満たすならば、これを半群という。

 今回の集合Sは、「Int」です。
つまり64bit CPUであれば-2147483648 〜 2147483647という数全ての集合です。

-- 半群型クラス
instance Semigroup Int where
  sappend = (*)

二項演算 • : S × S → S

今回の二項演算・とはsappend関数で指定されている、(*)演算子のことです。

ちなみに、

S × S → S

とは、Haskellでいう型

s -> s -> s

です。

Semigroup型インスタンスの関数

sappend :: a -> a -> a

が、うまく合致しています。