Class Sequence<A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>>

java.lang.Object
com.jnape.palatable.lambda.functions.builtin.fn2.Sequence<A,App,Trav,TravA,AppTrav>
Type Parameters:
A - the Traversable element type
App - the Applicative unification parameter
Trav - the Traversable unification parameter
TravA - the Traversable instance wrapped in the output Applicative
AppTrav - the concrete parametrized output Applicative type
All Implemented Interfaces:
Fn1<Traversable<? extends Applicative<A,App>,Trav>,Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>>, Fn2<Traversable<? extends Applicative<A,App>,Trav>,Fn1<TravA,? extends AppTrav>,AppTrav>, Applicative<Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>,Fn1<Traversable<? extends Applicative<A,App>,Trav>,?>>, Cartesian<Traversable<? extends Applicative<A,App>,Trav>,Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>,Fn1<?,?>>, Cocartesian<Traversable<? extends Applicative<A,App>,Trav>,Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>,Fn1<?,?>>, Contravariant<Traversable<? extends Applicative<A,App>,Trav>,Profunctor<?,Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>,Fn1<?,?>>>, Functor<Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>,Fn1<Traversable<? extends Applicative<A,App>,Trav>,?>>, Profunctor<Traversable<? extends Applicative<A,App>,Trav>,Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>,Fn1<?,?>>, Monad<Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>,Fn1<Traversable<? extends Applicative<A,App>,Trav>,?>>, MonadReader<Traversable<? extends Applicative<A,App>,Trav>,Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>,Fn1<Traversable<? extends Applicative<A,App>,Trav>,?>>, MonadRec<Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>,Fn1<Traversable<? extends Applicative<A,App>,Trav>,?>>, MonadWriter<Traversable<? extends Applicative<A,App>,Trav>,Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>,Fn1<Traversable<? extends Applicative<A,App>,Trav>,?>>

public final class Sequence<A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>> extends Object implements Fn2<Traversable<? extends Applicative<A,App>,Trav>,Fn1<TravA,? extends AppTrav>,AppTrav>
Given a Traversable of Applicatives and a pure Applicative constructor, traverse the elements from left to right, zipping the Applicatives together and collecting the results. If the Traversable is empty, simply wrap it in the Applicative by calling pure.

Modulo any type-level coercion, this is equivalent to traversable.traverse(id(), pure).

Note that specialized overloads exist for certain built-in JDK types that would otherwise be instances Traversable if it weren't for the extensibility problem.