ReadCompose

dev.constructive.eo.compose.ReadCompose
See theReadCompose companion object
trait ReadCompose[F[_, _], G[_, _]]

Read-side composition across the read/write seam — the join that AssociativeFunctor (which needs B-threading on a shared carrier) structurally cannot express. Composes the READ halves of two optics, ignoring both write sides, and lands at the read-only join of their strengths:

 total   ∘ total   = Getter        (Accessor ∘ Accessor)
 total   ∘ partial = AffineFold    (any mix involving a PartialAccessor)
 partial ∘ total   = AffineFold
 partial ∘ partial = AffineFold
 many on either side = Fold        (ForgetfulFold fallback, List-backed)

Drives the read-collapse andThen members: the Optic trait's any-outer ∘ read-only-inner overload and the read-only-outer ∘ any-inner members on optics.Getter / optics.PickFold / optics.ForgetFold. Instances live in this companion, so they are in implicit scope for every carrier pair with no import.

Type parameters

F

outer optic's carrier

G

inner optic's carrier

Attributes

Companion
object
Source
ReadCompose.scala
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Type members

Types

type Out[_, _]

Concrete read-only optic family the composite lands in — Getter, PickFold, or ForgetFold[*, List, *]; concrete so collapsed chains keep collapsing through the fused members.

Concrete read-only optic family the composite lands in — Getter, PickFold, or ForgetFold[*, List, *]; concrete so collapsed chains keep collapsing through the fused members.

Attributes

Source
ReadCompose.scala

Value members

Abstract methods

def compose[S, T, A, B, V, C, D](outer: Optic[S, T, A, B, F], inner: Optic[A, V, C, D, G]): Out[S, C]

Attributes

Source
ReadCompose.scala