-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A semigroup -- -- A semigroup is a binary associative operation @package Semigroup @version 0.0.6 -- | A semigroup is a binary associative operation. module Data.Semigroup -- | A binary operation that must satisfy associativity. Unlike a -- Monoid, an identity in not essential. class Semigroup a (.++.) :: Semigroup a => a -> a -> a -- | A binary associative operation lifted into an applicative functor. (<++>) :: (Applicative f, Semigroup a) => f a -> f a -> f a instance Semigroup ByteString instance Semigroup (IntMap v) instance Semigroup IntSet instance Ord k => Semigroup (Map k v) instance Ord a => Semigroup (Set a) instance Semigroup (Seq a) instance Semigroup [a] instance Semigroup (Last a) instance Semigroup (First a) instance Semigroup a => Semigroup (Maybe a) instance Num a => Semigroup (Sum a) instance Num a => Semigroup (Product a) instance Semigroup (Endo a) instance Semigroup a => Semigroup (Dual a) instance Semigroup Any instance Semigroup All instance Semigroup Ordering instance (Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e) instance (Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d) instance (Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c) instance (Semigroup a, Semigroup b) => Semigroup (a, b) instance Semigroup a => Semigroup (IO a) instance Semigroup b => Semigroup (a -> b) instance Semigroup () instance Monoid a => Semigroup (Identity a)