## Uses of Interface
com.jnape.palatable.lambda.optics.Lens.Simple

- Packages that use Lens.Simple
  Package | Description
  --- | ---
  com.jnape.palatable.lambda.adt.hmap |
  com.jnape.palatable.lambda.optics |
  com.jnape.palatable.lambda.optics.lenses |

- - ### Uses of Lens.Simple in com.jnape.palatable.lambda.adt.hmap

    Subinterfaces of Lens.Simple in com.jnape.palatable.lambda.adt.hmap
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `Schema<Values extends HList>` A lens that focuses on the `heterogeneous list` of values pointed at by one or more `typesafe keys` that must all exist in the same `HMap` to be collectively extracted.

  - ### Uses of Lens.Simple in com.jnape.palatable.lambda.optics

    Methods in com.jnape.palatable.lambda.optics that return Lens.Simple
    Modifier and Type | Method and Description
    --- | ---
    `static <S,A> Lens.Simple<S,A>` | Lens.Simple.`adapt(Optic<? super Cartesian<?,?,?>,? super Functor<?,?>,S,S,A,A> lens)` Adapt a `Lens` with the right variance to a `Lens.Simple`.
    `default <B> Lens.Simple<S,B>` | Lens.Simple.`andThen(Optic.Simple<? super Cartesian<?,?,?>,? super Functor<?,?>,A,B> f)` Compose two simple optics from left to right.
    `static <S,A,B> Lens.Simple<S,Tuple2<A,B>>` | Lens.`both(Lens.Simple<S,A> f, Lens.Simple<S,B> g)` Dually focus on two simple lenses at the same time.
    `static <S,A,B> Lens.Simple<S,Tuple2<A,B>>` | Lens.Simple.`both(Lens<S,S,A,A> f, Lens<S,S,B,B> g)` Specialization of `Lens.both(Lens, Lens)` for simple lenses.
    `default <R> Lens.Simple<R,A>` | Lens.Simple.`compose(Optic.Simple<? super Cartesian<?,?,?>,? super Functor<?,?>,R,S> g)` Compose two simple optics from right to left.
    `static <S,A> Lens.Simple<S,A>` | Lens.`simpleLens(Fn1<? super S,? extends A> getter, Fn2<? super S,? super A,? extends S> setter)` Static factory method for creating a simple lens from a getter function and a setter function.
    `default Lens.Simple<S,A>` | Iso.Simple.`toLens()` Convert this `Iso` into a `Lens`.

    Methods in com.jnape.palatable.lambda.optics with parameters of type Lens.Simple
    Modifier and Type | Method and Description
    --- | ---
    `static <S,A,B> Lens.Simple<S,Tuple2<A,B>>` | Lens.`both(Lens.Simple<S,A> f, Lens.Simple<S,B> g)` Dually focus on two simple lenses at the same time.
    `static <S,A,B> Lens.Simple<S,Tuple2<A,B>>` | Lens.`both(Lens.Simple<S,A> f, Lens.Simple<S,B> g)` Dually focus on two simple lenses at the same time.

  - ### Uses of Lens.Simple in com.jnape.palatable.lambda.optics.lenses

    Methods in com.jnape.palatable.lambda.optics.lenses that return Lens.Simple
    Modifier and Type | Method and Description
    --- | ---
    `static <L,R> Lens.Simple<Either<L,R>,Maybe<L>>` | EitherLens.`_left()` Convenience static factory method for creating a lens over left values, wrapping them in a `Maybe`.
    `static <L,R> Lens.Simple<Either<L,R>,Maybe<R>>` | EitherLens.`_right()` Convenience static factory method for creating a lens over right values, wrapping them in a `Maybe`.
    `static <K,V> Lens.Simple<Map<K,V>,Map<K,V>>` | MapLens.`asCopy()` A lens that focuses on a copy of a Map.
    `static <X> Lens.Simple<List<X>,List<X>>` | ListLens.`asCopy()` Convenience static factory method for creating a lens over a copy of a list.
    `static <X,CX extends Collection<X>> Lens.Simple<CX,CX>` | CollectionLens.`asCopy(Fn1<? super CX,? extends CX> copyFn)` Convenience static factory method for creating a lens that focuses on a copy of a `Collection`, given a function that creates the copy.
    `static <V> Lens.Simple<V,Maybe<V>>` | MaybeLens.`asMaybe()` Convenience static factory method for creating a lens that focuses on a value as a `Maybe`.
    `static <X,CX extends Collection<X>> Lens.Simple<CX,Set<X>>` | CollectionLens.`asSet(Fn1<? super CX,? extends CX> copyFn)` Convenience static factory method for creating a lens that focuses on an arbitrary `Collection` as a `Set`.
    `static <X,CX extends Collection<X>> Lens.Simple<CX,Stream<X>>` | CollectionLens.`asStream(Fn1<? super CX,? extends CX> copyFn)` Convenience static factory method for creating a lens that focuses on a Collection as a Stream.
    `static <A> Lens.Simple<Set<A>,Boolean>` | SetLens.`contains(A a)` A lens that focuses on whether a `Set` contains some value `a`.
    `static <A,SetA extends Set<A>> Lens.Simple<SetA,Boolean>` | SetLens.`contains(Fn1<? super SetA,? extends SetA> copyFn, A a)` A lens that focuses on whether a `Set` contains some value `a`.
    `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`.
    `static <X> Lens.Simple<List<X>,Maybe<X>>` | ListLens.`elementAt(int index)` Convenience static factory method for creating a lens that focuses on an element in a list at a particular index.
    `static <X> Lens.Simple<List<X>,X>` | ListLens.`elementAt(int index, X defaultValue)` Convenience static factory method for creating a lens that focuses on an element in a list at a particular index, returning `defaultValue` if there is no value at that index.
    `static <A> Lens.Simple<Iterable<A>,Maybe<A>>` | IterableLens.`head()` A lens focusing on the head of a given `Iterable`.
    `static <Head,Tail extends HList> Lens.Simple<HList.HCons<Head,? extends Tail>,Head>` | HListLens.`head()` Focus on the head of an `HList`.
    `static <K,V> Lens.Simple<Map<K,V>,Map<V,K>>` | MapLens.`inverted()` A lens that focuses on the inverse of a map (keys and values swapped).
    `static <K,V> Lens.Simple<Map<K,V>,Set<K>>` | MapLens.`keys()` A lens that focuses on the keys of a map.
    `static <K,V,V2> Lens.Simple<Map<K,V>,Map<K,V2>>` | MapLens.`mappingValues(Iso<V,V,V2,V2> iso)` A lens that focuses on a map while mapping its values with the mapping `Iso`.
    `static <A> Lens.Simple<Iterable<A>,Iterable<A>>` | IterableLens.`tail()` A lens focusing on the tail of an `Iterable`.
    `static <Head,Tail extends HList> Lens.Simple<HList.HCons<Head,? extends Tail>,Tail>` | HListLens.`tail()` Focus on the tail of an `HList`.
    `static <K,V> Lens.Simple<Map<K,V>,Maybe<V>>` | MapLens.`valueAt(K k)` A lens that focuses on a value at a key in a map, as a `Maybe`.
    `static <K,V> Lens.Simple<Map<K,V>,V>` | MapLens.`valueAt(K k, V defaultValue)` A lens that focuses on a value at a key in a map, falling back to `defaultV` if the value is missing.
    `static <A> Lens.Simple<HMap,Maybe<A>>` | HMapLens.`valueAt(TypeSafeKey<?,A> key)` A lens that focuses on a value at a `TypeSafeKey.Simple`<A> in an `HMap`, as a `Maybe`.
    `static <K,V> Lens.Simple<Map<K,V>,Collection<V>>` | MapLens.`values()` A lens that focuses on the values of a map.