cats
Some types that form a FlatMap, are also capable of forming an Apply that supports parallel composition. The NonEmptyParallel type class allows us to represent this relationship.
The Apply instance for F[_]
The FlatMap instance for M[_]
Natural Transformation from the sequential FlatMap M[_] to the parallel Apply F[_].
Natural Transformation from the parallel Apply F[_] to the sequential FlatMap M[_].
Some types that form a FlatMap, are also capable of forming an Apply that supports parallel composition. The NonEmptyParallel type class allows us to represent this relationship.