Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type Flow es = FlowT es Identity
- runFlow :: Flow es a -> V (a ': es)
- data FlowT es m a
- runFlowT :: FlowT es m a -> m (V (a ': es))
- mapFlowT :: (m (V (a ': es)) -> n (V (b ': es'))) -> FlowT es m a -> FlowT es' n b
- liftFlowT :: (Monad m, LiftVariant es es') => FlowT es m a -> FlowT es' m a
- success :: Monad m => a -> FlowT '[] m a
- throwE :: (Monad m, e :< es) => e -> FlowT es m a
- catchE :: forall e es' es'' es a m. (Monad m, e :< es, LiftVariant (Remove e es) es', LiftVariant es'' es') => FlowT es m a -> (e -> FlowT es'' m a) -> FlowT es' m a
- module Haskus.Utils.Variant
Documentation
FlowT
Instances
MonadTrans (FlowT e) Source # | |
Defined in Haskus.Utils.Variant.Flow | |
Monad m => Monad (FlowT es m) Source # | |
Functor m => Functor (FlowT es m) Source # | |
(Functor m, Monad m) => Applicative (FlowT es m) Source # | |
Defined in Haskus.Utils.Variant.Flow | |
Foldable m => Foldable (FlowT es m) Source # | |
Defined in Haskus.Utils.Variant.Flow fold :: Monoid m0 => FlowT es m m0 -> m0 # foldMap :: Monoid m0 => (a -> m0) -> FlowT es m a -> m0 # foldr :: (a -> b -> b) -> b -> FlowT es m a -> b # foldr' :: (a -> b -> b) -> b -> FlowT es m a -> b # foldl :: (b -> a -> b) -> b -> FlowT es m a -> b # foldl' :: (b -> a -> b) -> b -> FlowT es m a -> b # foldr1 :: (a -> a -> a) -> FlowT es m a -> a # foldl1 :: (a -> a -> a) -> FlowT es m a -> a # toList :: FlowT es m a -> [a] # null :: FlowT es m a -> Bool # length :: FlowT es m a -> Int # elem :: Eq a => a -> FlowT es m a -> Bool # maximum :: Ord a => FlowT es m a -> a # minimum :: Ord a => FlowT es m a -> a # | |
Traversable m => Traversable (FlowT es m) Source # | |
Defined in Haskus.Utils.Variant.Flow | |
MonadIO m => MonadIO (FlowT es m) Source # | |
Defined in Haskus.Utils.Variant.Flow | |
Show (m (V (a ': es))) => Show (FlowT es m a) Source # | |
liftFlowT :: (Monad m, LiftVariant es es') => FlowT es m a -> FlowT es' m a Source #
Lift a FlowT into another
catchE :: forall e es' es'' es a m. (Monad m, e :< es, LiftVariant (Remove e es) es', LiftVariant es'' es') => FlowT es m a -> (e -> FlowT es'' m a) -> FlowT es' m a Source #
Handle an exception.
Reexport
module Haskus.Utils.Variant