Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Documentation
Conceit
is very similar to Concurrently
from the
async
package, but it has an explicit error type e
.
The Applicative
instance is used to run actions concurrently, wait until
they finish, and combine their results.
However, if any of the actions fails with e
the other actions are
immediately cancelled and the whole computation fails with e
.
To put it another way: Conceit
behaves like Concurrently
for successes and
like race
for errors.
Conceit | |
|
conceit :: (Show e, Typeable e) => IO (Either e a) -> IO (Either e b) -> IO (Either e (a, b)) Source
mapConceit :: (Show e, Typeable e, Traversable t) => (a -> IO (Either e b)) -> t a -> IO (Either e (t b)) Source
Works similarly to mapConcurrently
from the
async
package, but if any of the computations fails with e
, the others are
immediately cancelled and the whole computation fails with e
.