## Uses of Class
com.jnape.palatable.lambda.functions.recursion.RecursiveResult

- Packages that use RecursiveResult
  Package | Description
  --- | ---
  com.jnape.palatable.lambda.adt |
  com.jnape.palatable.lambda.adt.choice |
  com.jnape.palatable.lambda.adt.hlist |
  com.jnape.palatable.lambda.functions |
  com.jnape.palatable.lambda.functions.recursion |
  com.jnape.palatable.lambda.functor.builtin |
  com.jnape.palatable.lambda.internal.iteration |
  com.jnape.palatable.lambda.io |
  com.jnape.palatable.lambda.monad |
  com.jnape.palatable.lambda.monad.transformer.builtin |
  com.jnape.palatable.lambda.optics |
  com.jnape.palatable.lambda.traversable |

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

    Method parameters in com.jnape.palatable.lambda.adt with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `<B> Maybe<B>` | Maybe.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,Maybe<?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> Try<B>` | Try.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,Try<?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<C> These<A,C>` | These.`trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,These<A,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> Either<L,B>` | Either.`trampolineM(Fn1<? super R,? extends MonadRec<RecursiveResult<R,B>,Either<L,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.

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

    Method parameters in com.jnape.palatable.lambda.adt.choice with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `<C> Choice2<A,C>` | Choice2.`trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,Choice2<A,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<D> Choice3<A,B,D>` | Choice3.`trampolineM(Fn1<? super C,? extends MonadRec<RecursiveResult<C,D>,Choice3<A,B,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<E> Choice4<A,B,C,E>` | Choice4.`trampolineM(Fn1<? super D,? extends MonadRec<RecursiveResult<D,E>,Choice4<A,B,C,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<F> Choice5<A,B,C,D,F>` | Choice5.`trampolineM(Fn1<? super E,? extends MonadRec<RecursiveResult<E,F>,Choice5<A,B,C,D,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<G> Choice6<A,B,C,D,E,G>` | Choice6.`trampolineM(Fn1<? super F,? extends MonadRec<RecursiveResult<F,G>,Choice6<A,B,C,D,E,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<H> Choice7<A,B,C,D,E,F,H>` | Choice7.`trampolineM(Fn1<? super G,? extends MonadRec<RecursiveResult<G,H>,Choice7<A,B,C,D,E,F,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<I> Choice8<A,B,C,D,E,F,G,I>` | Choice8.`trampolineM(Fn1<? super H,? extends MonadRec<RecursiveResult<H,I>,Choice8<A,B,C,D,E,F,G,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.

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

    Method parameters in com.jnape.palatable.lambda.adt.hlist with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `<_1Prime> SingletonHList<_1Prime>` | SingletonHList.`trampolineM(Fn1<? super _1,? extends MonadRec<RecursiveResult<_1,_1Prime>,SingletonHList<?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<_2Prime> Tuple2<_1,_2Prime>` | Tuple2.`trampolineM(Fn1<? super _2,? extends MonadRec<RecursiveResult<_2,_2Prime>,Tuple2<_1,?>>> 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.`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.
    `<_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.
    `<_5Prime> Tuple5<_1,_2,_3,_4,_5Prime>` | Tuple5.`trampolineM(Fn1<? super _5,? extends MonadRec<RecursiveResult<_5,_5Prime>,Tuple5<_1,_2,_3,_4,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<_6Prime> Tuple6<_1,_2,_3,_4,_5,_6Prime>` | Tuple6.`trampolineM(Fn1<? super _6,? extends MonadRec<RecursiveResult<_6,_6Prime>,Tuple6<_1,_2,_3,_4,_5,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<_7Prime> Tuple7<_1,_2,_3,_4,_5,_6,_7Prime>` | Tuple7.`trampolineM(Fn1<? super _7,? extends MonadRec<RecursiveResult<_7,_7Prime>,Tuple7<_1,_2,_3,_4,_5,_6,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<_8Prime> Tuple8<_1,_2,_3,_4,_5,_6,_7,_8Prime>` | Tuple8.`trampolineM(Fn1<? super _8,? extends MonadRec<RecursiveResult<_8,_8Prime>,Tuple8<_1,_2,_3,_4,_5,_6,_7,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.

  - ### Uses of RecursiveResult in com.jnape.palatable.lambda.functions

    Method parameters in com.jnape.palatable.lambda.functions with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `default <C> Fn1<A,C>` | Fn1.`trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,Fn1<A,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.

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

    Methods in com.jnape.palatable.lambda.functions.recursion with type parameters of type RecursiveResult
    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.

    Methods in com.jnape.palatable.lambda.functions.recursion that return RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `<C,D> RecursiveResult<C,D>` | RecursiveResult.`biMap(Fn1<? super A,? extends C> lFn, Fn1<? super B,? extends D> rFn)` Dually map covariantly over both the left and right parameters.
    `<C> RecursiveResult<C,B>` | RecursiveResult.`biMapL(Fn1<? super A,? extends C> fn)` Covariantly map over the left parameter.
    `<C> RecursiveResult<A,C>` | RecursiveResult.`biMapR(Fn1<? super B,? extends C> fn)` Covariantly map over the right parameter.
    `<C> RecursiveResult<A,C>` | RecursiveResult.`discardL(Applicative<C,RecursiveResult<A,?>> appB)` Sequence both this `Applicative` and `appB`, discarding this `Applicative's` result and returning `appB`.
    `<C> RecursiveResult<A,B>` | RecursiveResult.`discardR(Applicative<C,RecursiveResult<A,?>> appB)` Sequence both this `Applicative` and `appB`, discarding `appB's` result and returning this `Applicative`.
    `<C> RecursiveResult<A,C>` | RecursiveResult.`flatMap(Fn1<? super B,? extends Monad<C,RecursiveResult<A,?>>> f)` Chain dependent computations that may continue or short-circuit based on previous results.
    `<C> RecursiveResult<A,C>` | RecursiveResult.`fmap(Fn1<? super B,? extends C> fn)` Covariantly transmute this functor's parameter using the given mapping function.
    `RecursiveResult<B,A>` | RecursiveResult.`invert()` Swap the type parameters.
    `<C> RecursiveResult<A,C>` | RecursiveResult.`pure(C c)` Lift the value `b` into this applicative functor.
    `static <A,B> RecursiveResult<A,B>` | RecursiveResult.`recurse(A a)` Static factory method for creating a "recurse" value.
    `static <A,B> RecursiveResult<A,B>` | RecursiveResult.`terminate(B b)` Static factory method for creating a "terminate" value.
    `<C> RecursiveResult<A,C>` | RecursiveResult.`trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,RecursiveResult<A,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<C> RecursiveResult<A,C>` | RecursiveResult.`zip(Applicative<Fn1<? super B,? extends C>,RecursiveResult<A,?>> 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.functions.recursion that return types with arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `static <A> Pure<RecursiveResult<A,?>>` | RecursiveResult.`pureRecursiveResult()` The canonical `Pure` instance for `RecursiveResult`.

    Method parameters in com.jnape.palatable.lambda.functions.recursion with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `B` | Trampoline.`checkedApply(Fn1<? super A,? extends RecursiveResult<A,B>> fn, A a)`
    `<C> RecursiveResult<A,C>` | RecursiveResult.`discardL(Applicative<C,RecursiveResult<A,?>> appB)` Sequence both this `Applicative` and `appB`, discarding this `Applicative's` result and returning `appB`.
    `<C> RecursiveResult<A,B>` | RecursiveResult.`discardR(Applicative<C,RecursiveResult<A,?>> appB)` Sequence both this `Applicative` and `appB`, discarding `appB's` result and returning this `Applicative`.
    `<C> RecursiveResult<A,C>` | RecursiveResult.`flatMap(Fn1<? super B,? extends Monad<C,RecursiveResult<A,?>>> f)` Chain dependent computations that may continue or short-circuit based on previous results.
    `static <A,B> Fn1<A,B>` | Trampoline.`trampoline(Fn1<? super A,? extends RecursiveResult<A,B>> fn)`
    `static <A,B> B` | Trampoline.`trampoline(Fn1<? super A,? extends RecursiveResult<A,B>> fn, A a)`
    `<C> RecursiveResult<A,C>` | RecursiveResult.`trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,RecursiveResult<A,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<C> RecursiveResult<A,C>` | RecursiveResult.`trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,RecursiveResult<A,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<C> RecursiveResult<A,C>` | RecursiveResult.`zip(Applicative<Fn1<? super B,? extends C>,RecursiveResult<A,?>> 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 RecursiveResult in com.jnape.palatable.lambda.functor.builtin

    Method parameters in com.jnape.palatable.lambda.functor.builtin with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `<B> Identity<B>` | Identity.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,Identity<?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> Lazy<B>` | Lazy.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,Lazy<?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> State<S,B>` | State.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,State<S,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> Writer<W,B>` | Writer.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,Writer<W,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<C> Const<A,C>` | Const.`trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,Const<A,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<C> Tagged<S,C>` | Tagged.`trampolineM(Fn1<? super B,? extends MonadRec<RecursiveResult<B,C>,Tagged<S,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<U> Market<A,B,S,U>` | Market.`trampolineM(Fn1<? super T,? extends MonadRec<RecursiveResult<T,U>,Market<A,B,S,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.

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

    Constructor parameters in com.jnape.palatable.lambda.internal.iteration with type arguments of type RecursiveResult
    Constructor and Description
    `TrampoliningIterator(Fn1<? super A,? extends Iterable<RecursiveResult<A,B>>> fn, A a)`

  - ### Uses of RecursiveResult in com.jnape.palatable.lambda.io

    Method parameters in com.jnape.palatable.lambda.io with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `<B> IO<B>` | IO.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,IO<?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.

  - ### Uses of RecursiveResult in com.jnape.palatable.lambda.monad

    Method parameters in com.jnape.palatable.lambda.monad with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `<B> MonadRec<B,M>` | MonadRec.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,M>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> SafeT<M,B>` | SafeT.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,SafeT<M,?>>> bounce)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.

  - ### Uses of RecursiveResult in com.jnape.palatable.lambda.monad.transformer.builtin

    Method parameters in com.jnape.palatable.lambda.monad.transformer.builtin with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `<B> IdentityT<M,B>` | IdentityT.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,IdentityT<M,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> LazyT<M,B>` | LazyT.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,LazyT<M,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> MaybeT<M,B>` | MaybeT.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,MaybeT<M,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> ReaderT<R,M,B>` | ReaderT.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,ReaderT<R,M,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> StateT<S,M,B>` | StateT.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,StateT<S,M,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<B> WriterT<W,M,B>` | WriterT.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,WriterT<W,M,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `<R2> EitherT<M,L,R2>` | EitherT.`trampolineM(Fn1<? super R,? extends MonadRec<RecursiveResult<R,R2>,EitherT<M,L,?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.

  - ### Uses of RecursiveResult in com.jnape.palatable.lambda.optics

    Method parameters in com.jnape.palatable.lambda.optics with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `default <U> Iso<S,U,A,B>` | Iso.`trampolineM(Fn1<? super T,? extends MonadRec<RecursiveResult<T,U>,Iso<S,?,A,B>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `default <U> Lens<S,U,A,B>` | Lens.`trampolineM(Fn1<? super T,? extends MonadRec<RecursiveResult<T,U>,Lens<S,?,A,B>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.
    `default <U> Prism<S,U,A,B>` | Prism.`trampolineM(Fn1<? super T,? extends MonadRec<RecursiveResult<T,U>,Prism<S,?,A,B>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.

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

    Method parameters in com.jnape.palatable.lambda.traversable with type arguments of type RecursiveResult
    Modifier and Type | Method and Description
    --- | ---
    `<B> LambdaIterable<B>` | LambdaIterable.`trampolineM(Fn1<? super A,? extends MonadRec<RecursiveResult<A,B>,LambdaIterable<?>>> fn)` Given some operation yielding a `RecursiveResult` inside this `MonadRec`, internally trampoline the operation until it yields a `termination` instruction.