initial commit
This commit is contained in:
+27
@@ -0,0 +1,27 @@
|
||||
module Bool (
|
||||
whenM
|
||||
, unlessM
|
||||
, ifM
|
||||
, guardM
|
||||
, bool
|
||||
) where
|
||||
|
||||
import Prelude
|
||||
import Control.Monad (MonadPlus, when, unless, guard)
|
||||
|
||||
bool :: a -> a -> Bool -> a
|
||||
bool f t p = if p then t else f
|
||||
|
||||
whenM :: Monad m => m Bool -> m () -> m ()
|
||||
whenM p m =
|
||||
p >>= flip when m
|
||||
|
||||
unlessM :: Monad m => m Bool -> m () -> m ()
|
||||
unlessM p m =
|
||||
p >>= flip unless m
|
||||
|
||||
ifM :: Monad m => m Bool -> m a -> m a -> m a
|
||||
ifM p x y = p >>= \b -> if b then x else y
|
||||
|
||||
guardM :: MonadPlus m => m Bool -> m ()
|
||||
guardM f = guard =<< f
|
||||
Reference in New Issue
Block a user