module Control.Object.Semigroup (Semigroup (..)) where {- | > When providing a new instance, you should ensure it satisfies the one law: > * Associativity: x <> (y <> z) ≡ (x <> y) <> z -} class Semigroup a where {-# MINIMAL (<>) #-} -- | Infix version of 'binop' (<>) :: a -> a -> a -- | Prefix version of '<>' binop :: a -> a -> a binop = (<>)