Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Data.Stream.Except
Synopsis
- data StreamExcept a m e
- = FinalExcept (Final (ExceptT e m) a)
- | InitialExcept (OptimizedStreamT (ExceptT e m) a)
- toFinal :: Functor m => StreamExcept a m e -> Final (ExceptT e m) a
- runStreamExcept :: StreamExcept a m e -> OptimizedStreamT (ExceptT e m) a
- safely :: Monad m => StreamExcept a m Void -> OptimizedStreamT m a
Documentation
data StreamExcept a m e Source #
A stream that can terminate with an exception.
In automaton
, such streams mainly serve as a vehicle to bring control flow to AutomatonExcept
(which is based on StreamExcept
), and the docs there apply here as well.
StreamExcept
is not only a Monad
, it also has more efficient Selective
, Applicative
, and Functor
interfaces.
Constructors
FinalExcept (Final (ExceptT e m) a) | When using |
InitialExcept (OptimizedStreamT (ExceptT e m) a) | This is usually the faster encoding, as it can be optimized by GHC. |
Instances
MFunctor (StreamExcept a :: (Type -> Type) -> Type -> Type) Source # | |
Defined in Data.Stream.Except Methods hoist :: forall m n (b :: k). Monad m => (forall a0. m a0 -> n a0) -> StreamExcept a m b -> StreamExcept a n b # | |
MonadTrans (StreamExcept a) Source # | |
Defined in Data.Stream.Except Methods lift :: Monad m => m a0 -> StreamExcept a m a0 # | |
Monad m => Applicative (StreamExcept a m) Source # | |
Defined in Data.Stream.Except Methods pure :: a0 -> StreamExcept a m a0 # (<*>) :: StreamExcept a m (a0 -> b) -> StreamExcept a m a0 -> StreamExcept a m b # liftA2 :: (a0 -> b -> c) -> StreamExcept a m a0 -> StreamExcept a m b -> StreamExcept a m c # (*>) :: StreamExcept a m a0 -> StreamExcept a m b -> StreamExcept a m b # (<*) :: StreamExcept a m a0 -> StreamExcept a m b -> StreamExcept a m a0 # | |
Monad m => Functor (StreamExcept a m) Source # | |
Defined in Data.Stream.Except Methods fmap :: (a0 -> b) -> StreamExcept a m a0 -> StreamExcept a m b # (<$) :: a0 -> StreamExcept a m b -> StreamExcept a m a0 # | |
Monad m => Monad (StreamExcept a m) Source # |
|
Defined in Data.Stream.Except Methods (>>=) :: StreamExcept a m a0 -> (a0 -> StreamExcept a m b) -> StreamExcept a m b # (>>) :: StreamExcept a m a0 -> StreamExcept a m b -> StreamExcept a m b # return :: a0 -> StreamExcept a m a0 # | |
Monad m => Selective (StreamExcept a m) Source # | |
Defined in Data.Stream.Except Methods select :: StreamExcept a m (Either a0 b) -> StreamExcept a m (a0 -> b) -> StreamExcept a m b # |
runStreamExcept :: StreamExcept a m e -> OptimizedStreamT (ExceptT e m) a Source #
safely :: Monad m => StreamExcept a m Void -> OptimizedStreamT m a Source #