-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Choice for IO and lifted IO
--   
--   Choice for IO and lifted IO
@package io-choice
@version 0.0.1


-- | This package provides the choice operator (<a>||&gt;</a>) for lifted
--   IO monad.
module Control.Exception.IOChoice.Lifted

-- | If <a>IOException</a> occurs or <a>goNext</a> is used in the left
--   monad, then the right monad is performed. Note that <a>fail</a> throws
--   <a>IOException</a>.
(||>) :: MonadBaseControl IO m => m a -> m a -> m a

-- | Go to the next <a>IO</a> monad by throwing <a>IOException</a>.
goNext :: (MonadIO m, MonadBase IO m) => m a

-- | Run any one lifted <a>IO</a> monad.
runAnyOne :: (MonadIO m, MonadBaseControl IO m) => [m a] -> m a


-- | This package provides the choice operator (<a>||&gt;</a>) for IO
--   monad.
module Control.Exception.IOChoice

-- | If <a>IOException</a> occurs or <a>goNext</a> is used in the left IO,
--   then the right IO is performed. Note that <a>fail</a> throws
--   <a>IOException</a>.
(||>) :: IO a -> IO a -> IO a

-- | Go to the next <a>IO</a> monad by throwing <a>IOException</a>.
goNext :: IO a

-- | Run any one <a>IO</a> monad.
runAnyOne :: [IO a] -> IO a
