uvmhs-0.0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

UVMHS.Core.Transformers

Documentation

newtype ((t₁ :: (★ -> ★) -> ★ -> ★) (t₂ :: (★ -> ★) -> ★ -> ★)) m a infixl 7 Source #

Constructors

Compose2 

Fields

Instances

Instances details
(forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftDelay t₁, LiftDelay t₂) => LiftDelay (t₁ t₂ :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

liftDelay :: Monad m => (forall a. (() -> m a) -> m a) -> forall (a :: k). (() -> (t₁ t₂) m a) -> (t₁ t₂) m a Source #

(forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftError t₁, LiftError t₂) => LiftError (t₁ t₂ :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

liftThrow :: Monad m => (forall a. e -> m a) -> forall (a :: k). e -> (t₁ t₂) m a Source #

liftCatch :: Monad m => (forall a. m a -> (e -> m a) -> m a) -> forall (a :: k). (t₁ t₂) m a -> (e -> (t₁ t₂) m a) -> (t₁ t₂) m a Source #

(forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftFail t₁, LiftFail t₂) => LiftFail (t₁ t₂ :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

liftAbort :: Monad m => (forall a. m a) -> forall (a :: k). (t₁ t₂) m a Source #

liftTry :: Monad m => (forall a. m a -> m a -> m a) -> forall (a :: k). (t₁ t₂) m a -> (t₁ t₂) m a -> (t₁ t₂) m a Source #

(forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftNondet t₁, LiftNondet t₂) => LiftNondet (t₁ t₂ :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

liftMzero :: Monad m => (forall a. m a) -> forall (a :: k). (t₁ t₂) m a Source #

liftMplus :: Monad m => (forall a. m a -> m a -> m a) -> forall (a :: k). (t₁ t₂) m a -> (t₁ t₂) m a -> (t₁ t₂) m a Source #

(forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftTop t₁, LiftTop t₂) => LiftTop (t₁ t₂ :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

liftMtop :: Monad m => (forall a. m a) -> forall (a :: k). (t₁ t₂) m a Source #

(Functor2 t₁, Functor2 t₂) => Functor2 (t₁ t₂) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

map2 :: forall (t :: Type -> Type) (u :: Type -> Type). (t →⁻ u) -> (t₁ t₂) t →⁻ (t₁ t₂) u Source #

(forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftCont t₁, LiftCont t₂) => LiftCont (t₁ t₂) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

liftCallCC :: Monad m => (forall a. ((a -> m r) -> m r) -> m a) -> forall a. ((a -> (t₁ t₂) m r) -> (t₁ t₂) m r) -> (t₁ t₂) m a Source #

liftWithC :: Monad m => (forall a. (a -> m r) -> m a -> m r) -> forall a. (a -> (t₁ t₂) m r) -> (t₁ t₂) m a -> (t₁ t₂) m r Source #

(forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftIO t₁, LiftIO t₂) => LiftIO (t₁ t₂) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

liftIO :: Monad m => (forall a. IO a -> m a) -> forall a. IO a -> (t₁ t₂) m a Source #

(forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftReader t₁, LiftReader t₂) => LiftReader (t₁ t₂) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

liftAskL :: Monad m => (forall r'. (r r') -> m r') -> forall r'. (r r') -> (t₁ t₂) m r' Source #

liftLocalL :: Monad m => (forall r' a. (r r') -> r' -> m a -> m a) -> forall r' a. (r r') -> r' -> (t₁ t₂) m a -> (t₁ t₂) m a Source #

(forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftState t₁, LiftState t₂) => LiftState (t₁ t₂) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

liftGet :: Monad m => m s -> (t₁ t₂) m s Source #

liftPut :: Monad m => (s -> m ()) -> s -> (t₁ t₂) m () Source #

(forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftWriter t₁, LiftWriter t₂) => LiftWriter (t₁ t₂) Source # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

liftTell :: Monad m => (o -> m ()) -> o -> (t₁ t₂) m () Source #

liftHijack :: Monad m => (forall a. m a -> m (o a)) -> forall a. (t₁ t₂) m a -> (t₁ t₂) m (o a) 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 # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

(≫=) :: (t₁ t₂) m a -> (a -> (t₁ t₂) m b) -> (t₁ t₂) m b 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 # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

map :: (a -> b) -> (t₁ t₂) m a -> (t₁ t₂) m b 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 # 
Instance details

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 # 
Instance details

Defined in UVMHS.Core.Transformers

Methods

return :: a -> (t₁ t₂) m a Source #

(RWST r o s) ⇄⁼ (((ReaderT r :: (Type -> Type) -> Type -> Type) WriterT o) StateT s) Source # 
Instance details

Defined in UVMHS.Core.Monads

deriveLiftIO :: forall t₁ t₂ 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₂ 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₂ 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₂ m o. (Monad m, t₁ ⇄⁼ t₂, LiftWriter t₂) => (o -> m ()) -> o -> t₁ m () Source #

deriveLiftHijack :: forall t₁ t₂ 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₂ m s. (Monad m, t₁ ⇄⁼ t₂, LiftState t₂) => m s -> t₁ m s Source #

deriveLiftPut :: forall t₁ t₂ m s. (Monad m, t₁ ⇄⁼ t₂, LiftState t₂) => (s -> m ()) -> s -> t₁ m () Source #

deriveLiftAbort :: forall t₁ t₂ m. (Monad m, t₁ ⇄⁼ t₂, LiftFail t₂) => (forall a. m a) -> forall a. t₁ m a Source #

deriveLiftTry :: forall t₁ t₂ 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₂ m e. (Monad m, t₁ ⇄⁼ t₂, LiftError t₂) => (forall a. e -> m a) -> forall a. e -> t₁ m a Source #

deriveLiftCatch :: forall t₁ t₂ 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₂ 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₂ m. (Monad m, t₁ ⇄⁼ t₂, LiftNondet t₂) => (forall a. m a) -> forall a. t₁ m a Source #

deriveLiftMplus :: forall t₁ t₂ 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₂ m. (Monad m, t₁ ⇄⁼ t₂, LiftTop t₂) => (forall a. m a) -> forall a. t₁ m a Source #

deriveLiftCallCC :: forall t₁ t₂ m r. (Monad m, t₁ ⇄⁼ t₂, LiftCont t₂) => (forall a. ((a -> m r) -> m r) -> m a) -> forall a. ((a -> t₁ m r) -> t₁ m r) -> t₁ m a Source #

deriveLiftWithC :: forall t₁ t₂ m r. (Monad m, t₁ ⇄⁼ t₂, LiftCont t₂) => (forall a. (a -> m r) -> m a -> m r) -> forall a. (a -> t₁ m r) -> t₁ m a -> t₁ m r Source #