module Control.Monad.Trans.MultiState.Class
(
MonadMultiGet(..)
, MonadMultiState(..)
)
where
import Control.Monad.Trans.MultiGet.Class
import Control.Monad.Trans.Class ( MonadTrans
, lift )
class (MonadMultiGet a m) => MonadMultiState a m where
mSet :: a -> m ()
instance (MonadTrans t, Monad (t m), MonadMultiState a m)
=> MonadMultiState a (t m) where
mSet :: a -> t m ()
mSet = m () -> t m ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m () -> t m ()) -> (a -> m ()) -> a -> t m ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> m ()
forall a (m :: * -> *). MonadMultiState a m => a -> m ()
mSet