-- 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.7 -- | 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 newtype Max a Max :: a -> Max a runMax :: Max a -> a newtype Min a Min :: a -> Min a runMin :: Min a -> a newtype BoundedMax a BoundedMax :: Maybe a -> BoundedMax a runBoundedMax :: BoundedMax a -> Maybe a newtype BoundedMin a BoundedMin :: Maybe a -> BoundedMin a runBoundedMin :: BoundedMin a -> Maybe a instance Eq a => Eq (Max a) instance Ord a => Ord (Max a) instance Show a => Show (Max a) instance Read a => Read (Max a) instance Eq a => Eq (Min a) instance Ord a => Ord (Min a) instance Show a => Show (Min a) instance Read a => Read (Min a) instance Eq a => Eq (BoundedMax a) instance Ord a => Ord (BoundedMax a) instance Show a => Show (BoundedMax a) instance Read a => Read (BoundedMax a) instance Eq a => Eq (BoundedMin a) instance Ord a => Ord (BoundedMin a) instance Show a => Show (BoundedMin a) instance Read a => Read (BoundedMin a) instance Ord a => Monoid (BoundedMin a) instance Ord a => Monoid (BoundedMax a) instance Ord a => Semigroup (Min a) instance Ord a => Semigroup (Max 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)