alternative-io-0.0.0: IO as Alternative instance

Safe HaskellSafe-Infered



Lifted IO like Alternative instance. Due to technical limitation, Lifted IO is not an instance of Alternative. (<||>) is provided instead.



(<||>) :: MonadBaseControl IO m => m a -> m a -> m aSource

If the left IO monad of (<||>) causes an error or goNext is used, the right IO monad is executed.

goNext :: (MonadIO m, MonadBase IO m) => m aSource

Go to the next IO monad by throwing AltIOLiftedGoNext.

runAnyOne :: (MonadIO m, MonadBaseControl IO m) => [m a] -> m aSource

Run any one lifted IO monad.