# Hierarchy For Package com.jnape.palatable.lambda.optics

Package Hierarchies:

- All Packages

## Interface Hierarchy

- com.jnape.palatable.lambda.functor.Contravariant<A,C>
  - com.jnape.palatable.lambda.functor.Profunctor<A,B,PF>
    - com.jnape.palatable.lambda.optics.Iso<S,T,A,B> (also extends com.jnape.palatable.lambda.monad.MonadRec<A,M>, com.jnape.palatable.lambda.optics.Optic<P,F,S,T,A,B>)
      - com.jnape.palatable.lambda.optics.Iso.Simple<S,A> (also extends com.jnape.palatable.lambda.optics.Optic.Simple<P,F,S,A>)
    - com.jnape.palatable.lambda.optics.Lens<S,T,A,B> (also extends com.jnape.palatable.lambda.monad.MonadRec<A,M>, com.jnape.palatable.lambda.optics.Optic<P,F,S,T,A,B>)
      - com.jnape.palatable.lambda.optics.Lens.Simple<S,A> (also extends com.jnape.palatable.lambda.optics.Optic.Simple<P,F,S,A>)
    - com.jnape.palatable.lambda.optics.Prism<S,T,A,B> (also extends com.jnape.palatable.lambda.monad.MonadRec<A,M>, com.jnape.palatable.lambda.optics.ProtoOptic<P,S,T,A,B>)
      - com.jnape.palatable.lambda.optics.Prism.Simple<S,A>
- com.jnape.palatable.lambda.functor.Functor<A,F>
  - com.jnape.palatable.lambda.functor.Applicative<A,App>
    - com.jnape.palatable.lambda.monad.Monad<A,M>
      - com.jnape.palatable.lambda.monad.MonadRec<A,M>
        - com.jnape.palatable.lambda.optics.Iso<S,T,A,B> (also extends com.jnape.palatable.lambda.optics.Optic<P,F,S,T,A,B>, com.jnape.palatable.lambda.functor.Profunctor<A,B,PF>)
          - com.jnape.palatable.lambda.optics.Iso.Simple<S,A> (also extends com.jnape.palatable.lambda.optics.Optic.Simple<P,F,S,A>)
        - com.jnape.palatable.lambda.optics.Lens<S,T,A,B> (also extends com.jnape.palatable.lambda.optics.Optic<P,F,S,T,A,B>, com.jnape.palatable.lambda.functor.Profunctor<A,B,PF>)
          - com.jnape.palatable.lambda.optics.Lens.Simple<S,A> (also extends com.jnape.palatable.lambda.optics.Optic.Simple<P,F,S,A>)
        - com.jnape.palatable.lambda.optics.Prism<S,T,A,B> (also extends com.jnape.palatable.lambda.functor.Profunctor<A,B,PF>, com.jnape.palatable.lambda.optics.ProtoOptic<P,S,T,A,B>)
          - com.jnape.palatable.lambda.optics.Prism.Simple<S,A>
- com.jnape.palatable.lambda.optics.Optic<P,F,S,T,A,B>
  - com.jnape.palatable.lambda.optics.Iso<S,T,A,B> (also extends com.jnape.palatable.lambda.monad.MonadRec<A,M>, com.jnape.palatable.lambda.functor.Profunctor<A,B,PF>)
    - com.jnape.palatable.lambda.optics.Iso.Simple<S,A> (also extends com.jnape.palatable.lambda.optics.Optic.Simple<P,F,S,A>)
  - com.jnape.palatable.lambda.optics.Lens<S,T,A,B> (also extends com.jnape.palatable.lambda.monad.MonadRec<A,M>, com.jnape.palatable.lambda.functor.Profunctor<A,B,PF>)
    - com.jnape.palatable.lambda.optics.Lens.Simple<S,A> (also extends com.jnape.palatable.lambda.optics.Optic.Simple<P,F,S,A>)
  - com.jnape.palatable.lambda.optics.Optic.Simple<P,F,S,A>
    - com.jnape.palatable.lambda.optics.Iso.Simple<S,A> (also extends com.jnape.palatable.lambda.optics.Iso<S,T,A,B>)
    - com.jnape.palatable.lambda.optics.Lens.Simple<S,A> (also extends com.jnape.palatable.lambda.optics.Lens<S,T,A,B>)
  - com.jnape.palatable.lambda.optics.ProtoOptic<P,S,T,A,B>
    - com.jnape.palatable.lambda.optics.Prism<S,T,A,B> (also extends com.jnape.palatable.lambda.monad.MonadRec<A,M>, com.jnape.palatable.lambda.functor.Profunctor<A,B,PF>)
      - com.jnape.palatable.lambda.optics.Prism.Simple<S,A>