The applicative instance for F[_]
The monad instance for M[_]
Natural Transformation from the sequential FlatMap M[_] to the parallel Apply F[_].
Natural Transformation from the sequential FlatMap M[_] to the parallel Apply F[_].
Natural Transformation from the parallel Apply F[_] to the sequential FlatMap M[_].
Natural Transformation from the parallel Apply F[_] to the sequential FlatMap M[_].
Provides an ApplicativeError[F, E]
instance for any F, that has a Parallel[M, F]
and a MonadError[M, E]
instance.
Provides an ApplicativeError[F, E]
instance for any F, that has a Parallel[M, F]
and a MonadError[M, E]
instance.
I.e. if you have a type M[_], that supports parallel composition through type F[_],
then you can get ApplicativeError[F, E]
from MonadError[M, E]
.
The Apply instance for F[_]
The Apply instance for F[_]
The FlatMap instance for M[_]
The FlatMap instance for M[_]
Like Apply.productL, but uses the apply instance corresponding to the Parallel instance instead.
Like Apply.productL, but uses the apply instance corresponding to the Parallel instance instead.
Like Apply.productR, but uses the apply instance corresponding to the Parallel instance instead.
Like Apply.productR, but uses the apply instance corresponding to the Parallel instance instead.
(Since version 1.0.0-RC2) Use parProductR instead.
(Since version 1.0.0-RC2) Use parProductL instead.
Some types that form a Monad, are also capable of forming an Applicative that supports parallel composition. The Parallel type class allows us to represent this relationship.