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.Control.Monad

Description

 
Synopsis

mrg* variants for operations in Control.Monad

mrgReturnWithStrategy :: MonadUnion u => MergingStrategy a -> a -> u a Source #

return with MergingStrategy knowledge propagation.

mrgBindWithStrategy :: MonadUnion u => MergingStrategy b -> u a -> (a -> u b) -> u b Source #

>>= with MergingStrategy knowledge propagation.

mrgReturn :: (MonadUnion u, Mergeable a) => a -> u a Source #

return with MergingStrategy knowledge propagation.

(>>=~) :: (MonadUnion u, Mergeable b) => u a -> (a -> u b) -> u b Source #

>>= with MergingStrategy knowledge propagation.

(>>~) :: forall m a b. (MonadUnion m, Mergeable b) => m a -> m b -> m b Source #

>> with MergingStrategy knowledge propagation.

This is usually more efficient than calling the original >> and merge the results.

mrgFoldM :: (MonadUnion m, Mergeable b, Foldable t) => (b -> a -> m b) -> b -> t a -> m b Source #

foldM with MergingStrategy knowledge propagation.

mrgMzero :: forall m a. (MonadUnion m, Mergeable a, MonadPlus m) => m a Source #

mzero with MergingStrategy knowledge propagation.

mrgMplus :: forall m a. (MonadUnion m, Mergeable a, MonadPlus m) => m a -> m a -> m a Source #

mplus with MergingStrategy knowledge propagation.

mrgFmap :: (MonadUnion f, Mergeable b, Functor f) => (a -> b) -> f a -> f b Source #

fmap with MergingStrategy knowledge propagation.