| Safe Haskell | Safe-Inferred |
|---|
Control.Concurrent.STM.Promise
- data Promise a = Promise {}
- an :: PromiseResult a -> a
- data PromiseResult a
- = Unfinished
- | Cancelled
- | An a
- isAn :: PromiseResult a -> Bool
- isUnfinished :: PromiseResult a -> Bool
- isCancelled :: PromiseResult a -> Bool
- eitherResult :: PromiseResult a -> PromiseResult a -> PromiseResult a
- bothResults :: PromiseResult a -> PromiseResult b -> PromiseResult (a, b)
Promises
A promise
Constructors
| Promise | |
an :: PromiseResult a -> aSource
Gets the result (partial function)
Results
data PromiseResult a Source
The result of the promise
Constructors
| Unfinished | Not finished yet (or not even spawned yet)) |
| Cancelled | Cancelled |
| An a | A result |
Instances
| Functor PromiseResult | |
| Eq a => Eq (PromiseResult a) | |
| Ord a => Ord (PromiseResult a) | |
| Show a => Show (PromiseResult a) |
Querying results
isAn :: PromiseResult a -> BoolSource
Is this a result?
isUnfinished :: PromiseResult a -> BoolSource
Is this unfinished?
isCancelled :: PromiseResult a -> BoolSource
Is this cancelled?
Combining results
eitherResult :: PromiseResult a -> PromiseResult a -> PromiseResult aSource
If either is finished (An), return one of them (favor the first one)
If either is Unfinished, this is also Unfinished.
Otherwise, both are Cancelled and so is this.
bothResults :: PromiseResult a -> PromiseResult b -> PromiseResult (a, b)Source
If both are finished (An), return them in a tuple.
If either is Cancelled, this is also Cancelled.
Otherwise, both are Unfinished and so is this.