## Uses of Class
com.jnape.palatable.lambda.adt.hlist.Tuple4

- Packages that use Tuple4
  Package | Description
  --- | ---
  com.jnape.palatable.lambda.adt.choice |
  com.jnape.palatable.lambda.adt.hlist |
  com.jnape.palatable.lambda.adt.hmap |

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

    Methods in com.jnape.palatable.lambda.adt.choice that return Tuple4
    Modifier and Type | Method and Description
    --- | ---
    `Tuple4<Maybe<A>,Maybe<B>,Maybe<C>,Maybe<D>>` | Choice4.`project()` Specialize this choice's projection to a `Tuple4`.

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

    Methods in com.jnape.palatable.lambda.adt.hlist with type parameters of type Tuple4
    Modifier and Type | Method and Description
    --- | ---
    `<_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.

    Methods in com.jnape.palatable.lambda.adt.hlist that return Tuple4
    Modifier and Type | Method and Description
    --- | ---
    `<_3Prime,_4Prime> Tuple4<_1,_2,_3Prime,_4Prime>` | Tuple4.`biMap(Fn1<? super _3,? extends _3Prime> lFn, Fn1<? super _4,? extends _4Prime> rFn)` Dually map covariantly over both the left and right parameters.
    `<_3Prime> Tuple4<_1,_2,_3Prime,_4>` | Tuple4.`biMapL(Fn1<? super _3,? extends _3Prime> fn)` Covariantly map over the left parameter.
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`biMapR(Fn1<? super _4,? extends _4Prime> fn)` Covariantly map over the right parameter.
    `<_0> Tuple4<_0,_1,_2,_3>` | Tuple3.`cons(_0 _0)` Cons an element onto the front of this HList.
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`discardL(Applicative<_4Prime,Tuple4<_1,_2,_3,?>> appB)` Sequence both this `Applicative` and `appB`, discarding this `Applicative's` result and returning `appB`.
    `<_4Prime> Tuple4<_1,_2,_3,_4>` | Tuple4.`discardR(Applicative<_4Prime,Tuple4<_1,_2,_3,?>> appB)` Sequence both this `Applicative` and `appB`, discarding `appB's` result and returning this `Applicative`.
    `static <A> Tuple4<A,A,A,A>` | Tuple4.`fill(A a)` Given a value of type `A`, produced an instance of this tuple with each slot set to that value.
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`flatMap(Fn1<? super _4,? extends Monad<_4Prime,Tuple4<_1,_2,_3,?>>> f)` Chain dependent computations that may continue or short-circuit based on previous results.
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`fmap(Fn1<? super _4,? extends _4Prime> fn)` Covariantly transmute this functor's parameter using the given mapping function.
    `Tuple4<_2,_1,_3,_4>` | Tuple4.`invert()` Rotate the first two slots of this product.
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`pure(_4Prime _4Prime)` Lift the value `b` into this applicative functor.
    `Tuple4<_2,_3,_1,_4>` | Tuple4.`rotateL3()` Rotate the first three values of this product one slot to the left.
    `Tuple4<_2,_3,_4,_1>` | Tuple4.`rotateL4()` Rotate the first four values of this product one slot to the left.
    `Tuple4<_3,_1,_2,_4>` | Tuple4.`rotateR3()` Rotate the first three values of this product one slot to the right.
    `Tuple4<_4,_1,_2,_3>` | Tuple4.`rotateR4()` Rotate the first four values of this product one slot to the right.
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`trampolineM(Fn1<? super _4,? extends MonadRec<RecursiveResult<_4,_4Prime>,Tuple4<_1,_2,_3,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `static <_1,_2,_3,_4> Tuple4<_1,_2,_3,_4>` | HList.`tuple(_1 _1, _2 _2, _3 _3, _4 _4)` Static factory method for creating a 4-element HList.
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`zip(Applicative<Fn1<? super _4,? extends _4Prime>,Tuple4<_1,_2,_3,?>> appFn)` Given another instance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports.

    Methods in com.jnape.palatable.lambda.adt.hlist that return types with arguments of type Tuple4
    Modifier and Type | Method and Description
    --- | ---
    `static <A> Maybe<Tuple4<A,A,A,A>>` | Tuple4.`fromIterable(Iterable<A> as)` Return `just` the first four elements from the given `Iterable`, or `nothing` if there are less than four elements.
    `<_4Prime> Lazy<Tuple4<_1,_2,_3,_4Prime>>` | Tuple4.`lazyZip(Lazy<? extends Applicative<Fn1<? super _4,? extends _4Prime>,Tuple4<_1,_2,_3,?>>> lazyAppFn)` Given a `lazy` instance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports.
    `static <_1,_2,_3> Pure<Tuple4<_1,_2,_3,?>>` | Tuple4.`pureTuple(_1 _1, _2 _2, _3 _3)` The canonical `Pure` instance for `Tuple4`.

    Method parameters in com.jnape.palatable.lambda.adt.hlist with type arguments of type Tuple4
    Modifier and Type | Method and Description
    --- | ---
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`discardL(Applicative<_4Prime,Tuple4<_1,_2,_3,?>> appB)` Sequence both this `Applicative` and `appB`, discarding this `Applicative's` result and returning `appB`.
    `<_4Prime> Tuple4<_1,_2,_3,_4>` | Tuple4.`discardR(Applicative<_4Prime,Tuple4<_1,_2,_3,?>> appB)` Sequence both this `Applicative` and `appB`, discarding `appB's` result and returning this `Applicative`.
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`flatMap(Fn1<? super _4,? extends Monad<_4Prime,Tuple4<_1,_2,_3,?>>> f)` Chain dependent computations that may continue or short-circuit based on previous results.
    `<_4Prime> Lazy<Tuple4<_1,_2,_3,_4Prime>>` | Tuple4.`lazyZip(Lazy<? extends Applicative<Fn1<? super _4,? extends _4Prime>,Tuple4<_1,_2,_3,?>>> lazyAppFn)` Given a `lazy` instance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports.
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`trampolineM(Fn1<? super _4,? extends MonadRec<RecursiveResult<_4,_4Prime>,Tuple4<_1,_2,_3,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<_4Prime> Tuple4<_1,_2,_3,_4Prime>` | Tuple4.`zip(Applicative<Fn1<? super _4,? extends _4Prime>,Tuple4<_1,_2,_3,?>> appFn)` Given another instance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports.

  - ### Uses of Tuple4 in com.jnape.palatable.lambda.adt.hmap

    Methods in com.jnape.palatable.lambda.adt.hmap that return types with arguments of type Tuple4
    Modifier and Type | Method and Description
    --- | ---
    `static <A,B,C,D> Schema<Tuple4<A,B,C,D>>` | Schema.`schema(TypeSafeKey<?,A> aKey, TypeSafeKey<?,B> bKey, TypeSafeKey<?,C> cKey, TypeSafeKey<?,D> dKey)` Create a `Schema` from four `TypeSafeKeys`.