objective-0.6.3.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

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

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 -> m (Either a (x, Mortal f m a)) Source

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

reincarnation :: Monad m => (a -> Mortal f m a) -> a -> Object f m Source