## Uses of Class
com.jnape.palatable.lambda.adt.hlist.HList.HCons

- Packages that use HList.HCons
  Package | Description
  --- | ---
  com.jnape.palatable.lambda.adt.hlist |
  com.jnape.palatable.lambda.adt.hmap |
  com.jnape.palatable.lambda.optics.lenses |

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

    Classes in com.jnape.palatable.lambda.adt.hlist with type parameters of type HList.HCons
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Index<Target,TargetList extends HList.HCons<?,?>>` HList indexes representing a value at arbitrary depth in some compatible HList.

    Subclasses of HList.HCons in com.jnape.palatable.lambda.adt.hlist
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SingletonHList<_1>` A singleton HList.
    `class` | `Tuple2<_1,_2>` A 2-element tuple product type, implemented as a specialized HList.
    `class` | `Tuple3<_1,_2,_3>` A 3-element tuple product type, implemented as a specialized HList.
    `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.

    Methods in com.jnape.palatable.lambda.adt.hlist that return HList.HCons
    Modifier and Type | Method and Description
    --- | ---
    `<_0> HList.HCons<_0,Tuple8<_1,_2,_3,_4,_5,_6,_7,_8>>` | Tuple8.`cons(_0 _0)` Cons an element onto the front of this HList.
    `static <Head,Tail extends HList> HList.HCons<Head,Tail>` | HList.`cons(Head head, Tail tail)` Static factory method for creating an HList from the given head and tail.
    `abstract <NewHead> HList.HCons<NewHead,? extends HList>` | HList.`cons(NewHead newHead)` Cons an element onto the front of this HList.
    `<NewHead> HList.HCons<NewHead,? extends HList.HCons<Head,Tail>>` | HList.HCons.`cons(NewHead newHead)`

    Methods in com.jnape.palatable.lambda.adt.hlist that return types with arguments of type HList.HCons
    Modifier and Type | Method and Description
    --- | ---
    `<NewHead> Index<Target,HList.HCons<NewHead,? extends TargetList>>` | Index.`after()` Nest this index deeper by one element.
    `<NewHead> HList.HCons<NewHead,? extends HList.HCons<Head,Tail>>` | HList.HCons.`cons(NewHead newHead)`
    `static <Target> Index<Target,HList.HCons<Target,?>>` | Index.`index()` Create a root index for a head value of type `Target`.

  - ### Uses of HList.HCons in com.jnape.palatable.lambda.adt.hmap

    Methods in com.jnape.palatable.lambda.adt.hmap with type parameters of type HList.HCons
    Modifier and Type | Method and Description
    --- | ---
    `default <A,NewValues extends HList.HCons<A,Values>> Schema<NewValues>` | Schema.`add(TypeSafeKey<?,A> key)` Add a new `TypeSafeKey` to the head of this `Schema`.

  - ### Uses of HList.HCons in com.jnape.palatable.lambda.optics.lenses

    Methods in com.jnape.palatable.lambda.optics.lenses with type parameters of type HList.HCons
    Modifier and Type | Method and Description
    --- | ---
    `static <E,List extends HList.HCons<?,?>> Lens.Simple<List,E>` | HListLens.`elementAt(Index<E,List> index)` Focus invariantly on the element at the specified `Index` in an `HList`.

    Methods in com.jnape.palatable.lambda.optics.lenses that return types with arguments of type HList.HCons
    Modifier and Type | Method and Description
    --- | ---
    `static <Head,Tail extends HList> Lens.Simple<HList.HCons<Head,? extends Tail>,Head>` | HListLens.`head()` Focus on the head of an `HList`.
    `static <Head,Tail extends HList> Lens.Simple<HList.HCons<Head,? extends Tail>,Tail>` | HListLens.`tail()` Focus on the tail of an `HList`.