-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Anaphoric and miscellaneous useful control-flow -- -- Anaphoric and miscellaneous useful control-flow @package IfElse @version 0.85 -- | Library for control flow inside of monads with anaphoric variants on -- if and when and a C-like "switch" function. -- -- Information: -- -- module Control.Monad.IfElse -- | A if with no else for unit returning thunks. Returns the value of the -- test. whenM :: Monad m => m Bool -> m () -> m () -- | Like a switch statement, and less cluttered than if else if -- --
--   cond [ (t1,a1), (t2,a2), ... ]
--   
cond :: Monad m => [(Bool, m ())] -> m () -- | Like a switch statement, and less cluttered than if else if -- --
--   condM [ (t1,a1), (t2,a2), ... ]
--   
condM :: Monad m => [(m Bool, m ())] -> m () -- | Chainable anaphoric when. Takes a maybe value. -- -- if the value is Just x then execute action x , then return -- True . otherwise return False . awhen :: Monad m => Maybe a -> (a -> m ()) -> m () -- | Chainable anaphoric whenM. awhenM :: Monad m => m (Maybe a) -> (a -> m ()) -> m () -- | Anaphoric when-else chain. Like a switch statement, but less cluttered acond :: Monad m => [(Maybe a, a -> m ())] -> m () -- | Anaphoric if. aif :: Monad m => Maybe a -> (a -> m b) -> m b -> m b -- | Anaphoric if where the test is in Monad m. aifM :: Monad m => m (Maybe a) -> (a -> m b) -> m b -> m b -- | Contrapositive of whenM, if not x then do y -- -- unless-else chain. -- -- monadic unless-else chain ncondM :: Monad m => [(m Bool, m ())] -> m () -- | IO lifted && -- -- IO lifted || -- -- Conditionally do the right action based on the truth value of the left -- expression -- -- unless the left side is true, perform the right action -- -- unless the (monadic) left side is true, perform the right action -- -- Bind the result of the last expression in an anaphoric when. -- -- composition of >>= and >>? -- -- composition of >>= and >>=? -- -- Execute a monadic action so long as a monadic boolean returns true. whileM :: Monad m => m Bool -> m () -> m () -- | Negation of whileM: execute an action so long as the boolean -- returns false. untilM :: Monad m => m Bool -> m () -> m () -- | Strict version of return because usually we don't need that -- extra thunk. return' :: Monad m => a -> m a -- | Take an action and make it into a side-effecting return. -- Because I seem to keep running into m () and the like. returning :: Monad m => (a -> m b) -> (a -> m a) -- | This conversion is common enough to make a name for. maybeMP :: MonadPlus m => Maybe a -> m a