# Package com.jnape.palatable.lambda.optics

- Interface Summary
  Interface | Description
  --- | ---
  Iso<S,T,A,B> | An `Iso` (short for "isomorphism") is an invertible `Lens`: an `Optic` encoding of a bi-directional focusing of two types, and like ``Lens`es`, can be ``View`ed`, `Set`, and ``updated``.
  Iso.Simple<S,A> | A convenience type with a simplified type signature for common isos with both unified "larger" values and unified "smaller" values.
  Lens<S,T,A,B> | An approximation of van Laarhoven lenses.
  Lens.Simple<S,A> | A convenience type with a simplified type signature for common lenses with both unified "larger" values and unified "smaller" values.
  Optic<P extends Profunctor<?,?,? extends P>,F extends Functor<?,? extends F>,S,T,A,B> | A generic supertype representation for profunctor optics.
  Optic.Simple<P extends Profunctor<?,?,? extends P>,F extends Functor<?,? extends F>,S,A> | An convenience type with a simplified signature for `optics` with unified `S/T` and `A/B` types.
  Prism<S,T,A,B> | Prisms are `Isos` that can fail in one direction.
  Prism.Simple<S,A> | A convenience type with a simplified type signature for common `prism` with unified `S/T` and `A/B` types.
  ProtoOptic<P extends Profunctor<?,?,? extends P>,S,T,A,B> | A generic supertype representation for a profunctor `Optic` that requires a `Pure` implementation to derive its `Functor` constraint and graduate to a full-fledge `Optic`, equipped with a default `Optic` instance for the profunctor constraint and `Identity`.