翻转半群运算的 Haskell 新类型?

Cli*_*ton 6 haskell monoids semigroup

基础中是否有任何新类型基本上可以实现以下目标?

newtype SemigroupFlip a = SemigroupFlip a

instance Semigroup a => Semigroup (SemigroupFlip a) where
  (SemigroupFlip a) <> (SemigroupFlip b) = SemigroupFlip (b <> a)

instance Monoid a => Monoid (SemigroupFlip a) where
  mempty = SemigroupFlip mempty
Run Code Online (Sandbox Code Playgroud)

luq*_*qui 11

是的。那将被称为Dual