java.lang.Object
com.jnape.palatable.lambda.semigroup.builtin.Compose<A>
Type Parameters:
A - the future parameter type
All Implemented Interfaces:
Fn1<Semigroup<A>,Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>>, Fn2<Semigroup<A>,CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>, Fn3<Semigroup<A>,CompletableFuture<A>,CompletableFuture<A>,CompletableFuture<A>>, SemigroupFactory<Semigroup<A>,CompletableFuture<A>>, Applicative<Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>,Fn1<Semigroup<A>,?>>, Cartesian<Semigroup<A>,Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>,Fn1<?,?>>, Cocartesian<Semigroup<A>,Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>,Fn1<?,?>>, Contravariant<Semigroup<A>,Profunctor<?,Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>,Fn1<?,?>>>, Functor<Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>,Fn1<Semigroup<A>,?>>, Profunctor<Semigroup<A>,Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>,Fn1<?,?>>, Monad<Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>,Fn1<Semigroup<A>,?>>, MonadReader<Semigroup<A>,Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>,Fn1<Semigroup<A>,?>>, MonadRec<Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>,Fn1<Semigroup<A>,?>>, MonadWriter<Semigroup<A>,Fn1<CompletableFuture<A>,Fn1<CompletableFuture<A>,CompletableFuture<A>>>,Fn1<Semigroup<A>,?>>

public final class Compose<A> extends Object implements SemigroupFactory<Semigroup<A>,CompletableFuture<A>>
A Semigroup instance formed by CompletableFuture<A> and a semigroup over A. If either CompletableFutures completes exceptionally, the result is also an exceptionally completed future.

Note that this operation only takes as long as the slowest future to complete.

For the Monoid, see Compose.