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

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

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

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

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

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

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

    Methods in com.jnape.palatable.lambda.adt.coproduct that return CoProduct4
    Modifier and Type | Method and Description
    --- | ---
    `default CoProduct4<A,B,C,D,? extends CoProduct4<A,B,C,D,?>>` | CoProduct5.`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.
    `default <D> CoProduct4<A,B,C,D,? extends CoProduct4<A,B,C,D,?>>` | CoProduct3.`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 CoProduct4
    Modifier and Type | Method and Description
    --- | ---
    `default CoProduct4<A,B,C,D,? extends CoProduct4<A,B,C,D,?>>` | CoProduct5.`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.
    `default <D> CoProduct4<A,B,C,D,? extends CoProduct4<A,B,C,D,?>>` | CoProduct3.`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 CoProduct4
    Modifier and Type | Method and Description
    --- | ---
    `default CoProduct4<A,B,C,D,? extends CoProduct4<A,B,C,D,?>>` | CoProduct5.`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.