| Package | Description |
|---|---|
| io.atlassian.fugue.optic | |
| io.atlassian.fugue.optic.law | |
| io.atlassian.fugue.optic.std |
| Class and Description |
|---|
| Fold
A
Fold can be seen as a Getter with many targets or a weaker
PTraversal which cannot modify its target. |
| Getter
A
Getter can be seen as a glorified get method between a type S and a
type A. |
Iso
PIso when S = T and A = B |
Lens
PLens with a monomorphic set function |
Optional
POptional restricted to monomorphic update |
| PIso
A
PIso defines an isomorphism between types S, A and B, T: |
| PLens
A
PLens can be seen as a pair of functions: - `get: S => A` i.e. |
| POptional
A
POptional can be seen as a pair of functions: - `getOrModify: S
=> T \/ A` - `set : (B, S) => T` |
| PPrism
A
PPrism can be seen as a pair of functions: - `getOrModify: S =>
T \/ A` - `reverseGet : B => T` |
Prism
PPrism restricted to monomorphic update |
| PSetter
A
PSetter is a generalisation of Functor map: - `map: (A => B)
=> F[A] => F[B]` - `modify: (A => B) => S => T` |
| PTraversal
A
PTraversal can be seen as a POptional generalised to 0 to n
targets where n can be infinite. |
Setter
PSetter with a monomorphic modify function |
| Traversal |
| Class and Description |
|---|
| PIso
A
PIso defines an isomorphism between types S, A and B, T: |
| PLens
A
PLens can be seen as a pair of functions: - `get: S => A` i.e. |
| POptional
A
POptional can be seen as a pair of functions: - `getOrModify: S
=> T \/ A` - `set : (B, S) => T` |
| PPrism
A
PPrism can be seen as a pair of functions: - `getOrModify: S =>
T \/ A` - `reverseGet : B => T` |
| PSetter
A
PSetter is a generalisation of Functor map: - `map: (A => B)
=> F[A] => F[B]` - `modify: (A => B) => S => T` |
| PTraversal
A
PTraversal can be seen as a POptional generalised to 0 to n
targets where n can be infinite. |
| Class and Description |
|---|
Iso
PIso when S = T and A = B |
Lens
PLens with a monomorphic set function |
| PLens
A
PLens can be seen as a pair of functions: - `get: S => A` i.e. |
| PPrism
A
PPrism can be seen as a pair of functions: - `getOrModify: S =>
T \/ A` - `reverseGet : B => T` |
Prism
PPrism restricted to monomorphic update |
Copyright © 2016 Atlassian. All rights reserved.