| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
UVMHS.Core.Transformers
Documentation
newtype ((t₁ :: (Type -> Type) -> Type -> Type) ⊡ (t₂ :: (Type -> Type) -> Type -> Type)) (m :: Type -> Type) a infixl 7 Source #
Constructors
| Compose2 | |
Fields
| |
Instances
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftDelay t₁, LiftDelay t₂) => LiftDelay (t₁ ⊡ t₂ :: (Type -> Type) -> Type -> Type) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftError t₁, LiftError t₂) => LiftError (t₁ ⊡ t₂ :: (Type -> Type) -> Type -> Type) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftFail t₁, LiftFail t₂) => LiftFail (t₁ ⊡ t₂ :: (Type -> Type) -> Type -> Type) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftNondet t₁, LiftNondet t₂) => LiftNondet (t₁ ⊡ t₂ :: (Type -> Type) -> Type -> Type) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftTop t₁, LiftTop t₂) => LiftTop (t₁ ⊡ t₂ :: (Type -> Type) -> Type -> Type) Source # | |
| (Functor2 t₁, Functor2 t₂) => Functor2 (t₁ ⊡ t₂) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftCont t₁, LiftCont t₂) => LiftCont (t₁ ⊡ t₂) Source # | |
Defined in UVMHS.Core.Transformers | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftIO t₁, LiftIO t₂) => LiftIO (t₁ ⊡ t₂) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftReader t₁, LiftReader t₂) => LiftReader (t₁ ⊡ t₂) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftState t₁, LiftState t₂) => LiftState (t₁ ⊡ t₂) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftWriter t₁, LiftWriter t₂) => LiftWriter (t₁ ⊡ t₂) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₁ m'), forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), Monad m) => Bind ((t₁ ⊡ t₂) m) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₁ m'), forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), Monad m) => Functor ((t₁ ⊡ t₂) m) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₁ m'), forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), Monad m) => Monad ((t₁ ⊡ t₂) m) Source # | |
Defined in UVMHS.Core.Transformers | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₁ m'), forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), Monad m) => Return ((t₁ ⊡ t₂) m) Source # | |
Defined in UVMHS.Core.Transformers | |
| (RWST r o s) ⇄⁼ (((ReaderT r :: (Type -> Type) -> Type -> Type) ⊡ WriterT o) ⊡ StateT s) Source # | |
deriveLiftIO :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m. (Monad m, t₁ ⇄⁼ t₂, LiftIO t₂) => (forall a. IO a -> m a) -> forall a. IO a -> t₁ m a Source #
deriveLiftAskL :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m r. (Monad m, t₁ ⇄⁼ t₂, LiftReader t₂) => (forall r'. (r ⟢ r') -> m r') -> forall r'. (r ⟢ r') -> t₁ m r' Source #
deriveLiftLocalL :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m r. (Monad m, t₁ ⇄⁼ t₂, LiftReader t₂) => (forall r' a. (r ⟢ r') -> r' -> m a -> m a) -> forall r' a. (r ⟢ r') -> r' -> t₁ m a -> t₁ m a Source #
deriveLiftTell :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m o. (Monad m, t₁ ⇄⁼ t₂, LiftWriter t₂) => (o -> m ()) -> o -> t₁ m () Source #
deriveLiftHijack :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m o. (Monad m, t₁ ⇄⁼ t₂, LiftWriter t₂) => (forall a. m a -> m (o ∧ a)) -> forall a. t₁ m a -> t₁ m (o ∧ a) Source #
deriveLiftGet :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m s. (Monad m, t₁ ⇄⁼ t₂, LiftState t₂) => m s -> t₁ m s Source #
deriveLiftPut :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m s. (Monad m, t₁ ⇄⁼ t₂, LiftState t₂) => (s -> m ()) -> s -> t₁ m () Source #
deriveLiftAbort :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m. (Monad m, t₁ ⇄⁼ t₂, LiftFail t₂) => (forall a. m a) -> forall a. t₁ m a Source #
deriveLiftTry :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m. (Monad m, t₁ ⇄⁼ t₂, LiftFail t₂) => (forall a. m a -> m a -> m a) -> forall a. t₁ m a -> t₁ m a -> t₁ m a Source #
deriveLiftThrow :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m e. (Monad m, t₁ ⇄⁼ t₂, LiftError t₂) => (forall a. e -> m a) -> forall a. e -> t₁ m a Source #
deriveLiftCatch :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m e. (Monad m, t₁ ⇄⁼ t₂, LiftError t₂) => (forall a. m a -> (e -> m a) -> m a) -> forall a. t₁ m a -> (e -> t₁ m a) -> t₁ m a Source #
deriveLiftDelay :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m. (Monad m, t₁ ⇄⁼ t₂, LiftDelay t₂) => (forall a. (() -> m a) -> m a) -> forall a. (() -> t₁ m a) -> t₁ m a Source #
deriveLiftMzero :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m. (Monad m, t₁ ⇄⁼ t₂, LiftNondet t₂) => (forall a. m a) -> forall a. t₁ m a Source #
deriveLiftMplus :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m. (Monad m, t₁ ⇄⁼ t₂, LiftNondet t₂) => (forall a. m a -> m a -> m a) -> forall a. t₁ m a -> t₁ m a -> t₁ m a Source #
deriveLiftMtop :: forall t₁ (t₂ :: (Type -> Type) -> Type -> Type) m. (Monad m, t₁ ⇄⁼ t₂, LiftTop t₂) => (forall a. m a) -> forall a. t₁ m a Source #