| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
UVMHS.Core.Effects
Documentation
class MonadIO (m :: Type -> Type) where Source #
Instances
| MonadIO IO Source # | |
| MonadIO Q Source # | |
| (Monad m, MonadIO m) => MonadIO (FailT m) Source # | |
| (Monad m, MonadIO m) => MonadIO (NondetT m) Source # | |
| (Monad m, MonadIO m) => MonadIO (DelayT m) Source # | |
| (Monad m, MonadIO m) => MonadIO (ErrorT e m) Source # | |
| (Monad m, MonadIO m) => MonadIO (StateT s m) Source # | |
| (Monad m, MonadIO m) => MonadIO (UContT m) Source # | |
| (Null o, Monad m, MonadIO m) => MonadIO (WriterT o m) Source # | |
| (Monad m, MonadIO m) => MonadIO (ContT u m) Source # | |
| (Monad m, MonadIO m) => MonadIO (ReaderT r m) Source # | |
| (Monad m, Monoid o, MonadIO m) => MonadIO (RWST r o s m) Source # | |
class LiftIO (t :: (Type -> Type) -> Type -> Type) where Source #
Instances
| LiftIO FailT Source # | |
| LiftIO NondetT Source # | |
| LiftIO (DelayT :: (Type -> Type) -> Type -> Type) Source # | |
| LiftIO (ErrorT e) Source # | |
| LiftIO (StateT s) Source # | |
| LiftIO (UContT :: (Type -> Type) -> Type -> Type) Source # | |
| Null o => LiftIO (WriterT o) Source # | |
| LiftIO (ContT u) Source # | |
| LiftIO (ReaderT r :: (Type -> Type) -> Type -> Type) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftIO t₁, LiftIO t₂) => LiftIO (t₁ ⊡ t₂) Source # | |
class MonadReader r (m :: Type -> Type) | m -> r where Source #
Methods
askL :: (r ⟢ r') -> m r' Source #
localL :: forall a r'. (r ⟢ r') -> r' -> m a -> m a Source #
Instances
| MonadReader FuzzyEnv FuzzyM Source # | |
| MonadReader ParserEnv (Parser t) Source # | |
| (Monad m, MonadReader r m) => MonadReader r (FailT m) Source # | |
| (Monad m, MonadReader r m) => MonadReader r (NondetT m) Source # | |
| (Monad m, MonadReader r m) => MonadReader r (DelayT m) Source # | |
| (Monad m, MonadReader r m) => MonadReader r (ErrorT e m) Source # | |
| (Monad m, MonadReader r m) => MonadReader r (StateT s m) Source # | |
| (Monad m, MonadReader r m) => MonadReader r (UContT m) Source # | |
| (Null o, Monad m, MonadReader r m) => MonadReader r (WriterT o m) Source # | |
| (Monad m, MonadReader r m) => MonadReader r (ContT u m) Source # | |
| Monad m => MonadReader r (ReaderT r m) Source # | |
| MonadReader r ((->) r) Source # | |
| (Monad m, Monoid o) => MonadReader r (RWST r o s m) Source # | |
| (Ord s, Ord e) => MonadReader (SubstyAction s e) (SubstyM s e) Source # | |
Defined in UVMHS.Lib.Substitution.Substy | |
class LiftReader (t :: (Type -> Type) -> Type -> Type) where Source #
Methods
liftAskL :: Monad m => (forall r'. (r ⟢ r') -> m r') -> forall r'. (r ⟢ r') -> t m r' Source #
liftLocalL :: Monad m => (forall r' a. (r ⟢ r') -> r' -> m a -> m a) -> forall r' a. (r ⟢ r') -> r' -> t m a -> t m a Source #
Instances
| LiftReader FailT Source # | |
| LiftReader NondetT Source # | |
| LiftReader (DelayT :: (Type -> Type) -> Type -> Type) Source # | |
| LiftReader (ErrorT e) Source # | |
| LiftReader (StateT s) Source # | |
| Null o => LiftReader (WriterT o) Source # | |
| LiftReader (ReaderT r :: (Type -> Type) -> Type -> Type) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftReader t₁, LiftReader t₂) => LiftReader (t₁ ⊡ t₂) Source # | |
class MonadWriter o (m :: Type -> Type) | m -> o where Source #
Instances
| Null o => MonadWriter o ((∧) o) Source # | |
| (Monad m, MonadWriter o m) => MonadWriter o (FailT m) Source # | |
| (Monad m, MonadWriter o m) => MonadWriter o (NondetT m) Source # | |
| (Monad m, MonadWriter o m) => MonadWriter o (DelayT m) Source # | |
| (Monad m, MonadWriter o m) => MonadWriter o (ErrorT e m) Source # | |
| (Monad m, MonadWriter o m) => MonadWriter o (StateT s m) Source # | |
| (Monad m, Monoid o, MonadWriter o m) => MonadWriter o (UContT m) Source # | |
| (Monad m, Null o) => MonadWriter o (WriterT o m) Source # | |
| (Monad m, Monoid o, MonadWriter o m) => MonadWriter o (ContT (o ∧ r) m) Source # | |
| (Monad m, MonadWriter o m) => MonadWriter o (ReaderT r m) Source # | |
| (Monad m, Monoid o) => MonadWriter o (RWST r o s m) Source # | |
| MonadWriter (ParserOut t) (Parser t) Source # | |
| (Ord s, Ord e) => MonadWriter (s ⇰ 𝑃 (UVar s e)) (SubstyM s e) Source # | |
class LiftWriter (t :: (Type -> Type) -> Type -> Type) where Source #
Methods
liftTell :: Monad m => (o -> m ()) -> o -> t m () Source #
liftHijack :: Monad m => (forall a. m a -> m (o ∧ a)) -> forall a. t m a -> t m (o ∧ a) Source #
Instances
| LiftWriter FailT Source # | |
| LiftWriter NondetT Source # | |
| LiftWriter (DelayT :: (Type -> Type) -> Type -> Type) Source # | |
| LiftWriter (ErrorT e) Source # | |
| LiftWriter (StateT s) Source # | |
| Null o => LiftWriter (WriterT o) Source # | |
| LiftWriter (ReaderT r :: (Type -> Type) -> Type -> Type) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftWriter t₁, LiftWriter t₂) => LiftWriter (t₁ ⊡ t₂) Source # | |
class MonadState s (m :: Type -> Type) | m -> s where Source #
Instances
| MonadState RG FuzzyM Source # | |
| (Monad m, MonadState s m) => MonadState s (FailT m) Source # | |
| (Monad m, MonadState s m) => MonadState s (NondetT m) Source # | |
| (Monad m, MonadState s m) => MonadState s (DelayT m) Source # | |
| (Monad m, MonadState s m) => MonadState s (ErrorT e m) Source # | |
| Return m => MonadState s (StateT s m) Source # | |
| (Monad m, MonadState s m) => MonadState s (UContT m) Source # | |
| (Null o, Monad m, MonadState s m) => MonadState s (WriterT o m) Source # | |
| (Monad m, MonadState s m) => MonadState s (ContT u m) Source # | |
| (Monad m, MonadState s m) => MonadState s (ReaderT r m) Source # | |
| (Monad m, Monoid o) => MonadState s (RWST r o s m) Source # | |
| MonadState (ParserState t) (Parser t) Source # | |
Defined in UVMHS.Lib.Parser.Core | |
class LiftState (t :: (Type -> Type) -> Type -> Type) where Source #
Instances
| LiftState FailT Source # | |
| LiftState NondetT Source # | |
| LiftState (DelayT :: (Type -> Type) -> Type -> Type) Source # | |
| LiftState (ErrorT e) Source # | |
| LiftState (StateT s) Source # | |
| Null o => LiftState (WriterT o) Source # | |
| LiftState (ReaderT r :: (Type -> Type) -> Type -> Type) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftState t₁, LiftState t₂) => LiftState (t₁ ⊡ t₂) Source # | |
class MonadFail (m :: k -> Type) where Source #
Instances
| MonadFail 𝑂 Source # | |
| Monad m => MonadFail (FailT m :: Type -> Type) Source # | |
| (Monad m, MonadFail m) => MonadFail (NondetT m :: Type -> Type) Source # | |
| Ord t => MonadFail (CParser t :: Type -> Type) Source # | |
| MonadFail (Parser t :: Type -> Type) Source # | |
| (Monad m, MonadFail m) => MonadFail (DelayT m :: Type -> Type) Source # | |
| (Monad m, MonadFail m) => MonadFail (ErrorT e m :: Type -> Type) Source # | |
| (Monad m, MonadFail m) => MonadFail (StateT s m :: Type -> Type) Source # | |
| (Monad m, MonadFail m) => MonadFail (UContT m :: Type -> Type) Source # | |
| (Monad m, MonadFail m) => MonadFail (WriterT o m :: Type -> Type) Source # | |
| (Ord s, Ord e) => MonadFail (SubstyM s e :: Type -> Type) Source # | |
| (Monad m, MonadFail m) => MonadFail (ContT u m :: Type -> Type) Source # | |
| (Monad m, MonadFail m) => MonadFail (ReaderT r m :: Type -> Type) Source # | |
| (Monad m, Monoid o, MonadFail m) => MonadFail (RWST r o s m :: Type -> Type) Source # | |
class LiftFail (t :: (Type -> Type) -> k -> Type) where Source #
Methods
liftAbort :: Monad m => (forall a. m a) -> forall (a :: k). t m a Source #
liftTry :: Monad m => (forall a. m a -> m a -> m a) -> forall (a :: k). t m a -> t m a -> t m a Source #
Instances
| LiftFail FailT Source # | |
| LiftFail NondetT Source # | |
| LiftFail (DelayT :: (Type -> Type) -> Type -> Type) Source # | |
| LiftFail (ErrorT e :: (Type -> Type) -> Type -> Type) Source # | |
| LiftFail (StateT s :: (Type -> Type) -> Type -> Type) Source # | |
| LiftFail (WriterT o :: (Type -> Type) -> Type -> Type) Source # | |
| LiftFail (ReaderT r :: (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 # | |
class MonadError e (m :: k -> Type) | m -> e where Source #
Instances
| MonadError e ((∨) e :: Type -> Type) Source # | |
| (Monad m, MonadError e m) => MonadError e (FailT m :: Type -> Type) Source # | |
| (Monad m, MonadError e m) => MonadError e (NondetT m :: Type -> Type) Source # | |
| (Monad m, MonadError e m) => MonadError e (DelayT m :: Type -> Type) Source # | |
| Monad m => MonadError e (ErrorT e m :: Type -> Type) Source # | |
| (Monad m, MonadError e m) => MonadError e (StateT s m :: Type -> Type) Source # | |
| (Monad m, MonadError e m) => MonadError e (UContT m :: Type -> Type) Source # | |
| (Monad m, MonadError e m) => MonadError e (WriterT o m :: Type -> Type) Source # | |
| (Monad m, MonadError e m) => MonadError e (ContT u m :: Type -> Type) Source # | |
| (Monad m, MonadError e m) => MonadError e (ReaderT r m :: Type -> Type) Source # | |
| (Monad m, Monoid o, MonadError e m) => MonadError e (RWST r o s m :: Type -> Type) Source # | |
class LiftError (t :: (Type -> Type) -> k -> Type) where Source #
Methods
liftThrow :: Monad m => (forall a. e -> m a) -> forall (a :: k). e -> t m a Source #
liftCatch :: Monad m => (forall a. m a -> (e -> m a) -> m a) -> forall (a :: k). t m a -> (e -> t m a) -> t m a Source #
Instances
| LiftError FailT Source # | |
| LiftError NondetT Source # | |
| LiftError (DelayT :: (Type -> Type) -> Type -> Type) Source # | |
| LiftError (ErrorT e :: (Type -> Type) -> Type -> Type) Source # | |
| LiftError (StateT s :: (Type -> Type) -> Type -> Type) Source # | |
| LiftError (WriterT o :: (Type -> Type) -> Type -> Type) Source # | |
| LiftError (ReaderT r :: (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 # | |
class MonadDelay (m :: k -> Type) where Source #
Instances
| (Monad m, MonadDelay m) => MonadDelay (FailT m :: Type -> Type) Source # | |
| (Monad m, MonadDelay m) => MonadDelay (NondetT m :: Type -> Type) Source # | |
| (Monad m, MonadDelay m) => MonadDelay (ErrorT e m :: Type -> Type) Source # | |
| (Monad m, MonadDelay m) => MonadDelay (StateT s m :: Type -> Type) Source # | |
| (Monad m, MonadDelay m) => MonadDelay (UContT m :: Type -> Type) Source # | |
| (Monad m, MonadDelay m) => MonadDelay (WriterT o m :: Type -> Type) Source # | |
| MonadDelay (DelayT m :: k -> Type) Source # | |
| (Monad m, MonadDelay m) => MonadDelay (ContT u m :: Type -> Type) Source # | |
| (Monad m, MonadDelay m) => MonadDelay (ReaderT r m :: Type -> Type) Source # | |
| (Monad m, Monoid o, MonadDelay m) => MonadDelay (RWST r o s m :: Type -> Type) Source # | |
class LiftDelay (t :: (Type -> Type) -> k -> Type) where Source #
Methods
liftDelay :: Monad m => (forall a. (() -> m a) -> m a) -> forall (a :: k). (() -> t m a) -> t m a Source #
Instances
| LiftDelay FailT Source # | |
| LiftDelay NondetT Source # | |
| LiftDelay (DelayT :: (Type -> Type) -> Type -> Type) Source # | |
| LiftDelay (ErrorT e :: (Type -> Type) -> Type -> Type) Source # | |
| LiftDelay (StateT s :: (Type -> Type) -> Type -> Type) Source # | |
| LiftDelay (UContT :: (Type -> Type) -> Type -> Type) Source # | |
| LiftDelay (WriterT o :: (Type -> Type) -> Type -> Type) Source # | |
| LiftDelay (ContT u :: (Type -> Type) -> Type -> Type) Source # | |
| LiftDelay (ReaderT r :: (Type -> Type) -> Type -> Type) Source # | |
| (forall (m' :: Type -> Type). Monad m' => Monad (t₂ m'), LiftDelay t₁, LiftDelay t₂) => LiftDelay (t₁ ⊡ t₂ :: (Type -> Type) -> Type -> Type) Source # | |
class MonadNondet (m :: k -> Type) where Source #
Instances
| MonadNondet 𝐼 Source # | |
| MonadNondet 𝐿 Source # | |
| MonadNondet 𝑄 Source # | |
| (Monad m, MonadNondet m) => MonadNondet (FailT m :: Type -> Type) Source # | |
| Func Monoid m => MonadNondet (NondetT m :: Type -> Type) Source # | |
| (Monad m, MonadNondet m) => MonadNondet (DelayT m :: Type -> Type) Source # | |
| (Monad m, MonadNondet m) => MonadNondet (ErrorT e m :: Type -> Type) Source # | |
| (Monad m, MonadNondet m) => MonadNondet (StateT s m :: Type -> Type) Source # | |
| (Monad m, MonadNondet m) => MonadNondet (UContT m :: Type -> Type) Source # | |
| (Monad m, MonadNondet m) => MonadNondet (WriterT o m :: Type -> Type) Source # | |
| (Monad m, MonadNondet m) => MonadNondet (ContT u m :: Type -> Type) Source # | |
| (Monad m, MonadNondet m) => MonadNondet (ReaderT r m :: Type -> Type) Source # | |
| (Monad m, Monoid o, MonadNondet m) => MonadNondet (RWST r o s m :: Type -> Type) Source # | |
class LiftNondet (t :: (Type -> Type) -> k -> Type) where Source #
Methods
liftMzero :: Monad m => (forall a. m a) -> forall (a :: k). t m a Source #
liftMplus :: Monad m => (forall a. m a -> m a -> m a) -> forall (a :: k). t m a -> t m a -> t m a Source #
Instances
| LiftNondet FailT Source # | |
| LiftNondet NondetT Source # | |
| LiftNondet (DelayT :: (Type -> Type) -> Type -> Type) Source # | |
| LiftNondet (ErrorT e :: (Type -> Type) -> Type -> Type) Source # | |
| LiftNondet (StateT s :: (Type -> Type) -> Type -> Type) Source # | |
| LiftNondet (WriterT o :: (Type -> Type) -> Type -> Type) Source # | |
| LiftNondet (ReaderT r :: (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 # | |
class MonadTop (m :: k -> Type) where Source #
Instances
class LiftTop (t :: (Type -> Type) -> k -> Type) where Source #
Instances
| LiftTop FailT Source # | |
| LiftTop NondetT Source # | |
| LiftTop (DelayT :: (Type -> Type) -> Type -> Type) Source # | |
| LiftTop (ErrorT e :: (Type -> Type) -> Type -> Type) Source # | |
| LiftTop (StateT s :: (Type -> Type) -> Type -> Type) Source # | |
| LiftTop (WriterT o :: (Type -> Type) -> Type -> Type) Source # | |
| LiftTop (ReaderT r :: (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 # | |
class MonadCont r (m :: Type -> Type) | m -> r where Source #
Instances
| (Monad m, MonadCont (𝑂 r) m) => MonadCont r (FailT m) Source # | |
| (Monad m, Func Monoid m, MonadCont (𝑄 r) m) => MonadCont r (NondetT m) Source # | |
| MonadCont r m => MonadCont r (DelayT m) Source # | |
| (Monad m, MonadCont (e ∨ r) m) => MonadCont r (ErrorT e m) Source # | |
| (Monoid o, Monad m, MonadCont (o ∧ r) m) => MonadCont r (WriterT o m) Source # | |
| (Monad m, MonadCont (s ∧ u) m) => MonadCont u (StateT s m) Source # | |
| (Monad m, MonadCont r' m) => MonadCont r' (ReaderT r m) Source # | |
| Monad m => MonadCont u (ContT u m) Source # | |
class LiftCont (t :: (Type -> Type) -> Type -> Type) where Source #
Methods
liftCallCC :: Monad m => (forall a. ((a -> m r) -> m r) -> m a) -> forall a. ((a -> t m r) -> t m r) -> t m a Source #
liftWithC :: Monad m => (forall a. (a -> m r) -> m a -> m r) -> forall a. (a -> t m r) -> t m a -> t m r Source #
class MonadUCont (m :: Type -> Type) where Source #
Instances
| MonadUCont m => MonadUCont (DelayT m) Source # | |
| Monad m => MonadUCont (UContT m) Source # | |
| (Ord s, Ord e) => MonadUCont (SubstyM s e) Source # | |
class LiftUCont (t :: (Type -> Type) -> Type -> Type) where Source #
Methods
liftUCallCC :: Monad m => (forall a. (forall u. (a -> m u) -> m u) -> m a) -> forall a. (forall u. (a -> t m u) -> t m u) -> t m a Source #
liftUWithC :: Monad m => (forall a u. (a -> m u) -> m a -> m u) -> forall a u. (a -> t m u) -> t m a -> t m u Source #
ask :: (Monad m, MonadReader r m) => m r Source #
local :: (Monad m, MonadReader r m) => r -> m a -> m a Source #
mapEnv :: (Monad m, MonadReader r m) => (r -> r) -> m a -> m a Source #
mapOut :: (Monad m, MonadWriter o m) => (o -> o) -> m a -> m a Source #
retOut :: forall o m a. (Monad m, MonadWriter o m) => m a -> m o Source #
modify :: (Monad m, MonadState s m) => (s -> s) -> m () Source #
modifyM :: (Monad m, MonadState s m) => (s -> m s) -> m () Source #
getput :: (Monad m, MonadState s m) => s -> m s Source #
next :: (Monad m, MonadState s m, Multiplicative s) => m s Source #
nextL :: (Monad m, MonadState s m, Multiplicative a) => (s ⟢ a) -> m a Source #
bump :: (Monad m, MonadState s m, Multiplicative s) => m () Source #
bumpL :: (Monad m, MonadState s m, Multiplicative a) => (s ⟢ a) -> m () Source #
localState :: (Monad m, MonadState s m) => s -> m a -> m a Source #
localStateL :: (Monad m, MonadState s₁ m) => (s₁ ⟢ s₂) -> s₂ -> m a -> m a Source #
retState :: (Monad m, MonadState s m) => m a -> m s Source #
retStateOut :: (Monad m, MonadState s m, MonadWriter o m) => m a -> m (s ∧ o) Source #
tellStateL :: (Monad m, MonadState o₁ m, Append o₂) => (o₁ ⟢ o₂) -> o₂ -> m () Source #
hijackStateL :: (Monad m, MonadState o₁ m, Null o₂) => (o₁ ⟢ o₂) -> m a -> m (o₂ ∧ a) Source #
localMapStateL :: (Monad m, MonadState s₁ m) => (s₁ ⟢ s₂) -> (s₂ -> s₂) -> m a -> m a Source #
localStateEffectsL :: (Monad m, MonadState s₁ m) => (s₁ ⟢ s₂) -> m a -> m a Source #
mzeroIfNot :: (Monad m, MonadNondet m) => 𝔹 -> m () Source #
mconcat :: forall {k} m (a :: k) t. (MonadNondet m, ToIter (m a) t) => t -> m a Source #
oneOrMoreSplitNT :: (Monad m, MonadNondet m) => m a -> m (a ∧ 𝐿 a) Source #
oneOrMoreNT :: (Monad m, MonadNondet m) => m a -> m (𝐿 a) Source #
twoOrMoreSplitNT :: (Monad m, MonadNondet m) => m a -> m ((a ∧ a) ∧ 𝐿 a) Source #
manyPrefBy :: (Monad m, MonadNondet m) => m () -> m a -> m (𝐿 a) Source #
modifyEnvL :: (Monad m, MonadReader r m, MonadCont u m) => (r ⟢ r') -> (r' -> r') -> m () Source #
ureset :: (Monad m, MonadUCont m) => m a -> m a Source #
umodifyC :: (Monad m, MonadUCont m) => (forall u. u -> m u) -> m () Source #
uwithCOn :: (Monad m, MonadUCont m) => m a -> (a -> m u) -> m u Source #
uputEnv :: (Monad m, MonadReader r m, MonadUCont m) => r -> m () Source #
uputEnvL :: (Monad m, MonadReader r m, MonadUCont m) => (r ⟢ r') -> r' -> m () Source #
umodifyEnv :: (Monad m, MonadReader r m, MonadUCont m) => (r -> r) -> m () Source #
umodifyEnvL :: (Monad m, MonadReader r m, MonadUCont m) => (r ⟢ r') -> (r' -> r') -> m () Source #
unextEnvL :: (Monad m, MonadReader r m, MonadUCont m, Zero a, One a, Plus a) => (r ⟢ a) -> m a Source #
deriveAskL :: forall m₁ (m₂ :: Type -> Type) r r'. (m₁ ⇄⁻ m₂, MonadReader r m₂) => (r ⟢ r') -> m₁ r' Source #
deriveLocal :: forall m₁ (m₂ :: Type -> Type) r r' a. (m₁ ⇄⁻ m₂, MonadReader r m₂) => (r ⟢ r') -> r' -> m₁ a -> m₁ a Source #
deriveTell :: forall m₁ (m₂ :: Type -> Type) o. (m₁ ⇄⁻ m₂, MonadWriter o m₂) => o -> m₁ () Source #
deriveHijack :: forall m₁ (m₂ :: Type -> Type) o a. (m₁ ⇄⁻ m₂, MonadWriter o m₂) => m₁ a -> m₁ (o ∧ a) Source #
deriveTry :: forall m₁ (m₂ :: Type -> Type) a. (m₁ ⇄⁻ m₂, MonadFail m₂) => m₁ a -> m₁ a -> m₁ a Source #
deriveThrow :: forall m₁ (m₂ :: Type -> Type) e a. (m₁ ⇄⁻ m₂, MonadError e m₂) => e -> m₁ a Source #
deriveCatch :: forall m₁ (m₂ :: Type -> Type) e a. (m₁ ⇄⁻ m₂, MonadError e m₂) => m₁ a -> (e -> m₁ a) -> m₁ a Source #
deriveMzero :: forall m₁ (m₂ :: Type -> Type) a. (m₁ ⇄⁻ m₂, MonadNondet m₂) => m₁ a Source #
deriveMplus :: forall m₁ (m₂ :: Type -> Type) a. (m₁ ⇄⁻ m₂, MonadNondet m₂) => m₁ a -> m₁ a -> m₁ a Source #