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

Control.Monad.Ology.Specific.ComposeInner

Documentation

newtype ComposeInner inner outer a Source #

Constructors

MkComposeInner 

Fields

Instances

Instances details
MonadInner inner => TransConstraint MonadFail (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadFail m => Dict (MonadFail (ComposeInner inner m)) Source #

MonadInner inner => TransConstraint MonadFix (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadFix m => Dict (MonadFix (ComposeInner inner m)) Source #

MonadInner inner => TransConstraint MonadIO (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadIO m => Dict (MonadIO (ComposeInner inner m)) Source #

Traversable inner => TransConstraint Traversable (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). Traversable m => Dict (Traversable (ComposeInner inner m)) Source #

Functor inner => TransConstraint Functor (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). Functor m => Dict (Functor (ComposeInner inner m)) Source #

MonadInner inner => TransConstraint Monad (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). Monad m => Dict (Monad (ComposeInner inner m)) Source #

(MonadInner inner, MonadException inner) => TransConstraint MonadException (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadException m => Dict (MonadException (ComposeInner inner m)) Source #

MonadExtract inner => TransConstraint MonadExtract (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadExtract m => Dict (MonadExtract (ComposeInner inner m)) Source #

MonadIdentity inner => TransConstraint MonadIdentity (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadIdentity m => Dict (MonadIdentity (ComposeInner inner m)) Source #

MonadInner inner => TransConstraint MonadInner (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadInner m => Dict (MonadInner (ComposeInner inner m)) Source #

(MonadInner inner, MonadOuter inner) => TransConstraint MonadOuter (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadOuter m => Dict (MonadOuter (ComposeInner inner m)) Source #

MonadInner inner => MonadTransHoist (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

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

MonadInner inner => MonadTransTunnel (ComposeInner inner) Source # 
Instance details

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

Associated Types

type Tunnel (ComposeInner inner) :: Type -> Type Source #

Methods

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

MonadInner inner => MonadTrans (ComposeInner inner) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

lift :: Monad m => m a -> ComposeInner inner m a #

(MonadInner inner, MonadFail outer) => MonadFail (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

fail :: String -> ComposeInner inner outer a #

(MonadInner inner, MonadFix outer) => MonadFix (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

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

(MonadInner inner, MonadIO outer) => MonadIO (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

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

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

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

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

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

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

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

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

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

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

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

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

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

null :: ComposeInner inner outer a -> Bool #

length :: ComposeInner inner outer a -> Int #

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

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

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

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

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

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

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

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

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

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

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

(MonadInner inner, Monad outer, Alternative inner) => Alternative (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

empty :: ComposeInner inner outer a #

(<|>) :: ComposeInner inner outer a -> ComposeInner inner outer a -> ComposeInner inner outer a #

some :: ComposeInner inner outer a -> ComposeInner inner outer [a] #

many :: ComposeInner inner outer a -> ComposeInner inner outer [a] #

(MonadInner inner, Monad outer) => Applicative (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

pure :: a -> ComposeInner inner outer a #

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

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

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

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

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

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

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

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

(MonadInner inner, Monad outer) => Monad (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

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

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

return :: a -> ComposeInner inner outer a #

(MonadInner inner, Monad outer, Alternative inner) => MonadPlus (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

mzero :: ComposeInner inner outer a #

mplus :: ComposeInner inner outer a -> ComposeInner inner outer a -> ComposeInner inner outer a #

(MonadInner inner, MonadException inner, MonadException m) => MonadException (ComposeInner inner m) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Associated Types

type Exc (ComposeInner inner m) Source #

Methods

throwExc :: Exc (ComposeInner inner m) -> ComposeInner inner m a Source #

catchExc :: ComposeInner inner m a -> (Exc (ComposeInner inner m) -> ComposeInner inner m a) -> ComposeInner inner m a Source #

(MonadExtract inner, MonadExtract outer) => MonadExtract (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

mToValue :: Extract (ComposeInner inner outer) Source #

(MonadIdentity inner, MonadIdentity outer) => MonadIdentity (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

(MonadInner inner, MonadInner outer) => MonadInner (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

retrieveInner :: ComposeInner inner outer a -> Result (Exc (ComposeInner inner outer)) a Source #

(MonadInner inner, MonadOuter inner, MonadOuter outer) => MonadOuter (ComposeInner inner outer) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

Methods

getExtract :: ComposeInner inner outer (WExtract (ComposeInner inner outer)) Source #

type Tunnel (ComposeInner inner) Source # 
Instance details

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

type Tunnel (ComposeInner inner) = inner
type Exc (ComposeInner inner m) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.ComposeInner

type Exc (ComposeInner inner m) = Either (Exc inner) (Exc m)

liftInner :: Applicative outer => inner --> ComposeInner inner outer Source #