| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Control.Concurrent.Conceit
Documentation
Conceit is very similar to Concurrently from the
async package, but it has an explicit error type e.
The Applicative instance runs two actions concurrently, waits until
they finish, and combines their results.
However, if any of the actions fails with e the other action is
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
| |
Instances
| Bifunctor Conceit | |
| Alternative (Conceit e) | |
| Monad (Conceit e) |
|
| Functor (Conceit e) | |
| MonadPlus (Conceit e) | |
| Applicative (Conceit e) | |
| MonadThrow (Conceit e) | Throws exceptions into IO. |
| MonadCatch (Conceit e) | Catches exceptions from IO. |
| MonadIO (Conceit e) | |
| Plus (Conceit e) |
|
| Alt (Conceit e) |
|
| Apply (Conceit s) |
|
| Bind (Conceit s) |
|
| Monoid a => Monoid (Conceit e a) |
_runConceit :: Conceit Void a -> IO a Source
mapConceit :: 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.