## Uses of Interface
com.jnape.palatable.lambda.adt.coproduct.CoProduct3

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

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

    Classes in com.jnape.palatable.lambda.adt that implement CoProduct3
    Modifier and Type | Class and Description
    --- | ---
    `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>>`.

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

    Classes in com.jnape.palatable.lambda.adt.choice that implement CoProduct3
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Choice3<A,B,C>` Canonical ADT representation of `CoProduct3`.

    Method parameters in com.jnape.palatable.lambda.adt.choice with type arguments of type CoProduct3
    Modifier and Type | Method and Description
    --- | ---
    `Choice3<A,B,C>` | Choice4.`converge(Fn1<? super D,? extends CoProduct3<A,B,C,?>> convergenceFn)` Converge this coproduct down to a lower order coproduct by mapping the last possible type into an earlier possible type.

  - ### Uses of CoProduct3 in com.jnape.palatable.lambda.adt.coproduct

    Classes in com.jnape.palatable.lambda.adt.coproduct with type parameters of type CoProduct3
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `CoProduct3<A,B,C,CP3 extends CoProduct3<A,B,C,?>>` A generalization of the coproduct of three types.

    Methods in com.jnape.palatable.lambda.adt.coproduct that return CoProduct3
    Modifier and Type | Method and Description
    --- | ---
    `default CoProduct3<A,B,C,? extends CoProduct3<A,B,C,?>>` | CoProduct4.`converge(Fn1<? super D,? extends CoProduct3<A,B,C,?>> convergenceFn)` Converge this coproduct down to a lower order coproduct by mapping the last possible type into an earlier possible type.
    `default <C> CoProduct3<A,B,C,? extends CoProduct3<A,B,C,?>>` | CoProduct2.`diverge()` Diverge this coproduct by introducing another possible type that it could represent.

    Methods in com.jnape.palatable.lambda.adt.coproduct that return types with arguments of type CoProduct3
    Modifier and Type | Method and Description
    --- | ---
    `default CoProduct3<A,B,C,? extends CoProduct3<A,B,C,?>>` | CoProduct4.`converge(Fn1<? super D,? extends CoProduct3<A,B,C,?>> convergenceFn)` Converge this coproduct down to a lower order coproduct by mapping the last possible type into an earlier possible type.
    `default <C> CoProduct3<A,B,C,? extends CoProduct3<A,B,C,?>>` | CoProduct2.`diverge()` Diverge this coproduct by introducing another possible type that it could represent.

    Method parameters in com.jnape.palatable.lambda.adt.coproduct with type arguments of type CoProduct3
    Modifier and Type | Method and Description
    --- | ---
    `default CoProduct3<A,B,C,? extends CoProduct3<A,B,C,?>>` | CoProduct4.`converge(Fn1<? super D,? extends CoProduct3<A,B,C,?>> convergenceFn)` Converge this coproduct down to a lower order coproduct by mapping the last possible type into an earlier possible type.