IfElse-0.82: Anaphoric and miscellaneous useful control-flow

Control.Monad.IfElse

Description

Library for control flow inside of monads with anaphoric variants on if and when and a C-like "switch" function.

Information:

Author
Jeff Heard
Copyright
2008 Jeff Heard
License
BSD
Version
1.0
Status
Alpha

Synopsis

Documentation

whenM :: Monad m => m Bool -> m () -> m ()Source

A if with no else for unit returning thunks. Returns the value of the test.

cond :: Monad m => [(Bool, m ())] -> m ()Source

Like a switch statement, and less cluttered than if else if

 cond [ (t1,a1), (t2,a2), ... ]

condM :: Monad m => [(m Bool, m ())] -> m ()Source

Like a switch statement, and less cluttered than if else if

 condM [ (t1,a1), (t2,a2), ... ]

awhen :: Monad m => Maybe a -> (a -> m ()) -> m ()Source

Chainable anaphoric when. Takes a maybe value.

if the value is Just x then execute action x , then return True . otherwise return False .

awhenM :: Monad m => m (Maybe a) -> (a -> m ()) -> m ()Source

Chainable anaphoric whenM.

acond :: Monad m => [(Maybe a, a -> m ())] -> m ()Source

Anaphoric when-else chain. Like a switch statement, but less cluttered

aif :: Monad m => Maybe a -> (a -> m b) -> m b -> m bSource

Anaphoric if.

aifM :: Monad m => m (Maybe a) -> (a -> m b) -> m b -> m bSource

Anaphoric if where the test is in Monad m.