-- 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]