grisette-0.4.0.0: src/Grisette/Lib/Control/Monad.hs-boot
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE Trustworthy #-}
module Grisette.Lib.Control.Monad
( mrgReturnWithStrategy,
mrgBindWithStrategy,
mrgReturn,
(.>>=),
mrgFoldM,
(.>>),
mrgMzero,
mrgMplus,
mrgFmap,
)
where
import Control.Monad (MonadPlus)
import Grisette.Core.Control.Monad.Union (MonadUnion)
import Grisette.Core.Data.Class.Mergeable
( Mergeable,
MergingStrategy,
)
mrgReturnWithStrategy :: (MonadUnion u) => MergingStrategy a -> a -> u a
mrgBindWithStrategy :: (MonadUnion u) => MergingStrategy b -> u a -> (a -> u b) -> u b
mrgReturn :: (MonadUnion u, Mergeable a) => a -> u a
(.>>=) :: (MonadUnion u, Mergeable b) => u a -> (a -> u b) -> u b
mrgFoldM :: (MonadUnion m, Mergeable b, Foldable t) => (b -> a -> m b) -> b -> t a -> m b
(.>>) :: forall m a b. (MonadUnion m, Mergeable b) => m a -> m b -> m b
mrgMzero :: forall m a. (MonadUnion m, Mergeable a, MonadPlus m) => m a
mrgMplus :: forall m a. (MonadUnion m, Mergeable a, MonadPlus m) => m a -> m a -> m a
mrgFmap :: (MonadUnion f, Mergeable b, Functor f) => (a -> b) -> f a -> f b