monoids-0.3.2: Deprecated: Use 'reducers'

Portabilitynon-portable (MPTCs)
Stabilityexperimental
Maintainerekmett@gmail.com
Safe HaskellNone

Data.Monoid.Monad

Contents

Description

Monoid instances for working with a Monad

Synopsis

Actions

newtype Action m Source

An Action uses glues together Monad actions with (>>) in the manner of mapM_ from Data.Foldable. Any values returned by reduced actions are discarded.

Constructors

Action 

Fields

getAction :: m ()
 

Instances

Monad m => Monoid (Action m) 
Monad m => Reducer (m a) (Action m) 

snocAction :: Reducer (m ()) (Action m) => Action m -> m () -> Action mSource

Efficiently avoid needlessly rebinding when using snoc on an action that already returns () A rewrite rule automatically applies this when possible

MonadPlus Monoid

newtype MonadSum m a Source

A MonadSum turns any MonadPlus instance into a Monoid. It also provides a Multiplicative instance for a Monad wrapped around a Monoid and asserts that any MonadPlus applied to a Monoid forms a RightSemiNearRing under these operations.

Constructors

MonadSum 

Fields

getMonadSum :: m a
 

Instances

Monad m => Monad (MonadSum m) 
Monad m => Functor (MonadSum m) 
MonadPlus m => MonadPlus (MonadSum m) 
Monad m => Applicative (MonadSum m) 
MonadPlus m => Reducer (m a) (MonadSum m a) 
Eq (m a) => Eq (MonadSum m a) 
Ord (m a) => Ord (MonadSum m a) 
Read (m a) => Read (MonadSum m a) 
Show (m a) => Show (MonadSum m a) 
MonadPlus m => Monoid (MonadSum m a) 
(Monad m, Monoid a) => Multiplicative (MonadSum m a) 

Lifting Modules

newtype Mon f m Source

if m is a Module over r and f is a Monad then f Mon m is a Module as well

Constructors

Mon 

Fields

getMon :: f m
 

Instances

(Reducer c m, Monad f) => Reducer c (Mon f m) 
Monad f => Monad (Mon f) 
Functor f => Functor (Mon f) 
MonadPlus f => MonadPlus (Mon f) 
Eq (f m) => Eq (Mon f m) 
Ord (f m) => Ord (Mon f m) 
Read (f m) => Read (Mon f m) 
Show (f m) => Show (Mon f m) 
(Monoid m, Monad f) => Monoid (Mon f m) 
(Group m, Monad f) => Group (Mon f m)