## Uses of Interface
com.jnape.palatable.lambda.adt.product.Product4

- Packages that use Product4
  Package | Description
  --- | ---
  com.jnape.palatable.lambda.adt.coproduct |
  com.jnape.palatable.lambda.adt.hlist |
  com.jnape.palatable.lambda.adt.product |
  com.jnape.palatable.lambda.functions.builtin.fn2 |

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

    Methods in com.jnape.palatable.lambda.adt.coproduct that return Product4
    Modifier and Type | Method and Description
    --- | ---
    `default Product4<Maybe<A>,Maybe<B>,Maybe<C>,Maybe<D>>` | CoProduct4.`project()` Project this coproduct onto a product.

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

    Classes in com.jnape.palatable.lambda.adt.hlist that implement Product4
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Tuple4<_1,_2,_3,_4>` A 4-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple5<_1,_2,_3,_4,_5>` A 5-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple6<_1,_2,_3,_4,_5,_6>` A 6-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple7<_1,_2,_3,_4,_5,_6,_7>` A 7-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple8<_1,_2,_3,_4,_5,_6,_7,_8>` An 8-element tuple product type, implemented as a specialized HList.

  - ### Uses of Product4 in com.jnape.palatable.lambda.adt.product

    Subinterfaces of Product4 in com.jnape.palatable.lambda.adt.product
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `Product5<_1,_2,_3,_4,_5>` A product with five values.
    `interface` | `Product6<_1,_2,_3,_4,_5,_6>` A product with six values.
    `interface` | `Product7<_1,_2,_3,_4,_5,_6,_7>` A product with seven values.
    `interface` | `Product8<_1,_2,_3,_4,_5,_6,_7,_8>` A product with eight values.

    Methods in com.jnape.palatable.lambda.adt.product that return Product4
    Modifier and Type | Method and Description
    --- | ---
    `default Product4<_2,_1,_3,_4>` | Product4.`invert()`
    `static <_1,_2,_3,_4> Product4<_1,_2,_3,_4>` | Product4.`product(_1 _1, _2 _2, _3 _3, _4 _4)` Static factory method for creating a generic `Product4`.
    `default Product4<_2,_3,_1,_4>` | Product4.`rotateL3()`
    `default Product4<_2,_3,_4,_1>` | Product4.`rotateL4()` Rotate the first four values of this product one slot to the left.
    `default Product4<_3,_1,_2,_4>` | Product4.`rotateR3()`
    `default Product4<_4,_1,_2,_3>` | Product4.`rotateR4()` Rotate the first four values of this product one slot to the right.

  - ### Uses of Product4 in com.jnape.palatable.lambda.functions.builtin.fn2

    Methods in com.jnape.palatable.lambda.functions.builtin.fn2 that return types with arguments of type Product4
    Modifier and Type | Method and Description
    --- | ---
    `static <A,B,C,D,E> Fn1<Product4<A,B,C,D>,E>` | Into4.`into4(Fn4<? super A,? super B,? super C,? super D,? extends E> fn)`

    Methods in com.jnape.palatable.lambda.functions.builtin.fn2 with parameters of type Product4
    Modifier and Type | Method and Description
    --- | ---
    `E` | Into4.`checkedApply(Fn4<? super A,? super B,? super C,? super D,? extends E> fn, Product4<A,B,C,D> product)`
    `static <A,B,C,D,E> E` | Into4.`into4(Fn4<? super A,? super B,? super C,? super D,? extends E> fn, Product4<A,B,C,D> product)`