monadology-0.3: The best ideas in monad-related classes and types.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Ology.Specific.ComposeOuter

Documentation

newtype ComposeOuter outer inner a Source #

Constructors

MkComposeOuter 

Fields

Instances

Instances details
MonadOuter outer => TransConstraint MonadFail (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadFail m => Dict (MonadFail (ComposeOuter outer m)) Source #

MonadOuter outer => TransConstraint MonadFix (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadFix m => Dict (MonadFix (ComposeOuter outer m)) Source #

MonadOuter outer => TransConstraint MonadIO (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadIO m => Dict (MonadIO (ComposeOuter outer m)) Source #

Traversable outer => TransConstraint Traversable (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

hasTransConstraint :: forall (m :: Type -> Type). Traversable m => Dict (Traversable (ComposeOuter outer m)) Source #

Applicative outer => TransConstraint Applicative (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

hasTransConstraint :: forall (m :: Type -> Type). Applicative m => Dict (Applicative (ComposeOuter outer m)) Source #

Functor outer => TransConstraint Functor (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

hasTransConstraint :: forall (m :: Type -> Type). Functor m => Dict (Functor (ComposeOuter outer m)) Source #

MonadOuter outer => TransConstraint Monad (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

hasTransConstraint :: forall (m :: Type -> Type). Monad m => Dict (Monad (ComposeOuter outer m)) Source #

MonadOuter outer => MonadTransAskUnlift (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.General.Trans.AskUnlift

Methods

askUnlift :: forall (m :: Type -> Type). Monad m => ComposeOuter outer m (WUnlift Monad (ComposeOuter outer)) Source #

MonadOuter outer => MonadTransHoist (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> ComposeOuter outer m1 --> ComposeOuter outer m2 Source #

MonadOuter outer => MonadTransTunnel (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Associated Types

type Tunnel (ComposeOuter outer) :: Type -> Type Source #

Methods

tunnel :: Monad m => ((forall (m1 :: Type -> Type) a. Monad m1 => ComposeOuter outer m1 a -> m1 (Tunnel (ComposeOuter outer) a)) -> m (Tunnel (ComposeOuter outer) r)) -> ComposeOuter outer m r Source #

MonadOuter outer => MonadTransUnlift (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.General.Trans.Unlift

Methods

liftWithUnlift :: MonadIO m => (Unlift MonadTunnelIO (ComposeOuter outer) -> m r) -> ComposeOuter outer m r Source #

getDiscardingUnlift :: forall (m :: Type -> Type). Monad m => ComposeOuter outer m (WUnlift MonadTunnelIO (ComposeOuter outer)) Source #

MonadOuter outer => MonadTrans (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

lift :: Monad m => m a -> ComposeOuter outer m a #

(MonadOuter outer, MonadFail inner) => MonadFail (ComposeOuter outer inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

fail :: String -> ComposeOuter outer inner a #

(MonadOuter outer, MonadFix inner) => MonadFix (ComposeOuter outer inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

mfix :: (a -> ComposeOuter outer inner a) -> ComposeOuter outer inner a #

(MonadOuter outer, MonadIO inner) => MonadIO (ComposeOuter outer inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

liftIO :: IO a -> ComposeOuter outer inner a #

(Foldable inner, Foldable outer, Functor outer) => Foldable (ComposeOuter outer inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

fold :: Monoid m => ComposeOuter outer inner m -> m #

foldMap :: Monoid m => (a -> m) -> ComposeOuter outer inner a -> m #

foldMap' :: Monoid m => (a -> m) -> ComposeOuter outer inner a -> m #

foldr :: (a -> b -> b) -> b -> ComposeOuter outer inner a -> b #

foldr' :: (a -> b -> b) -> b -> ComposeOuter outer inner a -> b #

foldl :: (b -> a -> b) -> b -> ComposeOuter outer inner a -> b #

foldl' :: (b -> a -> b) -> b -> ComposeOuter outer inner a -> b #

foldr1 :: (a -> a -> a) -> ComposeOuter outer inner a -> a #

foldl1 :: (a -> a -> a) -> ComposeOuter outer inner a -> a #

toList :: ComposeOuter outer inner a -> [a] #

null :: ComposeOuter outer inner a -> Bool #

length :: ComposeOuter outer inner a -> Int #

elem :: Eq a => a -> ComposeOuter outer inner a -> Bool #

maximum :: Ord a => ComposeOuter outer inner a -> a #

minimum :: Ord a => ComposeOuter outer inner a -> a #

sum :: Num a => ComposeOuter outer inner a -> a #

product :: Num a => ComposeOuter outer inner a -> a #

(Traversable inner, Traversable outer) => Traversable (ComposeOuter outer inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

traverse :: Applicative f => (a -> f b) -> ComposeOuter outer inner a -> f (ComposeOuter outer inner b) #

sequenceA :: Applicative f => ComposeOuter outer inner (f a) -> f (ComposeOuter outer inner a) #

mapM :: Monad m => (a -> m b) -> ComposeOuter outer inner a -> m (ComposeOuter outer inner b) #

sequence :: Monad m => ComposeOuter outer inner (m a) -> m (ComposeOuter outer inner a) #

(Applicative inner, Applicative outer) => Applicative (ComposeOuter outer inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

pure :: a -> ComposeOuter outer inner a #

(<*>) :: ComposeOuter outer inner (a -> b) -> ComposeOuter outer inner a -> ComposeOuter outer inner b #

liftA2 :: (a -> b -> c) -> ComposeOuter outer inner a -> ComposeOuter outer inner b -> ComposeOuter outer inner c #

(*>) :: ComposeOuter outer inner a -> ComposeOuter outer inner b -> ComposeOuter outer inner b #

(<*) :: ComposeOuter outer inner a -> ComposeOuter outer inner b -> ComposeOuter outer inner a #

(Functor inner, Functor outer) => Functor (ComposeOuter outer inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

fmap :: (a -> b) -> ComposeOuter outer inner a -> ComposeOuter outer inner b #

(<$) :: a -> ComposeOuter outer inner b -> ComposeOuter outer inner a #

(Monad inner, MonadOuter outer) => Monad (ComposeOuter outer inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Methods

(>>=) :: ComposeOuter outer inner a -> (a -> ComposeOuter outer inner b) -> ComposeOuter outer inner b #

(>>) :: ComposeOuter outer inner a -> ComposeOuter outer inner b -> ComposeOuter outer inner b #

return :: a -> ComposeOuter outer inner a #

(MonadOuter outer, MonadException m) => MonadException (ComposeOuter outer m) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

Associated Types

type Exc (ComposeOuter outer m) Source #

Methods

throwExc :: Exc (ComposeOuter outer m) -> ComposeOuter outer m a Source #

catchExc :: ComposeOuter outer m a -> (Exc (ComposeOuter outer m) -> ComposeOuter outer m a) -> ComposeOuter outer m a Source #

type Tunnel (ComposeOuter outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

type Exc (ComposeOuter outer m) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeOuter

type Exc (ComposeOuter outer m) = Exc m

liftOuter :: (Functor outer, Applicative inner) => outer --> ComposeOuter outer inner Source #