-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Lots of Monoids
--
-- Lots of Monoids
@package monoids
@version 0.1.2
module Data.Monoid.Reducer
class (Monoid m) => Reducer c m
unit :: (Reducer c m) => c -> m
snoc :: (Reducer c m) => m -> c -> m
cons :: (Reducer c m) => c -> m -> m
foldMapReduce :: (Foldable f, Reducer e m) => (a -> e) -> f a -> m
foldReduce :: (Foldable f, Reducer e m) => f e -> m
instance (Ord k) => Reducer (k, v) (Map k v)
instance Reducer (Int, v) (IntMap v)
instance (Ord a) => Reducer a (Set a)
instance Reducer Int IntSet
instance Reducer a (Seq a)
instance (Measured v a) => Reducer a (FingerTree v a)
instance (Measured v a) => Monoid (FingerTree v a)
instance Reducer a (Last a)
instance Reducer (Maybe a) (Last a)
instance Reducer a (First a)
instance Reducer (Maybe a) (First a)
instance (Num a) => Reducer a (Product a)
instance (Num a) => Reducer a (Sum a)
instance (Monoid a) => Reducer a (Dual a)
instance Reducer (a -> a) (Endo a)
instance Reducer Bool All
instance Reducer Bool Any
instance Reducer c ()
instance Reducer c [c]
instance (Reducer c m, Reducer c n, Reducer c o, Reducer c p) => Reducer c (m, n, o, p)
instance (Reducer c m, Reducer c n, Reducer c o) => Reducer c (m, n, o)
instance (Reducer c m, Reducer c n) => Reducer c (m, n)
module Data.Monoid.Reducer.Char
class (Reducer Char m) => CharReducer m
fromChar :: (CharReducer m) => Char -> m
invalidChar :: (CharReducer m) => [Word8] -> m
instance CharReducer [Char]
instance (CharReducer m, CharReducer m', CharReducer m'', CharReducer m''') => CharReducer (m, m', m'', m''')
instance (CharReducer m, CharReducer m', CharReducer m'') => CharReducer (m, m', m'')
instance (CharReducer m, CharReducer m') => CharReducer (m, m')
module Data.Monoid.Reducer.With
newtype WithReducer c m
WithReducer :: (m, c) -> WithReducer c m
runWithReducer :: WithReducer c m -> (m, c)
withoutReducer :: c WithReducer m -> c
instance (Reducer c m) => Measured m (WithReducer c m)
instance (Reducer c m) => Reducer (WithReducer c m) m
module Data.Monoid.Unit
newtype Unit c
Unit :: () -> Unit c
getUnit :: Unit c -> ()
instance Pointed Unit
instance Functor Unit
instance CharReducer (Unit Char)
instance Reducer c (Unit c)
instance Monoid (Unit c)
module Data.Monoid.Ord
-- | The Monoid (max,minBound)
newtype Max a
Max :: a -> Max a
getMax :: Max a -> a
-- | The Monoid given by (min,maxBound)
newtype Min a
Min :: a -> Min a
getMin :: Min a -> a
-- | The Monoid (max,Nothing) over
-- Maybe a where Nothing is the bottom element
newtype MaxPriority a
MaxPriority :: Maybe a -> MaxPriority a
getMaxPriority :: MaxPriority a -> Maybe a
-- | The Monoid (min,Nothing) over
-- Maybe a where Nothing is the top element
newtype MinPriority a
MinPriority :: Maybe a -> MinPriority a
getMinPriority :: MinPriority a -> Maybe a
instance (Eq a) => Eq (MinPriority a)
instance (Show a) => Show (MinPriority a)
instance (Read a) => Read (MinPriority a)
instance (Eq a) => Eq (MaxPriority a)
instance (Ord a) => Ord (MaxPriority a)
instance (Show a) => Show (MaxPriority a)
instance (Read a) => Read (MaxPriority 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 (Bounded a) => Bounded (Min 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 (Bounded a) => Bounded (Max a)
instance Pointed MinPriority
instance Functor MinPriority
instance (Ord a) => Reducer (Maybe a) (MinPriority a)
instance (Ord a) => Monoid (MinPriority a)
instance (Ord a) => Ord (MinPriority a)
instance Pointed MaxPriority
instance Functor MaxPriority
instance (Ord a) => Reducer (Maybe a) (MaxPriority a)
instance (Ord a) => Monoid (MaxPriority a)
instance Copointed Min
instance Pointed Min
instance Functor Min
instance (Ord a, Bounded a) => Reducer a (Min a)
instance (Ord a, Bounded a) => Monoid (Min a)
instance Copointed Max
instance Pointed Max
instance Functor Max
instance (Ord a, Bounded a) => Reducer a (Max a)
instance (Ord a, Bounded a) => Monoid (Max a)
module Data.Monoid.Monad.Writer.Strict
instance (Monad m, Monoid w, Monoid n) => Reducer (m n) (WriterT w m n)
instance (Monad m, Monoid w, Monoid n) => Reducer n (WriterT w m n)
instance (Monoid w, Monoid m) => Reducer m (Writer w m)
instance (Monad m, Monoid w, Monoid n) => Monoid (WriterT w m n)
instance (Monoid w, Monoid m) => Monoid (Writer w m)
module Data.Monoid.Monad.Writer.Lazy
instance (Monad m, Monoid w, Monoid n) => Reducer (m n) (WriterT w m n)
instance (Monad m, Monoid w, Monoid n) => Reducer n (WriterT w m n)
instance (Monoid w, Monoid m) => Reducer m (Writer w m)
instance (Monad m, Monoid w, Monoid n) => Monoid (WriterT w m n)
instance (Monoid w, Monoid m) => Monoid (Writer w m)
module Data.Monoid.Monad.ST.Strict
instance (Monoid m) => Reducer m (ST s m)
instance (Monoid m) => Monoid (ST s m)
module Data.Monoid.Monad.STM
instance (Monoid m) => Reducer m (STM m)
instance (Monoid m) => Monoid (STM m)
module Data.Monoid.Monad.ST.Lazy
instance (Monoid m) => Reducer m (ST s m)
instance (Monoid m) => Monoid (ST s m)
module Data.Monoid.Monad.State.Strict
instance (Monad m, Monoid n) => Reducer (m n) (StateT s m n)
instance (Monad m, Monoid n) => Reducer n (StateT s m n)
instance (Monoid m) => Reducer m (State s m)
instance (Monad m, Monoid n) => Monoid (StateT s m n)
instance (Monoid m) => Monoid (State s m)
module Data.Monoid.Monad.State.Lazy
instance (Monad m, Monoid n) => Reducer (m n) (StateT s m n)
instance (Monad m, Monoid n) => Reducer n (StateT s m n)
instance (Monoid m) => Reducer m (State s m)
instance (Monad m, Monoid n) => Monoid (StateT s m n)
instance (Monoid m) => Monoid (State s m)
module Data.Monoid.Monad.RWS.Strict
instance (Monad m, Monoid w, Monoid n) => Reducer (m n) (RWST r w s m n)
instance (Monad m, Monoid w, Monoid n) => Reducer n (RWST r w s m n)
instance (Monoid w, Monoid m) => Reducer m (RWS r w s m)
instance (Monad m, Monoid w, Monoid n) => Monoid (RWST r w s m n)
instance (Monoid w, Monoid m) => Monoid (RWS r w s m)
module Data.Monoid.Monad.RWS.Lazy
instance (Monad m, Monoid w, Monoid n) => Reducer (m n) (RWST r w s m n)
instance (Monad m, Monoid w, Monoid n) => Reducer n (RWST r w s m n)
instance (Monoid w, Monoid m) => Reducer m (RWS r w s m)
instance (Monad m, Monoid w, Monoid n) => Monoid (RWST r w s m n)
instance (Monoid w, Monoid m) => Monoid (RWS r w s m)
module Data.Monoid.Monad.Reader
instance (Monad m, Monoid n) => Reducer (m n) (ReaderT e m n)
instance (Monad m, Monoid n) => Reducer n (ReaderT e m n)
instance (Monad m, Monoid n) => Monoid (ReaderT e m n)
instance (Monoid m) => Reducer m (Reader e m)
instance (Monoid m) => Monoid (Reader e m)
module Data.Monoid.Monad.IO
instance (Monoid m) => Reducer (STM m) (IO m)
instance (Monoid m) => Reducer (ST RealWorld m) (IO m)
instance (Monoid m) => Reducer m (IO m)
instance (Monoid m) => Monoid (IO m)
module Data.Monoid.Monad.Identity
instance (Monoid m) => Reducer m (Identity m)
instance (Monoid m) => Monoid (Identity m)
module Data.Monoid.Monad.Either
instance (Monad m, Monoid n) => Reducer (m n) (EitherT e m n)
instance (Monad m, Monoid n) => Reducer n (EitherT e m n)
instance (Monad m, Monoid n) => Monoid (EitherT e m n)
instance (Monoid m) => Reducer m (Either e m)
instance (Monoid m) => Monoid (Either e m)
module Data.Monoid.Monad.Cont
instance (Monad m, Monoid n) => Reducer (m n) (ContT r m n)
instance (Monad m, Monoid n) => Reducer n (ContT r m n)
instance (Monoid m) => Reducer m (Cont r m)
instance (Monad m, Monoid n) => Monoid (ContT r m n)
instance (Monoid m) => Monoid (Cont r m)
module Data.Monoid.Monad
newtype Action m
Action :: m () -> Action m
getAction :: Action m -> m ()
newtype MonadSum m a
MonadSum :: m a -> MonadSum m a
getMonadSum :: MonadSum m a -> m a
newtype ActionWith m n
ActionWith :: m n -> ActionWith m n
getActionWith :: ActionWith m n -> m n
instance (Eq (m a)) => Eq (MonadSum m a)
instance (Ord (m a)) => Ord (MonadSum m a)
instance (Show (m a)) => Show (MonadSum m a)
instance (Read (m a)) => Read (MonadSum m a)
instance (Functor m) => Functor (MonadSum m)
instance (Monad m) => Monad (MonadSum m)
instance (MonadPlus m) => MonadPlus (MonadSum m)
instance (Monad m, Monoid n) => Reducer (m n) (ActionWith m n)
instance (Monad m, Monoid n) => Monoid (ActionWith m n)
instance (MonadPlus m) => Reducer (m a) (MonadSum m a)
instance (MonadPlus m) => Monoid (MonadSum m a)
instance (Monad m) => Reducer (m a) (Action m)
instance (Monad m) => Monoid (Action m)
module Data.Monoid.Map
data UnionWith k m
instance (Ord k, Monoid m) => Reducer (Map k m) (UnionWith k m)
instance (Ord k, Monoid m) => Monoid (UnionWith k m)
module Data.Monoid.Lexical.UTF8.Decoder
data UTF8 m
runUTF8 :: (CharReducer m) => UTF8 m -> m
instance Pointed UTF8
instance Functor UTF8
instance (CharReducer m) => Reducer Word8 (UTF8 m)
instance (CharReducer m) => Monoid (UTF8 m)
module Data.Monoid.Lexical.SourcePosition
data SourcePosition file
type SourceLine = Int
type SourceColumn = Int
sourceLine :: SourcePosition f -> Maybe SourceLine
sourceColumn :: SourcePosition f -> Maybe SourceColumn
startOfFile :: f -> SourcePosition f
showSourcePosition :: SourcePosition String -> String
instance (Read file) => Read (SourcePosition file)
instance (Show file) => Show (SourcePosition file)
instance (Eq file) => Eq (SourcePosition file)
instance CharReducer (SourcePosition file)
instance Reducer Char (SourcePosition file)
instance Monoid (SourcePosition file)
instance FunctorPlus SourcePosition
instance FunctorZero SourcePosition
instance Pointed SourcePosition
instance Functor SourcePosition
module Data.Monoid.IntMap
data UnionWith m
instance (Monoid m) => Reducer (IntMap m) (UnionWith m)
instance (Monoid m) => Monoid (UnionWith m)
module Data.Monoid.Generator
class Generator c where { type family Elem c :: *; { mapFrom f = mappend . mapReduce f mapTo f m = mappend m . mapReduce f mapReduce f = mapTo f mempty } }
mapReduce :: (Generator c, Reducer e m) => (Elem c -> e) -> c -> m
mapTo :: (Generator c, Reducer e m) => (Elem c -> e) -> m -> c -> m
mapFrom :: (Generator c, Reducer e m) => (Elem c -> e) -> c -> m -> m
reduce :: (Generator c, Reducer (Elem c) m) => c -> m
newtype Keys c
Keys :: c -> Keys c
getKeys :: Keys c -> c
newtype Values c
Values :: c -> Values c
getValues :: Values c -> c
newtype Char8 c
Char8 :: c -> Char8 c
getChar8 :: Char8 c -> c
instance Generator (Values (Map k v))
instance Generator (Values (IntMap v))
instance Generator (Keys (Map k v))
instance Generator (Keys (IntMap v))
instance Generator (Map k v)
instance Generator (IntMap v)
instance Generator (Set a)
instance Generator IntSet
instance Generator (Seq c)
instance (Measured v e) => Generator (FingerTree v e)
instance Generator [c]
instance Generator Text
instance Generator (Char8 ByteString)
instance Generator (Char8 ByteString)
instance Generator ByteString
instance Generator ByteString
module Data.Monoid.Lexical.Words
data Words m
runWords :: Words m -> [m]
data Lines m
runLines :: Lines m -> [m]
data Unspaced m
data Unlined m
wordsFrom :: (Generator c, (Elem c) ~ Char, Reducer Char m, Reducer Char n, Reducer Char o) => m -> c -> [(m, n, o)]
linesFrom :: (Generator c, (Elem c) ~ Char, Reducer Char m, Reducer Char n, Reducer Char o) => m -> c -> [(m, n, o)]
instance (Eq m) => Eq (Unlined m)
instance (Ord m) => Ord (Unlined m)
instance (Show m) => Show (Unlined m)
instance (Read m) => Read (Unlined m)
instance (Monoid m) => Monoid (Unlined m)
instance (Eq m) => Eq (Unspaced m)
instance (Ord m) => Ord (Unspaced m)
instance (Show m) => Show (Unspaced m)
instance (Read m) => Read (Unspaced m)
instance (Monoid m) => Monoid (Unspaced m)
instance (Show m) => Show (Lines m)
instance (Read m) => Read (Lines m)
instance (Monoid m) => Monoid (Lines m)
instance Functor Lines
instance (Show m) => Show (Words m)
instance (Read m) => Read (Words m)
instance Copointed Unlined
instance Pointed Unlined
instance Functor Unlined
instance (CharReducer m) => CharReducer (Unlined m)
instance (Reducer Char m) => Reducer Char (Unlined m)
instance Copointed Unspaced
instance Pointed Unspaced
instance Functor Unspaced
instance (CharReducer m) => CharReducer (Unspaced m)
instance (Reducer Char m) => Reducer Char (Unspaced m)
instance (Reducer Char m) => Reducer Char (Lines m)
instance Functor Words
instance (Reducer Char m) => Reducer Char (Words m)
instance (Monoid m) => Monoid (Words m)
module Data.Monoid.Reducer.Sugar
fromInteger :: (Reducer Integer m) => Integer -> m
fromString :: (Reducer Char m) => String -> m
module Data.Monoid.FromString
data FromString m
FromString :: m -> FromString m
getFromString :: FromString m -> m
instance Functor FromString
instance Copointed FromString
instance Pointed FromString
instance (Reducer Char m) => IsString (FromString m)
instance (Reducer Char m) => Reducer Char (FromString m)
instance (Monoid m) => Monoid (FromString m)
module Data.Monoid.Categorical
-- | The Monoid of endomorphisms over some object in an arbitrary
-- Category
data Endo k a
Endo :: k a a -> Endo k a
getEndo :: Endo k a -> k a a
-- | A Monoid is just a Category with one object.
data Mon m n o
Mon :: m -> Mon m a a
runMon :: Mon m m m -> m
instance (Monoid m) => Category (Mon m)
instance (Category k) => Monoid (Endo k a)
module Data.Monoid.Applicative
newtype Traversal f
Traversal :: f () -> Traversal f
getTraversal :: Traversal f -> f ()
newtype Alternate f a
Alternate :: f a -> Alternate f a
getAlternate :: Alternate f a -> f a
newtype TraversalWith f n
TraversalWith :: f n -> TraversalWith f n
getTraversalWith :: TraversalWith f n -> f n
instance (Eq (f a)) => Eq (Alternate f a)
instance (Ord (f a)) => Ord (Alternate f a)
instance (Show (f a)) => Show (Alternate f a)
instance (Read (f a)) => Read (Alternate f a)
instance (Functor f) => Functor (Alternate f)
instance (Applicative f) => Applicative (Alternate f)
instance (Alternative f) => Alternative (Alternate f)
instance (Pointed f) => Pointed (TraversalWith f)
instance (Functor f) => Functor (TraversalWith f)
instance (Applicative f, Monoid n) => Reducer (f n) (TraversalWith f n)
instance (Applicative f, Monoid n) => Monoid (TraversalWith f n)
instance (Pointed f) => Pointed (Alternate f)
instance (Alternative f) => Reducer (f a) (Alternate f a)
instance (Alternative f) => Monoid (Alternate f a)
instance (Applicative f) => Reducer (f a) (Traversal f)
instance (Applicative f) => Monoid (Traversal f)
module Data.Monoid.Generator.Combinators
traverse_ :: (Generator c, Applicative f) => (Elem c -> f b) -> c -> f ()
for_ :: (Generator c, Applicative f) => c -> (Elem c -> f b) -> f ()
mapM_ :: (Generator c, Monad m) => (Elem c -> m b) -> c -> m ()
forM_ :: (Generator c, Monad m) => c -> (Elem c -> m b) -> m ()
foldMap' :: (Monoid m, Generator c) => (Elem c -> m) -> c -> m
concatMap :: (Generator c) => (Elem c -> [b]) -> c -> [b]
and :: (Generator c, (Elem c) ~ Bool) => c -> Bool
or :: (Generator c, (Elem c) ~ Bool) => c -> Bool
any :: (Generator c) => (Elem c -> Bool) -> c -> Bool
all :: (Generator c) => (Elem c -> Bool) -> c -> Bool
sum :: (Generator c, Num (Elem c)) => c -> Elem c
product :: (Generator c, Num (Elem c)) => c -> Elem c
elem :: (Generator c, Eq (Elem c)) => Elem c -> c -> Bool
notElem :: (Generator c, Eq (Elem c)) => Elem c -> c -> Bool
filter :: (Generator c, Reducer (Elem c) m) => (Elem c -> Bool) -> c -> m
find :: (Generator c) => (Elem c -> Bool) -> c -> Maybe (Elem c)
module Data.Monoid.Additive
plus :: (Monoid m) => m -> m -> m
zero :: (Monoid m) => m
module Data.Monoid.Additive.Sugar
(+) :: (Monoid m) => m -> m -> m
module Data.Monoid.Multiplicative
class MultiplicativeMonoid m
one :: (MultiplicativeMonoid m) => m
times :: (MultiplicativeMonoid m) => m -> m -> m
instance (MultiplicativeMonoid m) => MultiplicativeMonoid (FromString m)
instance (MultiplicativeMonoid m) => MultiplicativeMonoid (Identity m)
instance (Monoid m) => MultiplicativeMonoid (Seq m)
instance (Measured v m, Monoid m) => MultiplicativeMonoid (FingerTree v m)
instance (Monoid m) => MultiplicativeMonoid [m]
module Data.Monoid.Multiplicative.Sugar
(*) :: (MultiplicativeMonoid r) => r -> r -> r
module Data.Monoid.Multiplicative.Transformer
data Log m
Log :: m -> Log m
getLog :: Log m -> m
data Exp m
Exp :: m -> Exp m
getExp :: Exp m -> m
instance (Monoid m) => MultiplicativeMonoid (Exp m)
instance (MultiplicativeMonoid m) => Monoid (Log m)
module Data.Ring.Semi.Near
class (MultiplicativeMonoid m, Monoid m) => Seminearring m
instance (Seminearring m) => Seminearring (FromString m)
instance (Seminearring m) => Seminearring (Identity m)
instance (Measured v m, Monoid m) => Seminearring (FingerTree v m)
instance (Monoid m) => Seminearring (Seq m)
instance (Monoid m) => Seminearring [m]
module Data.Ring.Semi
class (Seminearring a) => Semiring a
module Data.Ring.Semi.Ord
newtype Order a
Order :: a -> Order a
getOrder :: Order a -> a
data Priority a
MinBound :: Priority a
Priority :: a -> Priority a
MaxBound :: Priority a
instance (Eq a) => Eq (Priority a)
instance (Read a) => Read (Priority a)
instance (Show a) => Show (Priority a)
instance (Eq a) => Eq (Order a)
instance (Ord a) => Ord (Order a)
instance (Read a) => Read (Order a)
instance (Show a) => Show (Order a)
instance (Bounded a) => Bounded (Order a)
instance (Arbitrary a) => Arbitrary (Order a)
instance Pointed Priority
instance Functor Priority
instance (Ord a) => Reducer (MaxPriority a) (Priority a)
instance (Ord a) => Reducer (MinPriority a) (Priority a)
instance (Ord a) => Reducer a (Priority a)
instance (Ord a) => Semiring (Priority a)
instance (Ord a) => Seminearring (Priority a)
instance (Ord a) => MultiplicativeMonoid (Priority a)
instance (Ord a) => Monoid (Priority a)
instance (Arbitrary a) => Arbitrary (Priority a)
instance (Ord a) => Ord (Priority a)
instance Bounded (Priority a)
instance Copointed Order
instance Pointed Order
instance Functor Order
instance (Bounded a, Ord a) => Reducer a (Order a)
instance (Bounded a, Ord a) => Semiring (Order a)
instance (Bounded a, Ord a) => Seminearring (Order a)
instance (Bounded a, Ord a) => MultiplicativeMonoid (Order a)
instance (Bounded a, Ord a) => Monoid (Order a)
module Data.Ring.Sugar
module Data.Group
class (Monoid a) => Group a
gnegate :: (Group a) => a -> a
minus :: (Group a) => a -> a -> a
instance (Group a) => Group (FromString a)
instance (Group a) => Group (Identity a)
instance (Group a) => Group (Dual a)
instance (Fractional a) => Group (Product a)
instance (Num a) => Group (Sum a)
module Data.Group.Sugar
(-) :: (Group g) => g -> g -> g
negate :: (Group g) => g -> g
module Data.Ring
instance Ring Bool
instance Semiring Bool
instance Seminearring Bool
instance MultiplicativeMonoid Bool
instance Group Bool
instance Monoid Bool
module Data.Ring.FromNum
newtype FromNum a
FromNum :: a -> FromNum a
getFromNum :: FromNum a -> a
instance (Eq a) => Eq (FromNum a)
instance (Show a) => Show (FromNum a)
instance (Num a) => Num (FromNum a)
instance (Num a) => Reducer Integer (FromNum a)
instance (Num a) => Seminearring (FromNum a)
instance (Num a) => MultiplicativeMonoid (FromNum a)
instance (Num a) => Group (FromNum a)
instance (Num a) => Monoid (FromNum a)