Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- witTransStackDict :: forall cm tt m. cm m => ListType (Compose Dict (TransConstraint cm)) tt -> Dict (cm (ApplyStack tt m))
- type IsStack ct = Is (ListType (Compose Dict ct))
- transStackDict :: forall cm tt m. (IsStack (TransConstraint cm) tt, cm m) => Dict (cm (ApplyStack tt m))
- newtype StackT (tt :: [TransKind]) m a = MkStackT {
- unStackT :: ApplyStack tt m a
- stackLift :: forall tt m. (IsStack (TransConstraint Monad) tt, IsStack MonadTrans tt, Monad m) => m --> ApplyStack tt m
- stackHoist :: forall tt ma mb. (MonadTransStackTunnel tt, Monad ma, Monad mb) => (ma --> mb) -> ApplyStack tt ma --> ApplyStack tt mb
- class (MonadTransTunnel t, c (Tunnel t)) => WithTunnelConstraint c t
- type MonadTransStackTunnel tt = (IsStack (TransConstraint Monad) tt, IsStack MonadTransTunnel tt, IsStack MonadTrans tt, IsStack (WithTunnelConstraint Functor) tt, IsStack (WithTunnelConstraint Applicative) tt, IsStack (WithTunnelConstraint Monad) tt, IsStack (WithTunnelConstraint Traversable) tt, IsStack (WithTunnelConstraint MonadInner) tt)
- transStackExcept :: forall tt m e a. (MonadTransStackTunnel tt, Monad m) => ApplyStack tt (ExceptT e m) a -> ApplyStack tt m (Either e a)
- stackUnderliftIO :: forall tt m. (MonadTransStackTunnel tt, MonadIO m) => ApplyStack tt IO --> ApplyStack tt m
- stackBackHoist :: forall tt ma mb. (MonadTransStackUnlift tt, Monad ma, Monad mb) => (ma -/-> mb) -> ApplyStack tt ma -/-> ApplyStack tt mb
- type MonadTransStackUnlift tt = (IsStack (TransConstraint MonadFail) tt, IsStack (TransConstraint MonadIO) tt, IsStack (TransConstraint MonadFix) tt, IsStack (TransConstraint MonadTunnelIO) tt, IsStack (TransConstraint MonadUnliftIO) tt, MonadTransStackTunnel tt, IsStack (WithTunnelConstraint MonadExtract) tt, IsStack MonadTransUnlift tt)
- concatMonadTransStackUnliftDict :: forall tt1 tt2. (MonadTransStackUnlift tt1, MonadTransStackUnlift tt2) => Dict (MonadTransStackUnlift (Concat tt1 tt2))
- stackLiftWithUnlift :: forall tt m. (MonadTransStackUnlift tt, MonadTunnelIO m) => m -/-> ApplyStack tt m
- stackConcatFst :: forall tt1 tt2 m. (MonadTransStackUnlift tt1, MonadTransStackUnlift tt2, Monad m) => ApplyStack tt1 m --> ApplyStack (Concat tt1 tt2) m
- stackConcatSnd :: forall tt1 tt2 m. (MonadTransStackUnlift tt1, MonadTransStackUnlift tt2, Monad m) => ApplyStack tt2 m --> ApplyStack (Concat tt1 tt2) m
- stackCommute :: forall tta ttb m r. (MonadTransStackUnlift tta, MonadTransStackUnlift ttb, MonadTunnelIO m) => ApplyStack tta (ApplyStack ttb m) r -> ApplyStack ttb (ApplyStack tta m) r
- transStackConcatRefl :: forall (tt1 :: [TransKind]) (tt2 :: [TransKind]) m. MonadTransStackUnlift tt1 => ApplyStack (Concat tt1 tt2) m :~: ApplyStack tt1 (ApplyStack tt2 m)
- type StackUnlift (tt :: [TransKind]) = forall m. MonadUnliftIO m => ApplyStack tt m --> m
- newtype WStackUnlift (tt :: [TransKind]) = MkWStackUnlift {
- unWStackUnlift :: StackUnlift tt
- consWStackUnlift :: forall t tt. IsStack (TransConstraint MonadUnliftIO) tt => WUnlift MonadUnliftIO t -> WStackUnlift tt -> WStackUnlift (t ': tt)
- stackLiftWithStackUnlift :: forall tt m r. (MonadTransStackUnlift tt, MonadIO m) => (StackUnlift tt -> m r) -> ApplyStack tt m r
Documentation
witTransStackDict :: forall cm tt m. cm m => ListType (Compose Dict (TransConstraint cm)) tt -> Dict (cm (ApplyStack tt m)) Source #
transStackDict :: forall cm tt m. (IsStack (TransConstraint cm) tt, cm m) => Dict (cm (ApplyStack tt m)) Source #
newtype StackT (tt :: [TransKind]) m a Source #
A monad transformer that is the composition of a list of monad transformers.
MkStackT | |
|
Instances
stackLift :: forall tt m. (IsStack (TransConstraint Monad) tt, IsStack MonadTrans tt, Monad m) => m --> ApplyStack tt m Source #
stackHoist :: forall tt ma mb. (MonadTransStackTunnel tt, Monad ma, Monad mb) => (ma --> mb) -> ApplyStack tt ma --> ApplyStack tt mb Source #
class (MonadTransTunnel t, c (Tunnel t)) => WithTunnelConstraint c t Source #
Instances
(MonadTransTunnel t, c (Tunnel t)) => WithTunnelConstraint c t Source # | |
Defined in Control.Monad.Ology.Specific.StackT |
type MonadTransStackTunnel tt = (IsStack (TransConstraint Monad) tt, IsStack MonadTransTunnel tt, IsStack MonadTrans tt, IsStack (WithTunnelConstraint Functor) tt, IsStack (WithTunnelConstraint Applicative) tt, IsStack (WithTunnelConstraint Monad) tt, IsStack (WithTunnelConstraint Traversable) tt, IsStack (WithTunnelConstraint MonadInner) tt) Source #
transStackExcept :: forall tt m e a. (MonadTransStackTunnel tt, Monad m) => ApplyStack tt (ExceptT e m) a -> ApplyStack tt m (Either e a) Source #
stackUnderliftIO :: forall tt m. (MonadTransStackTunnel tt, MonadIO m) => ApplyStack tt IO --> ApplyStack tt m Source #
stackBackHoist :: forall tt ma mb. (MonadTransStackUnlift tt, Monad ma, Monad mb) => (ma -/-> mb) -> ApplyStack tt ma -/-> ApplyStack tt mb Source #
type MonadTransStackUnlift tt = (IsStack (TransConstraint MonadFail) tt, IsStack (TransConstraint MonadIO) tt, IsStack (TransConstraint MonadFix) tt, IsStack (TransConstraint MonadTunnelIO) tt, IsStack (TransConstraint MonadUnliftIO) tt, MonadTransStackTunnel tt, IsStack (WithTunnelConstraint MonadExtract) tt, IsStack MonadTransUnlift tt) Source #
concatMonadTransStackUnliftDict :: forall tt1 tt2. (MonadTransStackUnlift tt1, MonadTransStackUnlift tt2) => Dict (MonadTransStackUnlift (Concat tt1 tt2)) Source #
stackLiftWithUnlift :: forall tt m. (MonadTransStackUnlift tt, MonadTunnelIO m) => m -/-> ApplyStack tt m Source #
stackConcatFst :: forall tt1 tt2 m. (MonadTransStackUnlift tt1, MonadTransStackUnlift tt2, Monad m) => ApplyStack tt1 m --> ApplyStack (Concat tt1 tt2) m Source #
stackConcatSnd :: forall tt1 tt2 m. (MonadTransStackUnlift tt1, MonadTransStackUnlift tt2, Monad m) => ApplyStack tt2 m --> ApplyStack (Concat tt1 tt2) m Source #
stackCommute :: forall tta ttb m r. (MonadTransStackUnlift tta, MonadTransStackUnlift ttb, MonadTunnelIO m) => ApplyStack tta (ApplyStack ttb m) r -> ApplyStack ttb (ApplyStack tta m) r Source #
transStackConcatRefl :: forall (tt1 :: [TransKind]) (tt2 :: [TransKind]) m. MonadTransStackUnlift tt1 => ApplyStack (Concat tt1 tt2) m :~: ApplyStack tt1 (ApplyStack tt2 m) Source #
type StackUnlift (tt :: [TransKind]) = forall m. MonadUnliftIO m => ApplyStack tt m --> m Source #
newtype WStackUnlift (tt :: [TransKind]) Source #
consWStackUnlift :: forall t tt. IsStack (TransConstraint MonadUnliftIO) tt => WUnlift MonadUnliftIO t -> WStackUnlift tt -> WStackUnlift (t ': tt) Source #
stackLiftWithStackUnlift :: forall tt m r. (MonadTransStackUnlift tt, MonadIO m) => (StackUnlift tt -> m r) -> ApplyStack tt m r Source #