objective-1.0.3: Extensible objects

Safe HaskellTrustworthy
LanguageHaskell2010

Control.Object.Mortal

Synopsis

Documentation

newtype Mortal f g a Source

Object with a final result.

Object f g ≡ Mortal f g Void

Constructors

Mortal 

Fields

unMortal :: Object f (EitherT a g)
 

Instances

MonadTrans (Mortal f) 
Monad m => Monad (Mortal f m) 
(Functor m, Monad m) => Functor (Mortal f m) 
(Functor m, Monad m) => Applicative (Mortal f m) 

mortal :: (forall x. f x -> EitherT a m (x, Mortal f m a)) -> Mortal f m a Source

Construct a mortal in a Object construction manner.

mortal_ :: Object f (EitherT () g) -> Mortal f g () Source

Restricted Mortal constuctor which can be applied to transit, fromFoldable without ambiguousness.

runMortal :: Mortal f m a -> f x -> EitherT a m (x, Mortal f m a) Source

Send a message to a mortal.

immortal :: Monad m => Object f m -> Mortal f m x Source

Turn an immortal into a mortal with eternal life.

apprisesOf :: (Monad m, Monoid r) => ((Mortal f m b -> WriterT r m (Maybe (Mortal f m b))) -> s -> WriterT r m s) -> f a -> (a -> r) -> (b -> r) -> StateT s m r Source

Send a message to mortals in a container.

apprises :: (Witherable t, Monad m, Applicative m, Monoid r) => f a -> (a -> r) -> (b -> r) -> StateT (t (Mortal f m b)) m r Source

Send a message to mortals in a container.

apprise :: (Witherable t, Monad m, Applicative m) => f a -> StateT (t (Mortal f m r)) m ([a], [r]) Source

Send a message to mortals in a container.

withBuilder :: Functor f => ((a -> Endo [a]) -> f (Endo [a])) -> f [a] Source