grisette-0.2.0.0: Symbolic evaluation as a library
Copyright(c) Sirui Lu 2021-2023
LicenseBSD-3-Clause (see the LICENSE file)
Maintainersiruilu@cs.washington.edu
StabilityExperimental
PortabilityGHC only
Safe HaskellTrustworthy
LanguageHaskell2010

Grisette.Lib.Mtl

Description

 
Synopsis

Symbolic or mrg* variants for the operations in the mtl (and transformers) package

mrg* variants for operations in Control.Monad.Except

mrgThrowError :: (MonadError e m, MonadUnion m, Mergeable a) => e -> m a Source #

throwError with MergingStrategy knowledge propagation.

mrgCatchError :: (MonadError e m, MonadUnion m, Mergeable a) => m a -> (e -> m a) -> m a Source #

catchError with MergingStrategy knowledge propagation.

mrg* variants for operations in Control.Monad.Trans

mrgLift :: forall t m a. (MonadUnion (t m), MonadTrans t, Monad m, Mergeable a) => m a -> t m a Source #

lift with MergingStrategy knowledge propagation.

mrg* variants for operations in Control.Monad.Trans.Cont

mrgRunContT :: (UnionLike m, Mergeable r) => ContT r m a -> (a -> m r) -> m r Source #

runContT with MergingStrategy knowledge propagation

mrgEvalContT :: (UnionLike m, Mergeable r, Monad m) => ContT r m r -> m r Source #

evalContT with MergingStrategy knowledge propagation

mrgResetT :: (UnionLike m, Mergeable r, Monad m) => Monad m => ContT r m r -> ContT r' m r Source #

resetT with MergingStrategy knowledge propagation