| Safe Haskell | Safe-Inferred |
|---|
Control.Concurrent.Conceit
- newtype Conceit e a = Conceit {
- runConceit :: IO (Either e a)
- _Conceit :: IO a -> Conceit e a
- conceit :: (Show e, Typeable e) => IO (Either e a) -> IO (Either e b) -> IO (Either e (a, b))
- mapConceit :: (Show e, Typeable e, Traversable t) => (a -> IO (Either e b)) -> t a -> IO (Either e (t b))
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.
Constructors
| Conceit | |
Fields
| |
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.