Swap

libretto.lambda.Shuffle.Transfer.Swap
case class Swap[X1, X2]() extends Transfer[X1, X2, X2, X1]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Transfer[X1, X2, X2, X1]
trait TransferOpt[X1, X2, X2, X1]
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

override def after[Z1, Z2](that: Transfer[Z1, Z2, X1, X2]): (Z1 |*| Z2) ~⚬ (X2 |*| X1)

Attributes

Definition Classes
override def apply[F[_]](a: F[X1 |*| X2])(using F: StrongZippable[|*|, F]): F[X2 |*| X1]

Attributes

Definition Classes
override def assocLR_this_assocRL[X, Y1, Y2](h: AssocRL[X, X2, X1, Y1, Y2]): (X |*| X1 |*| X2) ~⚬ (Y1 |*| Y2 |*| X1)

Attributes

Definition Classes
override def assocLR_this_ixi[P1, P2, Q1, Q2, Q3, Q4](that: IXI[P1, P2, X2, X1, Q1, Q2, Q3, Q4]): (P1 |*| P2 |*| X1 |*| X2) ~⚬ (Q1 |*| Q2 |*| (Q3 |*| Q4))

Attributes

Definition Classes
override def assocLR_this_xi[X, Y2, Y3](h: XI[X, X2, X1, Y2, Y3]): (X |*| X1 |*| X2) ~⚬ (X2 |*| (Y2 |*| Y3))

Attributes

Definition Classes
override def assocRL_this_assocLR[X, Y2, Y3](h: AssocLR[X2, X1, X, Y2, Y3]): (X1 |*| (X2 |*| X)) ~⚬ (X2 |*| (Y2 |*| Y3))

Attributes

Definition Classes
override def assocRL_this_ix[X, Y1, Y2](h: IX[X2, X1, X, Y1, Y2]): (X1 |*| (X2 |*| X)) ~⚬ (Y1 |*| Y2 |*| X1)

Attributes

Definition Classes
override def assocRL_this_ixi[X3, X4, Y1, Y2, Y3, Y4](that: IXI[X2, X1, X3, X4, Y1, Y2, Y3, Y4]): (X1 |*| (X2 |*| (X3 |*| X4))) ~⚬ (Y1 |*| Y2 |*| (Y3 |*| Y4))

Attributes

Definition Classes
override def chaseBwFst[G[_], T](i: Focus[|*|, G])(using ev: X2 =:= G[T]): ChaseBwRes[X1 |*| X2, [t] =>> G[t] |*| X1, T]

Attributes

Definition Classes
override def chaseBwSnd[G[_], T](i: Focus[|*|, G])(using ev: X1 =:= G[T]): ChaseBwRes[X1 |*| X2, [t] =>> X2 |*| G[t], T]

Attributes

Definition Classes
override def chaseFwFst[F[_], T](i: Focus[|*|, F])(using ev: F[T] =:= X1): ChaseFwRes[[t] =>> F[t] |*| X2, T, X2 |*| X1]

Attributes

Definition Classes
override def chaseFwSnd[F[_], T](i: Focus[|*|, F])(using ev: F[T] =:= X2): ChaseFwRes[[t] =>> X1 |*| F[t], T, X2 |*| X1]

Attributes

Definition Classes
override def invert: Xfer[X2, X1, _, _, X1, X2]

Attributes

Definition Classes
override def ix_this_assocLR[X, Y2, Y3](that: AssocLR[X2, X1, X, Y2, Y3]): (X1 |*| X |*| X2) ~⚬ (X2 |*| (Y2 |*| Y3))

Attributes

Definition Classes
override def ix_this_ix[X, Y1, Y2](that: IX[X2, X1, X, Y1, Y2]): (X1 |*| X |*| X2) ~⚬ (Y1 |*| Y2 |*| X1)

Attributes

Definition Classes
override def ix_this_ixi[P1, P2, Q1, Q2, Q3, Q4](that: IXI[X2, X1, P1, P2, Q1, Q2, Q3, Q4]): (X1 |*| (P1 |*| P2) |*| X2) ~⚬ (Q1 |*| Q2 |*| (Q3 |*| Q4))

