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

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

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

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

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

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

    Methods in com.jnape.palatable.lambda.adt.hlist that return Tuple3
    Modifier and Type | Method and Description
    --- | ---
    `<_2Prime,_3Prime> Tuple3<_1,_2Prime,_3Prime>` | Tuple3.`biMap(Fn1<? super _2,? extends _2Prime> lFn, Fn1<? super _3,? extends _3Prime> rFn)` Dually map covariantly over both the left and right parameters.
    `<_2Prime> Tuple3<_1,_2Prime,_3>` | Tuple3.`biMapL(Fn1<? super _2,? extends _2Prime> fn)` Covariantly map over the left parameter.
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`biMapR(Fn1<? super _3,? extends _3Prime> fn)` Covariantly map over the right parameter.
    `<_0> Tuple3<_0,_1,_2>` | Tuple2.`cons(_0 _0)` Cons an element onto the front of this HList.
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`discardL(Applicative<_3Prime,Tuple3<_1,_2,?>> appB)` Sequence both this `Applicative` and `appB`, discarding this `Applicative's` result and returning `appB`.
    `<_3Prime> Tuple3<_1,_2,_3>` | Tuple3.`discardR(Applicative<_3Prime,Tuple3<_1,_2,?>> appB)` Sequence both this `Applicative` and `appB`, discarding `appB's` result and returning this `Applicative`.
    `static <A> Tuple3<A,A,A>` | Tuple3.`fill(A a)` Given a value of type `A`, produced an instance of this tuple with each slot set to that value.
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`flatMap(Fn1<? super _3,? extends Monad<_3Prime,Tuple3<_1,_2,?>>> f)` Chain dependent computations that may continue or short-circuit based on previous results.
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`fmap(Fn1<? super _3,? extends _3Prime> fn)` Covariantly transmute this functor's parameter using the given mapping function.
    `Tuple3<_2,_1,_3>` | Tuple3.`invert()` Rotate the first two slots of this product.
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`pure(_3Prime _3Prime)` Lift the value `b` into this applicative functor.
    `Tuple3<_2,_3,_1>` | Tuple3.`rotateL3()` Rotate the first three values of this product one slot to the left.
    `Tuple3<_3,_1,_2>` | Tuple3.`rotateR3()` Rotate the first three values of this product one slot to the right.
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`trampolineM(Fn1<? super _3,? extends MonadRec<RecursiveResult<_3,_3Prime>,Tuple3<_1,_2,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `static <_1,_2,_3> Tuple3<_1,_2,_3>` | HList.`tuple(_1 _1, _2 _2, _3 _3)` Static factory method for creating a 3-element HList.
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`zip(Applicative<Fn1<? super _3,? extends _3Prime>,Tuple3<_1,_2,?>> 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 Tuple3
    Modifier and Type | Method and Description
    --- | ---
    `static <A> Maybe<Tuple3<A,A,A>>` | Tuple3.`fromIterable(Iterable<A> as)` Return `just` the first three elements from the given `Iterable`, or `nothing` if there are less than three elements.
    `<_3Prime> Lazy<Tuple3<_1,_2,_3Prime>>` | Tuple3.`lazyZip(Lazy<? extends Applicative<Fn1<? super _3,? extends _3Prime>,Tuple3<_1,_2,?>>> 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> Pure<Tuple3<_1,_2,?>>` | Tuple3.`pureTuple(_1 _1, _2 _2)` The canonical `Pure` instance for `Tuple3`.

    Method parameters in com.jnape.palatable.lambda.adt.hlist with type arguments of type Tuple3
    Modifier and Type | Method and Description
    --- | ---
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`discardL(Applicative<_3Prime,Tuple3<_1,_2,?>> appB)` Sequence both this `Applicative` and `appB`, discarding this `Applicative's` result and returning `appB`.
    `<_3Prime> Tuple3<_1,_2,_3>` | Tuple3.`discardR(Applicative<_3Prime,Tuple3<_1,_2,?>> appB)` Sequence both this `Applicative` and `appB`, discarding `appB's` result and returning this `Applicative`.
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`flatMap(Fn1<? super _3,? extends Monad<_3Prime,Tuple3<_1,_2,?>>> f)` Chain dependent computations that may continue or short-circuit based on previous results.
    `<_3Prime> Lazy<Tuple3<_1,_2,_3Prime>>` | Tuple3.`lazyZip(Lazy<? extends Applicative<Fn1<? super _3,? extends _3Prime>,Tuple3<_1,_2,?>>> 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.
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`trampolineM(Fn1<? super _3,? extends MonadRec<RecursiveResult<_3,_3Prime>,Tuple3<_1,_2,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<_3Prime> Tuple3<_1,_2,_3Prime>` | Tuple3.`zip(Applicative<Fn1<? super _3,? extends _3Prime>,Tuple3<_1,_2,?>> 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 Tuple3 in com.jnape.palatable.lambda.adt.hmap

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

  - ### Uses of Tuple3 in com.jnape.palatable.lambda.internal.iteration

    Constructor parameters in com.jnape.palatable.lambda.internal.iteration with type arguments of type Tuple3
    Constructor and Description
    `RateLimitingIterable(Iterable<A> as, Set<Tuple3<Long,Duration,Fn0<Instant>>> rateLimits)`
    `RateLimitingIterator(Iterator<A> asIterator, Set<Tuple3<Long,Duration,Fn0<Instant>>> rateLimits)`