scalaz

LensFamily

sealed trait LensFamily[-A1, +A2, +B1, -B2] extends AnyRef

A Lens Family, offering a purely functional means to access and retrieve a field transitioning from type B1 to type B2 in a record simultaneously transitioning from type A1 to type A2. scalaz.Lens is a convenient alias for when F =:= Id, A1 =:= A2, and B1 =:= B2.

The term field should not be interpreted restrictively to mean a member of a class. For example, a lens family can address membership of a Set.

A1

The initial type of the record

A2

The final type of the record

B1

The initial type of the field

B2

The final type of the field

Source
Lens.scala
See also

scalaz.PLens

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. LensFamily
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. trait LensLaw extends AnyRef

Abstract Value Members

  1. abstract def run(a: A1): IndexedStore[B1, B2, A2]

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. def %%=[C](s: IndexedState[B1, B2, C]): IndexedState[A1, A2, C]

  5. def %=[B <: B2](f: (B1) ⇒ B): IndexedState[A1, A2, B]

    Modify the portion of the state viewed through the lens and return its new value.

  6. def %==(f: (B1) ⇒ B2): IndexedState[A1, A2, Unit]

    Modify the portion of the state viewed through the lens, but do not return its new value.

  7. def ***[C1, C2, D1, D2](that: LensFamily[C1, C2, D1, D2]): LensFamily[(A1, C1), (A2, C2), (B1, D1), (B2, D2)]

    alias for product

  8. def ->>-[C, X1 <: A1, X2 >: A2](f: ⇒ IndexedState[X1, X2, C]): IndexedState[X1, X2, C]

    Sequence the monadic action of looking through the lens to occur before the state action f.

  9. def :=[B <: B2](b: ⇒ B): IndexedState[A1, A2, B]

    Set the portion of the state viewed through the lens and return its new value.

  10. def <=<[C1, C2](that: LensFamily[C1, C2, A1, A2]): LensFamily[C1, C2, B1, B2]

    alias for compose

  11. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  12. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  13. def =>=(f: (B1) ⇒ B2): (A1) ⇒ A2

  14. def =>>=[X[+_]](f: (B1) ⇒ X[B2])(implicit XF: Functor[X]): (A1) ⇒ X[A2]

  15. def >-[C, A <: A1](f: (B1) ⇒ C): State[A, C]

    Map the function f over the value under the lens, as a state action.

  16. def >=>[C1, C2](that: LensFamily[B1, B2, C1, C2]): LensFamily[A1, A2, C1, C2]

    alias for andThen

  17. def >>-[C, X1 <: A1, X2 >: A2](f: (B1) ⇒ IndexedState[X1, X2, C]): IndexedState[X1, X2, C]

    Bind the function f over the value under the lens, as a state action.

  18. def andThen[C1, C2](that: LensFamily[B1, B2, C1, C2]): LensFamily[A1, A2, C1, C2]

  19. def apply(a: A1): IndexedStore[B1, B2, A2]

  20. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  21. def assign[B <: B2](b: ⇒ B): IndexedState[A1, A2, B]

    Set the portion of the state viewed through the lens and return its new value.

  22. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. def compose[C1, C2](that: LensFamily[C1, C2, A1, A2]): LensFamily[C1, C2, B1, B2]

    Lenses can be composed

  24. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  25. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  26. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  27. def flatMap[C, X1 <: A1, X2 >: A2](f: (B1) ⇒ IndexedState[X1, X2, C]): IndexedState[X1, X2, C]

    Bind the function f over the value under the lens, as a state action.

  28. def get(a: A1): B1

  29. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  30. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  31. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  32. def lensLaw: LensLaw

  33. def lifts[C](s: IndexedState[B1, B2, C]): IndexedState[A1, A2, C]

    Contravariantly map a state action through a lens.

  34. def liftsNT: ~>[[+x]IndexedStateT[[+X]X, B1, B2, x], [+x]IndexedStateT[[+X]X, A1, A2, x]]

    Contravariantly mapping the state of a state monad through a lens is a natural transformation

  35. def map[C, A <: A1](f: (B1) ⇒ C): State[A, C]

    Map the function f over the lens as a state action.

  36. def mod(f: (B1) ⇒ B2, a: A1): A2

    Modify the value viewed through the lens

  37. def modf[X[+_]](f: (B1) ⇒ X[B2], a: A1)(implicit XF: Functor[X]): X[A2]

    Modify the value viewed through the lens, returning a functor X full of results.

  38. def modp[C](f: (B1) ⇒ (B2, C), a: A1): (A2, C)

    Modify the value viewed through the lens, returning a C on the side.

  39. def mods[B <: B2](f: (B1) ⇒ B): IndexedState[A1, A2, B]

    Modify the portion of the state viewed through the lens and return its new value.

  40. def mods_(f: (B1) ⇒ B2): IndexedState[A1, A2, Unit]

    Modify the portion of the state viewed through the lens, but do not return its new value.

  41. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  42. final def notify(): Unit

    Definition Classes
    AnyRef
  43. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  44. def partial: PLensFamily[A1, A2, B1, B2]

    A homomorphism of lens categories

  45. def product[C1, C2, D1, D2](that: LensFamily[C1, C2, D1, D2]): LensFamily[(A1, C1), (A2, C2), (B1, D1), (B2, D2)]

    Two disjoint lenses can be paired

  46. def set(a: A1, b: B2): A2

  47. def st[A <: A1]: State[A, B1]

  48. def sum[C1, C2, B1m >: B1, B2m <: B2](that: ⇒ LensFamily[C1, C2, B1m, B2m]): LensFamily[\/[A1, C1], \/[A2, C2], B1m, B2m]

    Two lenses that view a value of the same type can be joined

  49. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  50. def toString(): String

    Definition Classes
    AnyRef → Any
  51. def unary_~: PLensFamily[A1, A2, B1, B2]

    alias for partial

  52. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  53. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  54. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  55. def xmapA[X1, X2](f: (A2) ⇒ X2)(g: (X1) ⇒ A1): LensFamily[X1, X2, B1, B2]

  56. def xmapB[X1, X2](f: (B1) ⇒ X1)(g: (X2) ⇒ B2): LensFamily[A1, A2, X1, X2]

  57. def xmapbA[X, A >: A2 <: A1](b: BijectionT.Bijection[A, X]): LensFamily[X, X, B1, B2]

  58. def xmapbB[X, B >: B1 <: B2](b: BijectionT.Bijection[B, X]): LensFamily[A1, A2, X, X]

  59. def |||[C1, C2, A1m <: A1, A2m >: A2, B1m >: B1, B2m <: B2](that: ⇒ LensFamily[C1, C2, B1m, B2m]): LensFamily[\/[A1, C1], \/[A2, C2], B1m, B2m]

    Alias for sum

Inherited from AnyRef

Inherited from Any

Ungrouped