definitive-base-2.3: The base modules of the Definitive framework.

Safe HaskellNone
LanguageHaskell2010

Algebra.Classes

Synopsis

Documentation

class Functor f where Source

Methods

map :: (a -> b) -> f a -> f b Source

class Applicative m => Monad m where Source

Minimal complete definition

Nothing

Methods

join :: m (m a) -> m a Source

(>>=) :: m a -> (a -> m b) -> m b infixl 1 Source

Instances

Monad [] 
Monad IO 
Monad Maybe 
Monad Tree 
Monad Interleave 
Monad Id 
Monad Strict 
Monad TimeVal 
Monad ((->) a) 
Monad (Either a) 
Monoid w => Monad ((,) w) 
(Monoid k, Ord k) => Monad (Increasing k) 
MonadFix m => Monad (Backwards m) 
Monad (ContT m) 
Monad m => Monad (StrictT m) 
Monad m => Monad (MaybeT m) 
Monad m => Monad (TreeT m) 
Monad m => Monad (ListT m) 
Applicative m => Monad (Cofree m) 
Functor f => Monad (Free f) 
Monad (LogicT m) 
(Traversable g, Monad f, Monad g) => Monad ((:.:) f g) 
(Monad f, Monad g, Traversable f) => Monad (Compose' f g) 
Monad m => Monad (StateT s m) 
Monad m => Monad (ReaderT r m) 
(Monoid w, Monad m) => Monad (WriterT w m) 
Monad m => Monad (EitherT e m) 
(Ring t, Monad m) => Monad (ProbT t m) 
(Monoid w, SubSemi a w, Monad m) => Monad (CounterT w a m) 
(Monoid w, Monad m) => Monad (RWST r w s m) 

class Counit w where Source

Methods

extract :: w a -> a Source

Instances

Counit (Cofree w) 
Counit f => Counit (Free f) 

class (Functor w, Counit w) => Comonad w where Source

Minimal complete definition

Nothing

Methods

duplicate :: w a -> w (w a) Source

(=>>) :: w a -> (w a -> b) -> w b infixl 1 Source

Instances

Functor w => Comonad (Cofree w) 
Comonad f => Comonad (Free f) 

class Monad m => MonadFix m where Source

The class of all monads that have a fixpoint

Methods

mfix :: (a -> m a) -> m a Source

Instances

class MonadTrans t => ConcreteMonad t where Source

Methods

generalize :: Monad m => t Id a -> t m a Source

class Monad m => MonadState s m | m -> s where Source

Minimal complete definition

get

Methods

get :: m s Source

put :: s -> m () Source

modify :: (s -> s) -> m () Source

Instances

MonadState s m => MonadState s (ListT m) 
MonadState s m => MonadState s (Free m) 
MonadState s m => MonadState s (LogicT m) 
(Traversable g, Monad g, MonadState s f) => MonadState s ((:.:) f g) 
(Traversable f, Monad f, MonadState s g) => MonadState s (Compose' f g) 
Monad m => MonadState s (StateT s m) 
MonadState s m => MonadState s (ReaderT r m) 
(Monoid w, MonadState r m) => MonadState r (WriterT w m) 
(MonadState s m, Monoid w, SubSemi acc w) => MonadState s (CounterT w acc m) 
(Monad m, Monoid w) => MonadState s (RWST r w s m) 
MonadState (IO ()) IO 

class Monad m => MonadReader r m | m -> r where Source

Methods

ask :: m r Source

local :: (r -> r) -> m a -> m a Source

Instances

MonadReader r ((->) r) 
MonadReader r m => MonadReader r (Free m) 
(Traversable g, Monad g, MonadReader r f) => MonadReader r ((:.:) f g) 
(Traversable f, Monad f, MonadReader r g) => MonadReader r (Compose' f g) 
MonadReader r m => MonadReader r (StateT s m) 
Monad m => MonadReader r (ReaderT r m) 
(Monoid w, MonadReader r m) => MonadReader r (WriterT w m) 
(Monad m, Monoid w) => MonadReader r (RWST r w s m) 

class (Monad m, Monoid w) => MonadWriter w m | m -> w where Source

Methods

tell :: w -> m () Source

listen :: m a -> m (w, a) Source

censor :: m (a, w -> w) -> m a Source

Instances

Monoid w => MonadWriter w ((,) w) 
MonadWriter w m => MonadWriter w (ListT m) 
MonadWriter w m => MonadWriter w (Free m) 
(Traversable g, Monad g, MonadWriter w f) => MonadWriter w ((:.:) f g) 
(Traversable f, Monad f, MonadWriter w g) => MonadWriter w (Compose' f g) 
MonadWriter w m => MonadWriter w (StateT s m) 
MonadWriter w m => MonadWriter w (ReaderT r m) 
(Monoid w, Monad m) => MonadWriter w (WriterT w m) 
(Monad m, SubSemi acc w, Monoid w) => MonadWriter w (CounterT w acc m) 
(Monad m, Monoid w) => MonadWriter w (RWST r w s m) 
(Ring t, Monad m) => MonadWriter (Product t) (ProbT t m) 

class (SubSemi acc w, MonadWriter w m) => MonadCounter w acc m | m -> acc where Source

Methods

getCounter :: m acc Source

Instances

MonadCounter w a m => MonadCounter w a (Free m) 
MonadCounter w acc m => MonadCounter w acc (StateT s m) 
MonadCounter w acc m => MonadCounter w acc (ReaderT r m) 
(Monad m, Monoid w, SubSemi acc w) => MonadCounter w acc (CounterT w acc m) 

class Monad m => MonadIO m where Source

Methods

liftIO :: IO a -> m a Source

Instances

MonadIO IO 
(MonadIO m, MonadTrans t, Monad (t m)) => MonadIO (t m) 
MonadIO m => MonadIO (Free m) 

class Monad m => MonadList m where Source

Methods

fork :: [a] -> m a Source

Instances

MonadList [] 
Monad m => MonadList (ListT m) 
MonadList m => MonadList (Free m) 
MonadList m => MonadList (StateT s m) 
MonadList m => MonadList (ReaderT r m) 
(Monoid w, MonadList m) => MonadList (WriterT w m) 
(Monad m, Invertible t) => MonadList (ProbT t m) 
(Monoid w, MonadList m) => MonadList (RWST r w s m) 

class Monad m => MonadCont m where Source

Methods

callCC :: (forall b. (a -> m b) -> m b) -> m a Source

Instances

MonadCont (ContT m) 
MonadCont m => MonadCont (StateT s m) 
MonadCont m => MonadCont (ReaderT r m) 
(Monoid w, MonadCont m) => MonadCont (WriterT w m) 
(Monoid w, MonadCont m) => MonadCont (RWST r w s m) 

class Monad m => MonadError e m | m -> e where Source

Methods

throw :: e -> m a Source

catch :: (e -> m a) -> m a -> m a Source

class MonadFix t => MonadFuture m t | t -> m where Source

Methods

future :: m a -> t a Source

Instances

MonadFix m => MonadFuture m (Backwards m) 
MonadFuture m t => MonadFuture m (Free t) 
(Monad m, MonadFuture n m) => MonadFuture n (StateT s m) 
(Monad m, MonadFuture n m) => MonadFuture n (ReaderT r m) 
(Monad m, Monoid w, MonadFuture n m) => MonadFuture n (WriterT w m) 
(Monad m, Monoid w, SubSemi acc w, MonadFuture n m) => MonadFuture n (CounterT w acc m) 
(Monad m, Monoid w, MonadFuture n m) => MonadFuture n (RWST r w s m)