module Control.Prim.Monad
( module Control.Prim.Monad.Internal
, eval
, evalM
, NFData
, deepeval
, deepevalM
, whenM
, unlessM
, module Control.Monad
) where
import GHC.Exts
import Control.Prim.Eval
import Control.Prim.Monad.Internal
import Control.Monad
whenM :: Monad m => m Bool -> m () -> m ()
whenM :: m Bool -> m () -> m ()
whenM m Bool
m m ()
action = m Bool
m m Bool -> (Bool -> m ()) -> m ()
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \Bool
b -> Bool -> m () -> m ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when Bool
b m ()
action
unlessM :: Monad m => m Bool -> m () -> m ()
unlessM :: m Bool -> m () -> m ()
unlessM m Bool
m m ()
action = m Bool
m m Bool -> (Bool -> m ()) -> m ()
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \Bool
b -> Bool -> m () -> m ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless Bool
b m ()
action