monocle
package monocle
- Alphabetic
 - By Inheritance
 
- monocle
 - AnyRef
 - Any
 
- Hide All
 - Show All
 
- Public
 - Protected
 
Type Members
-   abstract  class Fold[S, A] extends Serializable
A Fold can be seen as a Getter with many targets or a weaker PTraversal which cannot modify its target.
 -  sealed abstract class FoldInstances extends AnyRef
 -   abstract  class Getter[S, A] extends Serializable
A Getter can be seen as a glorified get method between a type S and a type A.
 -  sealed abstract class GetterInstances extends GetterInstances0
 -  sealed abstract class GetterInstances0 extends AnyRef
 -  type Iso[S, A] = PIso[S, S, A, A]
 -  sealed abstract class IsoInstances extends AnyRef
 -  type Lens[S, A] = PLens[S, S, A, A]
 -  sealed abstract class LensInstances extends AnyRef
 -  type Optional[S, A] = POptional[S, S, A, A]
 -  sealed abstract class OptionalInstances extends AnyRef
 -   abstract  class PIso[S, T, A, B] extends Serializable
Iso is a type alias for PIso where
S=AandT=B:Iso is a type alias for PIso where
S=AandT=B:type Iso[S, A] = PIso[S, S, A, A]An Iso defines an isomorphism between a type S and A:
get --------------------> S A <-------------------- reverseGetA PIso allows to lift a function
f: A => BtoS => Tand a functiong: T => StoB => Ag S T S <-------- T | ↑ | ↑ | | | | get | | reverseGet reverse.reverseGet | | reverse.get | | | | ↓ f | ↓ | A --------> B A BA PIso is also a valid Getter, Fold, PLens, PPrism, POptional, PTraversal and PSetter
- S
 the source of a PIso
- T
 the modified source of a PIso
- A
 the target of a PIso
- B
 the modified target of a PIso
- See also
 
 -   abstract  class PLens[S, T, A, B] extends Serializable
A PLens can be seen as a pair of functions:
A PLens can be seen as a pair of functions:
get: S => Ai.e. from anS, we can extract anAset: (B, S) => Ti.e. if we replace anAby aBin anS, we obtain aT
A PLens could also be defined as a weaker PIso where set requires an additional parameter than reverseGet.
PLens stands for Polymorphic Lens as it set and modify methods change a type
AtoBandStoT. Lens is a type alias for PLens restricted to monomorphic updates:type Lens[S, A] = PLens[S, S, A, A]A PLens is also a valid Getter, Fold, POptional, PTraversal and PSetter
Typically a PLens or Lens can be defined between a Product (e.g. case class, tuple, HList) and one of its component.
- S
 the source of a PLens
- T
 the modified source of a PLens
- A
 the target of a PLens
- B
 the modified target of a PLens
- See also
 
 -   abstract  class POptional[S, T, A, B] extends Serializable
A POptional can be seen as a pair of functions:
A POptional can be seen as a pair of functions:
getOrModify: S => Either[T, A]set : (B, S) => T
A POptional could also be defined as a weaker PLens and weaker PPrism
POptional stands for Polymorphic Optional as it set and modify methods change a type
AtoBandStoT. Optional is a type alias for POptional restricted to monomorphic updates:type Optional[S, A] = POptional[S, S, A, A]- S
 the source of a POptional
- T
 the modified source of a POptional
- A
 the target of a POptional
- B
 the modified target of a POptional
- See also
 
 -   abstract  class PPrism[S, T, A, B] extends Serializable
A PPrism can be seen as a pair of functions:
A PPrism can be seen as a pair of functions:
getOrModify: S => Either[T, A]reverseGet : B => T
A PPrism could also be defined as a weaker PIso where get can fail.
Typically a PPrism or Prism encodes the relation between a Sum or CoProduct type (e.g. sealed trait) and one of its element.
PPrism stands for Polymorphic Prism as it set and modify methods change a type
AtoBandStoT. Prism is a type alias for PPrism where the type of target cannot be modified:type Prism[S, A] = PPrism[S, S, A, A]A PPrism is also a valid Fold, POptional, PTraversal and PSetter
- S
 the source of a PPrism
- T
 the modified source of a PPrism
- A
 the target of a PPrism
- B
 the modified target of a PPrism
- See also
 
 -   abstract  class PSetter[S, T, A, B] extends Serializable
A PSetter is a generalisation of Functor map:
A PSetter is a generalisation of Functor map:
map: (A => B) => F[A] => F[B]modify: (A => B) => S => T
PSetter stands for Polymorphic Setter as it set and modify methods change a type
AtoBandStoT. Setter is a type alias for PSetter restricted to monomorphic updates:type Setter[S, A] = PSetter[S, S, A, A]PTraversal, POptional, PPrism, PLens and PIso are valid PSetter
- S
 the source of a PSetter
- T
 the modified source of a PSetter
- A
 the target of a PSetter
- B
 the modified target of a PSetter
- See also
 
 -   abstract  class PTraversal[S, T, A, B] extends Serializable
A PTraversal can be seen as a POptional generalised to 0 to n targets where n can be infinite.
A PTraversal can be seen as a POptional generalised to 0 to n targets where n can be infinite.
PTraversal stands for Polymorphic Traversal as it set and modify methods change a type
AtoBandStoT. Traversal is a type alias for PTraversal restricted to monomorphic updates:type Traversal[S, A] = PTraversal[S, S, A, A]- S
 the source of a PTraversal
- T
 the modified source of a PTraversal
- A
 the target of a PTraversal
- B
 the modified target of a PTraversal
- See also
 
 -  type Prism[S, A] = PPrism[S, S, A, A]
 -  sealed abstract class PrismInstances extends AnyRef
 -  final case class PrismSyntax[S, A](self: Prism[S, A]) extends AnyVal with Product with Serializable
 -  type Setter[S, A] = PSetter[S, S, A, A]
 -  sealed abstract class SetterInstances extends AnyRef
 -  type Traversal[S, A] = PTraversal[S, S, A, A]
 -  sealed abstract class TraversalInstances extends AnyRef
 
Value Members
-  object Fold extends FoldInstances with Serializable
 -  object Getter extends GetterInstances with Serializable
 -  object Iso
 -  object Lens
 -  object Monocle extends Syntaxes with GenericOptics with StdInstances
 -  object Optional
 -  object PIso extends IsoInstances with Serializable
 -  object PLens extends LensInstances with Serializable
 -  object POptional extends OptionalInstances with Serializable
 -  object PPrism extends PrismInstances with Serializable
 -  object PSetter extends SetterInstances with Serializable
 -  object PTraversal extends TraversalInstances with Serializable
 -  object Prism
 -  object Setter
 -  object Traversal