conceit-0.1.1.0: Concurrent actions that may fail

Safe HaskellSafe-Inferred

Control.Concurrent.Conceit

Synopsis

Documentation

newtype Conceit e a Source

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

runConceit :: IO (Either e a)
 

Instances

Bifunctor Conceit 
Functor (Conceit e) 
(Show e, Typeable e) => Applicative (Conceit e) 
(Show e, Typeable e) => Alternative (Conceit e) 
(Show e, Typeable e, Monoid a) => Monoid (Conceit e a) 

_Conceit :: IO a -> Conceit e aSource

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.