-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Haskell 98 semigroups
--
-- Haskell 98 semigroups
@package semigroups
@version 0.3.4
module Data.Semigroup
class Semigroup a
(<>) :: Semigroup a => a -> a -> a
newtype Min a
Min :: a -> Min a
getMin :: Min a -> a
newtype Max a
Max :: a -> Max a
getMax :: Max a -> a
-- | Use Option (First a) -- to get the behavior of
-- Data.Monoid.First
newtype First a
First :: a -> First a
getFirst :: First a -> a
-- | Use Option (Last a) -- to get the behavior of
-- Data.Monoid.Last
newtype Last a
Last :: a -> Last a
getLast :: Last a -> a
newtype WrappedMonoid m
WrapMonoid :: m -> WrappedMonoid m
unwrapMonoid :: WrappedMonoid m -> m
-- | The dual of a monoid, obtained by swapping the arguments of
-- mappend.
newtype Dual a :: * -> *
Dual :: a -> Dual a
getDual :: Dual a -> a
-- | The monoid of endomorphisms under composition.
newtype Endo a :: * -> *
Endo :: (a -> a) -> Endo a
appEndo :: Endo a -> a -> a
-- | Boolean monoid under conjunction.
newtype All :: *
All :: Bool -> All
getAll :: All -> Bool
-- | Boolean monoid under disjunction.
newtype Any :: *
Any :: Bool -> Any
getAny :: Any -> Bool
-- | Monoid under addition.
newtype Sum a :: * -> *
Sum :: a -> Sum a
getSum :: Sum a -> a
-- | Monoid under multiplication.
newtype Product a :: * -> *
Product :: a -> Product a
getProduct :: Product a -> a
newtype Option a
Option :: Maybe a -> Option a
getOption :: Option a -> Maybe a
option :: b -> (a -> b) -> Option a -> b
-- | This lets you use a 'difference list' of a semigroup as a Monoid.
diff :: Semigroup m => m -> Endo m
instance Typeable1 Option
instance Typeable1 WrappedMonoid
instance Typeable1 Last
instance Typeable1 First
instance Typeable1 Max
instance Typeable1 Min
instance Eq a => Eq (Option a)
instance Ord a => Ord (Option a)
instance Show a => Show (Option a)
instance Read a => Read (Option a)
instance Data a => Data (Option a)
instance Eq m => Eq (WrappedMonoid m)
instance Ord m => Ord (WrappedMonoid m)
instance Show m => Show (WrappedMonoid m)
instance Read m => Read (WrappedMonoid m)
instance Data m => Data (WrappedMonoid m)
instance Eq a => Eq (Last a)
instance Ord a => Ord (Last a)
instance Bounded a => Bounded (Last a)
instance Show a => Show (Last a)
instance Read a => Read (Last a)
instance Data a => Data (Last a)
instance Eq a => Eq (First a)
instance Ord a => Ord (First a)
instance Bounded a => Bounded (First a)
instance Show a => Show (First a)
instance Read a => Read (First a)
instance Data a => Data (First a)
instance Eq a => Eq (Max a)
instance Ord a => Ord (Max a)
instance Bounded a => Bounded (Max a)
instance Show a => Show (Max a)
instance Read a => Read (Max a)
instance Data a => Data (Max a)
instance Eq a => Eq (Min a)
instance Ord a => Ord (Min a)
instance Bounded a => Bounded (Min a)
instance Show a => Show (Min a)
instance Read a => Read (Min a)
instance Data a => Data (Min a)
instance Semigroup a => Monoid (Option a)
instance Semigroup a => Semigroup (Option a)
instance Traversable Option
instance Foldable Option
instance MonadFix Option
instance MonadPlus Option
instance Alternative Option
instance Monad Option
instance Applicative Option
instance Functor Option
instance Monoid m => Monoid (WrappedMonoid m)
instance Monoid m => Semigroup (WrappedMonoid m)
instance Semigroup (Last a)
instance Semigroup (First a)
instance (Ord a, Bounded a) => Monoid (Max a)
instance Ord a => Semigroup (Max a)
instance (Ord a, Bounded a) => Monoid (Min a)
instance Ord a => Semigroup (Min a)
instance Semigroup (Last a)
instance Semigroup (First a)
instance Num a => Semigroup (Product a)
instance Num a => Semigroup (Sum a)
instance Semigroup Any
instance Semigroup All
instance Semigroup (Endo a)
instance Semigroup a => Semigroup (Dual a)
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 (Either a b)
instance Semigroup a => Semigroup (Maybe a)
instance Semigroup [a]