Attributes

Definition Classes
override def ixiPairWith_:[A1, A2, A3, A4, B1, B2, B3, B4](that: IXI[A1, A2, A3, A4, B1, B2, B3, B4]): BiTransferOpt[A1 |*| A2, A3 |*| A4, X1, X2, B1 |*| B2, B3 |*| B4, X2, X1]

Attributes

Definition Classes
override def ixi_fstThis_assocLR[P1, P2, Q1, Q2, R2, R3](g2: TransferOpt[P1, P2, Q1, Q2], that: AssocLR[X2, X1, Q1 |*| Q2, R2, R3]): (X1 |*| P1 |*| (X2 |*| P2)) ~⚬ (X2 |*| (R2 |*| R3))

Attributes

Definition Classes
override def ixi_sndThis_assocRL[P1, P2, Q1, Q2, R1, R2](g1: TransferOpt[P1, P2, Q1, Q2], that: AssocRL[Q1 |*| Q2, X2, X1, R1, R2]): (P1 |*| X1 |*| (P2 |*| X2)) ~⚬ (R1 |*| R2 |*| X1)

Attributes

Definition Classes
override def ixi_sndThis_xi[P1, P2, Q1, Q2, R2, R3](g1: TransferOpt[P1, P2, Q1, Q2], that: XI[Q1 |*| Q2, X2, X1, R2, R3]): (P1 |*| X1 |*| (P2 |*| X2)) ~⚬ (X2 |*| (R2 |*| R3))

Attributes

Definition Classes
override def nonePairWith_:[A1, A2](that: None[A1, A2]): BiTransferOpt[A1, A2, X1, X2, A1, A2, X2, X1]

Attributes

Definition Classes
override def pairWith[X3, X4, Z1, Z2](that: TransferOpt[X3, X4, Z1, Z2]): BiTransferOpt[X1, X2, X3, X4, X2, X1, Z1, Z2]

Attributes

Definition Classes
override def preShuffle[F[_, _], C](f: F[X2 |*| X1, C])(using F: PairwiseRel[|*|, |*|, F]): Exists[[Q] =>> (F[X1 |*| X2, Q], Q ~⚬ C)]

Attributes

Definition Classes
override def swapPairWith_:[A1, A2](that: Swap[A1, A2]): BiTransferOpt[A1, A2, X1, X2, A2, A1, X2, X1]

Attributes

Definition Classes
override def thenAssocLR[X21, X22, C2, C3](that: AssocLR[X21, X22, X1, C2, C3])(using ev: X2 =:= (X21 |*| X22)): (X1 |*| X2) ~⚬ (X21 |*| (C2 |*| C3))

Attributes

Definition Classes
override def thenAssocRL[X11, X12, C1, C2](that: AssocRL[X2, X11, X12, C1, C2])(using ev: X1 =:= (X11 |*| X12)): (X1 |*| X2) ~⚬ (C1 |*| C2 |*| X12)

Attributes

Definition Classes
override def thenBi[C1, C2](g1: X2 ~⚬ C1, g2: X1 ~⚬ C2): Xfer[X1, X2, _, _, C1, C2]

Attributes

Definition Classes
override def thenIX[B11, B12, C1, C2](that: IX[B11, B12, X1, C1, C2])(using ev: X2 =:= (B11 |*| B12)): (X1 |*| X2) ~⚬ (C1 |*| C2 |*| B12)

Attributes

Definition Classes
override def thenIXI[B1, B2, B3, B4, C1, C2, C3, C4](that: IXI[B1, B2, B3, B4, C1, C2, C3, C4])(using ev1: X2 =:= (B1 |*| B2), ev2: X1 =:= (B3 |*| B4)): (X1 |*| X2) ~⚬ (C1 |*| C2 |*| (C3 |*| C4))

Attributes

Definition Classes
override def thenSwap: (X1 |*| X2) ~⚬ (X1 |*| X2)

Attributes

