| Fold<S,A> |
A Fold can be seen as a Getter with many targets or a weaker
PTraversal which cannot modify its target.
|
| Getter<S,A> |
A Getter can be seen as a glorified get method between a type S and a
type A.
|
| Iso<S,A> |
PIso when S = T and A = B
|
| Lens<S,A> |
PLens with a monomorphic set function
|
| Optional<S,A> |
|
| PIso<S,T,A,B> |
A PIso defines an isomorphism between types S, A and B, T:
|
| PLens<S,T,A,B> |
A PLens can be seen as a pair of functions: - `get: S => A` i.e.
|
| POptional<S,T,A,B> |
A POptional can be seen as a pair of functions: - `getOrModify: S
=> T \/ A` - `set : (B, S) => T`
|
| PPrism<S,T,A,B> |
A PPrism can be seen as a pair of functions: - `getOrModify: S =>
T \/ A` - `reverseGet : B => T`
|
| Prism<S,A> |
PPrism restricted to monomorphic update
|
| PSetter<S,T,A,B> |
A PSetter is a generalisation of Functor map: - `map: (A => B)
=> F[A] => F[B]` - `modify: (A => B) => S => T`
|
| PTraversal<S,T,A,B> |
|
| Setter<S,A> |
PSetter with a monomorphic modify function
|
| Traversal<S,A> |
|