Par

libretto.lambda.Projection.Par
sealed trait Par[|*|[_, _], P1, P2, Q1, Q2] extends Proper[|*|, P1 |*| P2, Q1 |*| Q2]

Attributes

Graph
Supertypes
trait Proper[|*|, P1 |*| P2, Q1 |*| Q2]
trait Projection[|*|, P1 |*| P2, Q1 |*| Q2]
class Object
trait Matchable
class Any
Known subtypes
class Both[|*|, P1, P2, Q1, Q2]
class Fst[|*|, P, Q, B]
class Snd[|*|, A, P, Q]

Members list

Type members

Inherited classlikes

class FromPair[P1, P2](using ev: P =:= (P1 |*| P2))

Attributes

Inherited from:
Proper
Supertypes
class Object
trait Matchable
class Any

Value members

Concrete methods

override def startsFromPair: Exists[[X1] =>> Exists[[X2] =>> (P1 |*| P2) =:= (X1 |*| X2)]]

Attributes

Definition Classes
def unpar: (Projection[|*|, P1, Q1], Projection[|*|, P2, Q2])

Inherited methods

override def >[R](that: Projection[|*|, Q1 |*| Q2, R]): Proper[|*|, P1 |*| P2, R]

Attributes

Definition Classes
Inherited from:
Proper
override def at[F[_]](f: Focus[|*|, F]): Proper[|*|, F[P1 |*| P2], F[Q1 |*| Q2]]

Attributes

Definition Classes
Inherited from:
Proper
override def from[O](using ev: O =:= (P1 |*| P2)): Proper[|*|, O, Q1 |*| Q2]

Attributes

Definition Classes
Inherited from:
Proper
def fromPair[P1, P2](using (P1 |*| P2) =:= (P1 |*| P2)): FromPair[P1, P2]

Attributes

Inherited from:
Proper
override def inFst[X2]: Proper[|*|, P1 |*| P2 |*| X2, Q1 |*| Q2 |*| X2]

Attributes

Definition Classes
Inherited from:
Proper
override def inSnd[X1]: Proper[|*|, X1 |*| P1 |*| P2, X1 |*| Q1 |*| Q2]

Attributes

Definition Classes
Inherited from:
Proper
def switchFromPair[P1, P2, R](using ev: (P1 |*| P2) =:= (P1 |*| P2))(caseDiscardFst: (p2: Projection[|*|, P2, Q1 |*| Q2]) => R, caseDiscardSnd: (p1: Projection[|*|, P1, Q1 |*| Q2]) => R, casePar: [Q1, Q2] => (x$1: (Q1 |*| Q2) =:= (Q1 |*| Q2)) => (p: Par[|*|, P1, P2, Q1, Q2]) => R)(using BiInjective[|*|]): R

Attributes

Inherited from:
Proper
override def to[R](using ev: (Q1 |*| Q2) =:= R): Proper[|*|, P1 |*| P2, R]

Attributes

Definition Classes
Inherited from:
Proper

Inherited and Abstract methods

protected def discardFst[Q1, Q2](using ev: (Q1 |*| Q2) =:= (Q1 |*| Q2)): Proper[|*|, P1 |*| P2, Q2]

Attributes

Inherited from:
Proper
protected def discardSnd[Q1, Q2](using ev: (Q1 |*| Q2) =:= (Q1 |*| Q2)): Proper[|*|, P1 |*| P2, Q1]

Attributes

Inherited from:
Proper
protected def projectFst[Q1, Q2, R1](using ev: (Q1 |*| Q2) =:= (Q1 |*| Q2))(p1: Proper[|*|, Q1, R1]): Proper[|*|, P1 |*| P2, R1 |*| Q2]

Attributes

Inherited from:
Proper
protected def projectSnd[Q1, Q2, R2](using ev: (Q1 |*| Q2) =:= (Q1 |*| Q2))(p2: Proper[|*|, Q2, R2]): Proper[|*|, P1 |*| P2, Q1 |*| R2]

Attributes

Inherited from:
Proper