Definition Classes
override def thenXI[X11, X12, C2, C3](that: XI[X2, X11, X12, C2, C3])(using ev: X1 =:= (X11 |*| X12)): (X1 |*| X2) ~⚬ (X11 |*| (C2 |*| C3))

Attributes

Definition Classes
override def translateLR[<*>[_, _], F[_, _], S1, S2](fx1: F[X1, S1], fx2: F[X2, S2])(m: SemigroupalObjectMap[|*|, <*>, F])(using tgt: Shuffle[<*>]): Exists[[T1] =>> Exists[[T2] =>> (TransferOpt[S1, S2, T1, T2], F[X2, T1], F[X1, T2])]]

Attributes

Definition Classes
override def translateRL[<*>[_, _], F[_, _], T1, T2](fb1: F[X2, T1], fb2: F[X1, T2])(m: SemigroupalObjectMap[|*|, <*>, F])(using tgt: Shuffle[<*>]): Exists[[S1] =>> Exists[[S2] =>> (F[X1, S1], F[X2, S2], TransferOpt[S1, S2, T1, T2])]]

Attributes

Definition Classes
override def xi_this_assocRL[X, Y1, Y2](g: AssocRL[X, X2, X1, Y1, Y2]): (X1 |*| (X |*| X2)) ~⚬ (Y1 |*| Y2 |*| X1)

Attributes

Definition Classes
override def xi_this_ixi[P1, P2, C1, C2, C3, C4](g: IXI[P1, P2, X2, X1, C1, C2, C3, C4]): (X1 |*| (P1 |*| P2 |*| X2)) ~⚬ (C1 |*| C2 |*| (C3 |*| C4))

Attributes

Definition Classes
override def xi_this_xi[X, C2, C3](g: XI[X, X2, X1, C2, C3]): (X1 |*| (X |*| X2)) ~⚬ (X2 |*| (C2 |*| C3))

Attributes

Definition Classes

Inherited methods

def >[C1, C2](that: Transfer[X2, X1, C1, C2]): (X1 |*| X2) ~⚬ (C1 |*| C2)

Attributes

Inherited from:
Transfer
def asShuffle: (X1 |*| X2) ~⚬ (X2 |*| X1)

Attributes

Inherited from:
TransferOpt
final override def chaseBw[G[_], T](i: Focus[|*|, G])(using ev: (X2 |*| X1) =:= G[T]): ChaseBwRes[X1 |*| X2, G, T]

Attributes

Definition Classes
Inherited from:
Transfer
final override def chaseFw[F[_], T](i: Focus[|*|, F])(using ev: F[T] =:= (X1 |*| X2)): ChaseFwRes[F, T, X2 |*| X1]

Attributes

Definition Classes
Inherited from:
Transfer
override def fold[->[_, _]](using ev: SymmetricSemigroupalCategory[->, |*|]): (X1 |*| X2) -> (X2 |*| X1)

Attributes

Definition Classes
Inherited from:
Transfer
def ixi_fstThis_ix[P1, P2, Q1, Q2, R1, R2](g2: TransferOpt[P1, P2, Q1, Q2], that: IX[X2, X1, Q1 |*| Q2, R1, R2]): (X1 |*| P1 |*| (X2 |*| P2)) ~⚬ (R1 |*| R2 |*| X1)

Attributes

Inherited from:
Transfer
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product
def project[C](p: Projection[|*|, X2 |*| X1, C]): ProjectRes[X1 |*| X2, C]

Attributes

Inherited from:
TransferOpt
final override def projectProper[C](p: Proper[|*|, X2 |*| X1, C]): ProjectProperRes[X1 |*| X2, C]

Attributes

Definition Classes
Inherited from:
Transfer
def to[C1, C2](using ev: (X2 |*| X1) =:= (C1 |*| C2)): Transfer[X1, X2, C1, C2]

Attributes

Inherited from:
Transfer
final def translate[<*>[_, _], F[_, _], S](fa: F[X1 |*| X2, S])(m: SemigroupalObjectMap[|*|, <*>, F], tgt: Shuffle[<*>]): Exists[[t] =>> (S ~⚬ t, F[X2 |*| X1, t])]

Attributes

Inherited from:
TransferOpt