## Uses of Interface
com.jnape.palatable.lambda.traversable.Traversable

- Packages that use Traversable
  Package | Description
  --- | ---
  com.jnape.palatable.lambda.adt |
  com.jnape.palatable.lambda.adt.choice |
  com.jnape.palatable.lambda.adt.hlist |
  com.jnape.palatable.lambda.functions.builtin.fn2 |
  com.jnape.palatable.lambda.functions.recursion |
  com.jnape.palatable.lambda.functor.builtin |
  com.jnape.palatable.lambda.traversable |

- - ### Uses of Traversable in com.jnape.palatable.lambda.adt

    Classes in com.jnape.palatable.lambda.adt that implement Traversable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Either<L,R>` The binary tagged union, implemented as a specialized `CoProduct2`.
    `class` | `Maybe<A>` The optional type, representing a potentially absent value.
    `class` | `These<A,B>` The coproduct of a coproduct (``CoProduct2`<A, B>`) and its product (``Tuple2`<A, B>`), represented as a ``CoProduct3`<A, B, `Tuple2`<A, B>>`.
    `class` | `Try<A>` A `Monad` of the evaluation outcome of an expression that might throw.

    Methods in com.jnape.palatable.lambda.adt with type parameters of type Traversable
    Modifier and Type | Method and Description
    --- | ---
    `<B,App extends Applicative<?,App>,TravB extends Traversable<B,Maybe<?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Maybe.`traverse(Fn1<? super A,? extends Applicative<B,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)`
    `<B,App extends Applicative<?,App>,TravB extends Traversable<B,Try<?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Try.`traverse(Fn1<? super A,? extends Applicative<B,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<C,App extends Applicative<?,App>,TravC extends Traversable<C,These<A,?>>,AppTrav extends Applicative<TravC,App>> AppTrav` | These.`traverse(Fn1<? super B,? extends Applicative<C,App>> fn, Fn1<? super TravC,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<R2,App extends Applicative<?,App>,TravB extends Traversable<R2,Either<L,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Either.`traverse(Fn1<? super R,? extends Applicative<R2,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.

  - ### Uses of Traversable in com.jnape.palatable.lambda.adt.choice

    Classes in com.jnape.palatable.lambda.adt.choice that implement Traversable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Choice2<A,B>` Canonical ADT representation of `CoProduct2`.
    `class` | `Choice3<A,B,C>` Canonical ADT representation of `CoProduct3`.
    `class` | `Choice4<A,B,C,D>` Canonical ADT representation of `CoProduct4`.
    `class` | `Choice5<A,B,C,D,E>` Canonical ADT representation of `CoProduct5`.
    `class` | `Choice6<A,B,C,D,E,F>` Canonical ADT representation of `CoProduct6`.
    `class` | `Choice7<A,B,C,D,E,F,G>` Canonical ADT representation of `CoProduct7`.
    `class` | `Choice8<A,B,C,D,E,F,G,H>` Canonical ADT representation of `CoProduct8`.

    Methods in com.jnape.palatable.lambda.adt.choice with type parameters of type Traversable
    Modifier and Type | Method and Description
    --- | ---
    `<C,App extends Applicative<?,App>,TravB extends Traversable<C,Choice2<A,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Choice2.`traverse(Fn1<? super B,? extends Applicative<C,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<D,App extends Applicative<?,App>,TravB extends Traversable<D,Choice3<A,B,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Choice3.`traverse(Fn1<? super C,? extends Applicative<D,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<E,App extends Applicative<?,App>,TravB extends Traversable<E,Choice4<A,B,C,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Choice4.`traverse(Fn1<? super D,? extends Applicative<E,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<F,App extends Applicative<?,App>,TravB extends Traversable<F,Choice5<A,B,C,D,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Choice5.`traverse(Fn1<? super E,? extends Applicative<F,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<G,App extends Applicative<?,App>,TravB extends Traversable<G,Choice6<A,B,C,D,E,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Choice6.`traverse(Fn1<? super F,? extends Applicative<G,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<H,App extends Applicative<?,App>,TravB extends Traversable<H,Choice7<A,B,C,D,E,F,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Choice7.`traverse(Fn1<? super G,? extends Applicative<H,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<I,App extends Applicative<?,App>,TravB extends Traversable<I,Choice8<A,B,C,D,E,F,G,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Choice8.`traverse(Fn1<? super H,? extends Applicative<I,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.

  - ### Uses of Traversable in com.jnape.palatable.lambda.adt.hlist

    Classes in com.jnape.palatable.lambda.adt.hlist that implement Traversable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SingletonHList<_1>` A singleton HList.
    `class` | `Tuple2<_1,_2>` A 2-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple3<_1,_2,_3>` A 3-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple4<_1,_2,_3,_4>` A 4-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple5<_1,_2,_3,_4,_5>` A 5-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple6<_1,_2,_3,_4,_5,_6>` A 6-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple7<_1,_2,_3,_4,_5,_6,_7>` A 7-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple8<_1,_2,_3,_4,_5,_6,_7,_8>` An 8-element tuple product type, implemented as a specialized HList.

    Methods in com.jnape.palatable.lambda.adt.hlist with type parameters of type Traversable
    Modifier and Type | Method and Description
    --- | ---
    `<B,App extends Applicative<?,App>,TravB extends Traversable<B,SingletonHList<?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | SingletonHList.`traverse(Fn1<? super _1,? extends Applicative<B,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<_2Prime,App extends Applicative<?,App>,TravB extends Traversable<_2Prime,Tuple2<_1,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Tuple2.`traverse(Fn1<? super _2,? extends Applicative<_2Prime,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<_3Prime,App extends Applicative<?,App>,TravB extends Traversable<_3Prime,Tuple3<_1,_2,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Tuple3.`traverse(Fn1<? super _3,? extends Applicative<_3Prime,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<_4Prime,App extends Applicative<?,App>,TravB extends Traversable<_4Prime,Tuple4<_1,_2,_3,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Tuple4.`traverse(Fn1<? super _4,? extends Applicative<_4Prime,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<_5Prime,App extends Applicative<?,App>,TravB extends Traversable<_5Prime,Tuple5<_1,_2,_3,_4,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Tuple5.`traverse(Fn1<? super _5,? extends Applicative<_5Prime,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<_6Prime,App extends Applicative<?,App>,TravB extends Traversable<_6Prime,Tuple6<_1,_2,_3,_4,_5,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Tuple6.`traverse(Fn1<? super _6,? extends Applicative<_6Prime,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<_7Prime,App extends Applicative<?,App>,TravB extends Traversable<_7Prime,Tuple7<_1,_2,_3,_4,_5,_6,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Tuple7.`traverse(Fn1<? super _7,? extends Applicative<_7Prime,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<_8Prime,App extends Applicative<?,App>,TravB extends Traversable<_8Prime,Tuple8<_1,_2,_3,_4,_5,_6,_7,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Tuple8.`traverse(Fn1<? super _8,? extends Applicative<_8Prime,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.

  - ### Uses of Traversable in com.jnape.palatable.lambda.functions.builtin.fn2

    Classes in com.jnape.palatable.lambda.functions.builtin.fn2 with type parameters of type Traversable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Sequence<A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>>` Given a `Traversable` of `Applicative`s and a pure `Applicative` constructor, traverse the elements from left to right, zipping the `Applicative`s together and collecting the results.
    `class` | `Sequence<A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>>` Given a `Traversable` of `Applicative`s and a pure `Applicative` constructor, traverse the elements from left to right, zipping the `Applicative`s together and collecting the results.

    Methods in com.jnape.palatable.lambda.functions.builtin.fn2 with type parameters of type Traversable
    Modifier and Type | Method and Description
    --- | ---
    `static <A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>> Sequence<A,App,Trav,TravA,AppTrav>` | Sequence.`sequence()`
    `static <A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>> Sequence<A,App,Trav,TravA,AppTrav>` | Sequence.`sequence()`
    `static <A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>> Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>` | Sequence.`sequence(Traversable<? extends Applicative<A,App>,Trav> traversable)`
    `static <A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>> Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>` | Sequence.`sequence(Traversable<? extends Applicative<A,App>,Trav> traversable)`
    `static <A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>> AppTrav` | Sequence.`sequence(Traversable<? extends Applicative<A,App>,Trav> traversable, Fn1<TravA,? extends AppTrav> pure)`
    `static <A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>> AppTrav` | Sequence.`sequence(Traversable<? extends Applicative<A,App>,Trav> traversable, Fn1<TravA,? extends AppTrav> pure)`

    Methods in com.jnape.palatable.lambda.functions.builtin.fn2 with parameters of type Traversable
    Modifier and Type | Method and Description
    --- | ---
    `AppTrav` | Sequence.`checkedApply(Traversable<? extends Applicative<A,App>,Trav> traversable, Fn1<TravA,? extends AppTrav> pure)`
    `static <A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>> Fn1<Fn1<TravA,? extends AppTrav>,AppTrav>` | Sequence.`sequence(Traversable<? extends Applicative<A,App>,Trav> traversable)`
    `static <A,App extends Applicative<?,App>,Trav extends Traversable<?,Trav>,TravA extends Traversable<A,Trav>,AppTrav extends Applicative<TravA,App>> AppTrav` | Sequence.`sequence(Traversable<? extends Applicative<A,App>,Trav> traversable, Fn1<TravA,? extends AppTrav> pure)`

  - ### Uses of Traversable in com.jnape.palatable.lambda.functions.recursion

    Classes in com.jnape.palatable.lambda.functions.recursion that implement Traversable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `RecursiveResult<A,B>` Specialized `CoProduct2` representing the possible results of a primitive recursive function.

    Methods in com.jnape.palatable.lambda.functions.recursion with type parameters of type Traversable
    Modifier and Type | Method and Description
    --- | ---
    `<C,App extends Applicative<?,App>,TravB extends Traversable<C,RecursiveResult<A,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | RecursiveResult.`traverse(Fn1<? super B,? extends Applicative<C,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.

  - ### Uses of Traversable in com.jnape.palatable.lambda.functor.builtin

    Classes in com.jnape.palatable.lambda.functor.builtin that implement Traversable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Const<A,B>` A (surprisingly useful) functor over some phantom type `B`, retaining a value of type `A` that can be retrieved later.
    `class` | `Identity<A>` A functor over some value of type `A` that can be mapped over and retrieved later.
    `class` | `Lazy<A>` A `Monad` representing a lazily-computed value.
    `class` | `Tagged<S,B>` Like `Const`, but the phantom parameter is in the contravariant position, and the value is in covariant position.

    Methods in com.jnape.palatable.lambda.functor.builtin with type parameters of type Traversable
    Modifier and Type | Method and Description
    --- | ---
    `<B,App extends Applicative<?,App>,TravB extends Traversable<B,Identity<?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Identity.`traverse(Fn1<? super A,? extends Applicative<B,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<B,App extends Applicative<?,App>,TravB extends Traversable<B,Lazy<?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Lazy.`traverse(Fn1<? super A,? extends Applicative<B,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<C,App extends Applicative<?,App>,TravB extends Traversable<C,Const<A,?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | Const.`traverse(Fn1<? super B,? extends Applicative<C,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<C,App extends Applicative<?,App>,TravC extends Traversable<C,Tagged<S,?>>,AppTrav extends Applicative<TravC,App>> AppTrav` | Tagged.`traverse(Fn1<? super B,? extends Applicative<C,App>> fn, Fn1<? super TravC,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.

  - ### Uses of Traversable in com.jnape.palatable.lambda.traversable

    Classes in com.jnape.palatable.lambda.traversable with type parameters of type Traversable
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `Traversable<A,T extends Traversable<?,T>>` An interface for a class of data structures that can be "traversed from left to right" in a structure-preserving way, successively applying some applicative computation to each element and collapsing the results into a single resulting applicative.

    Classes in com.jnape.palatable.lambda.traversable that implement Traversable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `LambdaIterable<A>` Extension point for `Iterable` to adapt lambda core types like `Monad` and `Traversable`.
    `class` | `LambdaMap<A,B>` Extension point for `Map` to adapt lambda core types like `Functor` and `Traversable`.

    Methods in com.jnape.palatable.lambda.traversable with type parameters of type Traversable
    Modifier and Type | Method and Description
    --- | ---
    `<B,App extends Applicative<?,App>,TravB extends Traversable<B,LambdaIterable<?>>,AppTrav extends Applicative<TravB,App>> AppTrav` | LambdaIterable.`traverse(Fn1<? super A,? extends Applicative<B,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<B,App extends Applicative<?,App>,TravB extends Traversable<B,T>,AppTrav extends Applicative<TravB,App>> AppTrav` | Traversable.`traverse(Fn1<? super A,? extends Applicative<B,App>> fn, Fn1<? super TravB,? extends AppTrav> pure)` Apply `fn` to each element of this traversable from left to right, and collapse the results into a single resulting applicative, potentially with the assistance of the applicative's pure function.
    `<C,App extends Applicative<?,App>,TravC extends Traversable<C,LambdaMap<A,?>>,AppTrav extends Applicative<TravC,App>> AppTrav` | LambdaMap.`traverse(Fn1<? super B,? extends Applicative<C,App>> fn, Fn1<? super TravC,? extends AppTrav> pure)`

    Methods in com.jnape.palatable.lambda.traversable that return Traversable
    Modifier and Type | Method and Description
    --- | ---
    `default <B> Traversable<B,T>` | Traversable.`fmap(Fn1<? super A,? extends B> fn)` Covariantly transmute this functor's parameter using the given mapping function.