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

Members list

Concise view

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: Cartesian[|*|, 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 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])(implicit 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])(implicit 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])(implicit 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: ObjectMap[|*|, <*>, 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: ObjectMap[|*|, <*>, 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_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]): A1 |*| A2 ~⚬ C1 |*| C2

Attributes

Inherited from:
Transfer
def asShuffle: A1 |*| A2 ~⚬ B1 |*| B2

Attributes

Inherited from:
TransferOpt
final override def chaseBw[G[_], T](i: Focus[|*|, G])(using ev: X2 |*| X1 =:= G[T]): ChaseBwRes[A1 |*| A2, 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, B1 |*| B2]

Attributes

Definition Classes
Inherited from:
Transfer
override def fold[->[_, _]](using ev: SymmetricSemigroupalCategory[->, |*|]): A1 |*| A2 -> B1 |*| B2

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]): A1 |*| P1 |*| A2 |*| P2 ~⚬ R1 |*| R2 |*| B2

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[A1 |*| A2, C]

Attributes

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

Attributes

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

Attributes

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

Attributes

Inherited from:
TransferOpt