## Uses of Class
com.jnape.palatable.lambda.adt.choice.Choice4

- Packages that use Choice4
  Package | Description
  --- | ---
  com.jnape.palatable.lambda.adt.choice |

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

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

    Methods in com.jnape.palatable.lambda.adt.choice that return Choice4
    Modifier and Type | Method and Description
    --- | ---
    `static <A,B,C,D> Choice4<A,B,C,D>` | Choice4.`a(A a)` Static factory method for wrapping a value of type `A` in a `Choice4`.
    `static <A,B,C,D> Choice4<A,B,C,D>` | Choice4.`b(B b)` Static factory method for wrapping a value of type `B` in a `Choice4`.
    `<E,F> Choice4<A,B,E,F>` | Choice4.`biMap(Fn1<? super C,? extends E> lFn, Fn1<? super D,? extends F> rFn)`
    `<E> Choice4<A,B,E,D>` | Choice4.`biMapL(Fn1<? super C,? extends E> fn)` Covariantly map over the left parameter.
    `<E> Choice4<A,B,C,E>` | Choice4.`biMapR(Fn1<? super D,? extends E> fn)` Covariantly map over the right parameter.
    `static <A,B,C,D> Choice4<A,B,C,D>` | Choice4.`c(C c)` Static factory method for wrapping a value of type `C` in a `Choice4`.
    `Choice4<A,B,C,D>` | Choice5.`converge(Fn1<? super E,? extends CoProduct4<A,B,C,D,?>> convergenceFn)` Converge this coproduct down to a lower order coproduct by mapping the last possible type into an earlier possible type.
    `static <A,B,C,D> Choice4<A,B,C,D>` | Choice4.`d(D d)` Static factory method for wrapping a value of type `D` in a `Choice4`.
    `<E> Choice4<A,B,C,E>` | Choice4.`discardL(Applicative<E,Choice4<A,B,C,?>> appB)` Sequence both this `Applicative` and `appB`, discarding this `Applicative's` result and returning `appB`.
    `<E> Choice4<A,B,C,D>` | Choice4.`discardR(Applicative<E,Choice4<A,B,C,?>> appB)` Sequence both this `Applicative` and `appB`, discarding `appB's` result and returning this `Applicative`.
    `<D> Choice4<A,B,C,D>` | Choice3.`diverge()` Diverge this coproduct by introducing another possible type that it could represent.
    `<E> Choice4<A,B,C,E>` | Choice4.`flatMap(Fn1<? super D,? extends Monad<E,Choice4<A,B,C,?>>> f)` Chain dependent computations that may continue or short-circuit based on previous results.
    `<E> Choice4<A,B,C,E>` | Choice4.`fmap(Fn1<? super D,? extends E> fn)` Covariantly transmute this functor's parameter using the given mapping function.
    `<E> Choice4<A,B,C,E>` | Choice4.`pure(E e)` Lift the value `b` into this applicative functor.
    `<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.
    `<E> Choice4<A,B,C,E>` | Choice4.`zip(Applicative<Fn1<? super D,? extends E>,Choice4<A,B,C,?>> 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.choice that return types with arguments of type Choice4
    Modifier and Type | Method and Description
    --- | ---
    `<E> Lazy<Choice4<A,B,C,E>>` | Choice4.`lazyZip(Lazy<? extends Applicative<Fn1<? super D,? extends E>,Choice4<A,B,C,?>>> 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 <A,B,C> Pure<Choice4<A,B,C,?>>` | Choice4.`pureChoice()` The canonical `Pure` instance for `Choice4`.

    Method parameters in com.jnape.palatable.lambda.adt.choice with type arguments of type Choice4
    Modifier and Type | Method and Description
    --- | ---
    `<E> Choice4<A,B,C,E>` | Choice4.`discardL(Applicative<E,Choice4<A,B,C,?>> appB)` Sequence both this `Applicative` and `appB`, discarding this `Applicative's` result and returning `appB`.
    `<E> Choice4<A,B,C,D>` | Choice4.`discardR(Applicative<E,Choice4<A,B,C,?>> appB)` Sequence both this `Applicative` and `appB`, discarding `appB's` result and returning this `Applicative`.
    `<E> Choice4<A,B,C,E>` | Choice4.`flatMap(Fn1<? super D,? extends Monad<E,Choice4<A,B,C,?>>> f)` Chain dependent computations that may continue or short-circuit based on previous results.
    `<E> Lazy<Choice4<A,B,C,E>>` | Choice4.`lazyZip(Lazy<? extends Applicative<Fn1<? super D,? extends E>,Choice4<A,B,C,?>>> 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.
    `<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.
    `<E> Choice4<A,B,C,E>` | Choice4.`zip(Applicative<Fn1<? super D,? extends E>,Choice4<A,B,C,?>> appFn)` Given another instance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports.