Magma型クラス
ある二項演算において閉じている
あまり一般的ではない気がする

hsやpursでは標準では用意されていない
Magmaは、「結合律のない
Semigroup型クラス」なので、演算としてかなり限定されるため、わざわざ用意する嬉しさが薄いからだろうか

tsinterface Magma<A> {
readonly concat: (x: A, y: A) => A
}
半群ではないマグマの演算の例に -
があるが、
fp-tsでは MagmaSub
が、Magmaのinstanceとして定義されている