Module
Control.Parallel
- Package
- purescript-parallel
- Repository
- purescript/purescript-parallel
#parTraverse Source
parTraverse :: forall b a t m f. Parallel f m => Traversable t => (a -> m b) -> t a -> m (t b)
Traverse a collection in parallel.
#parTraverse_ Source
parTraverse_ :: forall b a t m f. Parallel f m => Foldable t => (a -> m b) -> t a -> m Unit
Traverse a collection in parallel, discarding any results.
#parSequence Source
parSequence :: forall f m t a. Parallel f m => Traversable t => t (m a) -> m (t a)
#parOneOf Source
parOneOf :: forall f m t a. Parallel f m => Alternative f => Foldable t => Functor t => t (m a) -> m a
Race a collection in parallel.
#parOneOfMap Source
parOneOfMap :: forall f m t b a. Parallel f m => Alternative f => Foldable t => Functor t => (a -> m b) -> t a -> m b
Race a collection in parallel while mapping to some effect.
Re-exports from Control.Parallel.Class
#ParCont Source
newtype ParCont m a
The ParCont
type constructor provides an Applicative
instance
based on ContT Unit m
, which waits for multiple continuations to be
resumed simultaneously.
ParCont sections of code can be embedded in sequential code by using
the parallel
and sequential
functions:
loadModel :: ContT Unit (Eff (ajax :: AJAX)) Model
loadModel = do
token <- authenticate
sequential $
Model <$> parallel (get "/products/popular/" token)
<*> parallel (get "/categories/all" token)
Constructors
Instances
Newtype (ParCont m a) _
(MonadEff eff m) => Functor (ParCont m)
(MonadEff eff m) => Apply (ParCont m)
(MonadEff eff m) => Applicative (ParCont m)
(MonadEff eff m) => Alt (ParCont m)
(MonadEff eff m) => Plus (ParCont m)
(MonadEff eff m) => Alternative (ParCont m)
(MonadEff eff m) => Parallel (ParCont m) (ContT Unit m)
#Parallel Source
class (Monad m, Applicative f) <= Parallel f m | m -> f, f -> m where
The Parallel
class abstracts over monads which support
parallel composition via some related Applicative
.
Members
parallel :: m ~> f
sequential :: f ~> m