-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Class of monad transformers which control operations can be lifted thru -- -- Class of monad transformers which control operations can be lifted -- thru @package control @version 0.1.1.0 module Control.Monad.Trans.Control class MonadTrans t => MonadTransControl t where { type family StT t a; } liftWith :: (MonadTransControl t, Monad m) => (Run t -> m a) -> t m a restoreT :: (MonadTransControl t, Monad m) => m (StT t a) -> t m a type Run t = forall n b. Monad n => t n b -> n (StT t b) instance Control.Monad.Trans.Control.MonadTransControl Control.Monad.Trans.Identity.IdentityT instance Control.Monad.Trans.Control.MonadTransControl Control.Monad.Trans.Maybe.MaybeT instance Control.Monad.Trans.Control.MonadTransControl (Control.Monad.Trans.Except.ExceptT e) instance Control.Monad.Trans.Control.MonadTransControl (Control.Monad.Trans.Reader.ReaderT r) instance Control.Monad.Trans.Control.MonadTransControl (Control.Monad.Trans.State.Lazy.StateT s) instance Control.Monad.Trans.Control.MonadTransControl (Control.Monad.Trans.State.Strict.StateT s) instance GHC.Base.Monoid w => Control.Monad.Trans.Control.MonadTransControl (Control.Monad.Trans.Writer.Lazy.WriterT w) instance GHC.Base.Monoid w => Control.Monad.Trans.Control.MonadTransControl (Control.Monad.Trans.Writer.Strict.WriterT w) instance GHC.Base.Monoid c => Control.Monad.Trans.Control.MonadTransControl (Control.Monad.Trans.Accum.AccumT c) module Control.Monad.Base.Control class (Basic1 m, Monad m, Monad (Base m)) => MonadBaseControl m where { type family StM m a; } liftBaseWith :: MonadBaseControl m => (RunInBase m -> Base m a) -> m a restoreM :: MonadBaseControl m => StM m a -> m a type RunInBase m = forall a. m a -> Base m (StM m a) newtype ComposeSt t m a ComposeSt :: StM m (StT t a) -> ComposeSt t m a [unComposeSt] :: ComposeSt t m a -> StM m (StT t a) type RunInBaseDefault t m = forall a. t m a -> Base m (ComposeSt t m a) defaultLiftBaseWith :: (MonadTransControl t, MonadBaseControl m) => (RunInBaseDefault t m -> Base m a) -> t m a defaultRestoreM :: (MonadTransControl t, MonadBaseControl m) => ComposeSt t m a -> t m a control :: MonadBaseControl m => (RunInBase m -> Base m (StM m a)) -> m a liftBaseOp :: MonadBaseControl m => ((a -> Base m (StM m b)) -> Base m (StM m c)) -> (a -> m b) -> m c liftBaseOp_ :: MonadBaseControl m => (Base m (StM m a) -> Base m (StM m b)) -> m a -> m b liftBaseDiscard :: MonadBaseControl m => (Base m () -> Base m a) -> m () -> m a liftBaseOpDiscard :: MonadBaseControl m => ((a -> Base m ()) -> Base m b) -> (a -> m ()) -> m b instance Control.Monad.Base.Control.MonadBaseControl f => Control.Monad.Base.Control.MonadBaseControl (Control.Monad.Trans.Identity.IdentityT f) instance Control.Monad.Base.Control.MonadBaseControl f => Control.Monad.Base.Control.MonadBaseControl (Control.Monad.Trans.Maybe.MaybeT f) instance Control.Monad.Base.Control.MonadBaseControl f => Control.Monad.Base.Control.MonadBaseControl (Control.Monad.Trans.Reader.ReaderT a f) instance Control.Monad.Base.Control.MonadBaseControl f => Control.Monad.Base.Control.MonadBaseControl (Control.Monad.Trans.Except.ExceptT a f) instance Control.Monad.Base.Control.MonadBaseControl f => Control.Monad.Base.Control.MonadBaseControl (Control.Monad.Trans.State.Lazy.StateT a f) instance Control.Monad.Base.Control.MonadBaseControl f => Control.Monad.Base.Control.MonadBaseControl (Control.Monad.Trans.State.Strict.StateT a f) instance (Control.Monad.Base.Control.MonadBaseControl f, GHC.Base.Monoid a) => Control.Monad.Base.Control.MonadBaseControl (Control.Monad.Trans.Writer.Lazy.WriterT a f) instance (Control.Monad.Base.Control.MonadBaseControl f, GHC.Base.Monoid a) => Control.Monad.Base.Control.MonadBaseControl (Control.Monad.Trans.Writer.Strict.WriterT a f) instance (Control.Monad.Base.Control.MonadBaseControl f, GHC.Base.Monoid a) => Control.Monad.Base.Control.MonadBaseControl (Control.Monad.Trans.Accum.AccumT a f) instance Control.Monad.Base.Control.MonadBaseControl GHC.Types.IO instance Control.Monad.Base.Control.MonadBaseControl (Control.Monad.ST.Lazy.Imp.ST a) instance Control.Monad.Base.Control.MonadBaseControl (GHC.ST.ST a) instance Control.Monad.Base.Control.MonadBaseControl GHC.Conc.Sync.STM instance Control.Monad.Base.Control.MonadBaseControl GHC.Base.Maybe instance Control.Monad.Base.Control.MonadBaseControl (Data.Either.Either a) instance Control.Monad.Base.Control.MonadBaseControl Data.Functor.Identity.Identity instance Control.Monad.Base.Control.MonadBaseControl [] instance Control.Monad.Base.Control.MonadBaseControl GHC.Base.NonEmpty instance Control.Monad.Base.Control.MonadBaseControl Data.Proxy.Proxy instance Control.Monad.Base.Control.MonadBaseControl Text.ParserCombinators.ReadP.ReadP instance Control.Monad.Base.Control.MonadBaseControl Text.ParserCombinators.ReadPrec.ReadPrec instance GHC.Base.Monoid a => Control.Monad.Base.Control.MonadBaseControl ((,) a) instance Control.Monad.Base.Control.MonadBaseControl ((->) a)