Transfer

libretto.lambda.Shuffle.Transfer
See theTransfer companion object
sealed trait Transfer[A1, A2, B1, B2] extends TransferOpt[A1, A2, B1, B2]

Attributes

Companion:
object
Graph
Supertypes
trait TransferOpt[A1, A2, B1, B2]
class Object
trait Matchable
class Any
Known subtypes
class AssocLR[A1, A2, A3, B2, B3]
class AssocRL[A1, A2, A3, B1, B2]
class IX[A1, A2, A3, B1, B2]
class IXI[A1, A2, A3, A4, B1, B2, B3, B4]
class Swap[X1, X2]
class XI[A1, A2, A3, B2, B3]

Members list

Concise view

Value members

Abstract methods

def after[Z1, Z2](that: Transfer[Z1, Z2, A1, A2]): Z1 |*| Z2 ~⚬ B1 |*| B2
def assocLR_this_assocRL[X, Y1, Y2](h: AssocRL[X, B1, B2, Y1, Y2]): X |*| A1 |*| A2 ~⚬ Y1 |*| Y2 |*| B2
def assocLR_this_ixi[P1, P2, Q1, Q2, Q3, Q4](that: IXI[P1, P2, B1, B2, Q1, Q2, Q3, Q4]): P1 |*| P2 |*| A1 |*| A2 ~⚬ Q1 |*| Q2 |*| Q3 |*| Q4
def assocLR_this_xi[X, Y2, Y3](h: XI[X, B1, B2, Y2, Y3]): X |*| A1 |*| A2 ~⚬ B1 |*| Y2 |*| Y3
def assocRL_this_assocLR[X, Y2, Y3](h: AssocLR[B1, B2, X, Y2, Y3]): A1 |*| A2 |*| X ~⚬ B1 |*| Y2 |*| Y3
def assocRL_this_ix[X, Y1, Y2](h: IX[B1, B2, X, Y1, Y2]): A1 |*| A2 |*| X ~⚬ Y1 |*| Y2 |*| B2
def assocRL_this_ixi[X1, X2, Y1, Y2, Y3, Y4](h: IXI[B1, B2, X1, X2, Y1, Y2, Y3, Y4]): A1 |*| A2 |*| X1 |*| X2 ~⚬ Y1 |*| Y2 |*| Y3 |*| Y4
def invert: Xfer[B1, B2, _, _, A1, A2]
def ix_this_assocLR[X, Y2, Y3](that: AssocLR[B1, B2, X, Y2, Y3]): A1 |*| X |*| A2 ~⚬ B1 |*| Y2 |*| Y3
def ix_this_ix[X, Y1, Y2](that: IX[B1, B2, X, Y1, Y2]): A1 |*| X |*| A2 ~⚬ Y1 |*| Y2 |*| B2
def ix_this_ixi[P1, P2, Q1, Q2, Q3, Q4](that: IXI[B1, B2, P1, P2, Q1, Q2, Q3, Q4]): A1 |*| P1 |*| P2 |*| A2 ~⚬ Q1 |*| Q2 |*| Q3 |*| Q4
def ixi_fstThis_assocLR[P1, P2, Q1, Q2, R2, R3](g2: TransferOpt[P1, P2, Q1, Q2], that: AssocLR[B1, B2, Q1 |*| Q2, R2, R3]): A1 |*| P1 |*| A2 |*| P2 ~⚬ B1 |*| R2 |*| R3
def ixi_sndThis_assocRL[P1, P2, Q1, Q2, R1, R2](g1: TransferOpt[P1, P2, Q1, Q2], that: AssocRL[Q1 |*| Q2, B1, B2, R1, R2]): P1 |*| A1 |*| P2 |*| A2 ~⚬ R1 |*| R2 |*| B2
def ixi_sndThis_xi[P1, P2, Q1, Q2, R2, R3](g1: TransferOpt[P1, P2, Q1, Q2], that: XI[Q1 |*| Q2, B1, B2, R2, R3]): P1 |*| A1 |*| P2 |*| A2 ~⚬ B1 |*| R2 |*| R3
def thenAssocLR[B11, B12, C2, C3](that: AssocLR[B11, B12, B2, C2, C3])(implicit ev: B1 =:= B11 |*| B12): A1 |*| A2 ~⚬ B11 |*| C2 |*| C3
def thenAssocRL[B21, B22, C1, C2](that: AssocRL[B1, B21, B22, C1, C2])(using ev: B2 =:= B21 |*| B22): A1 |*| A2 ~⚬ C1 |*| C2 |*| B22
def thenBi[C1, C2](g1: B1 ~⚬ C1, g2: B2 ~⚬ C2): Xfer[A1, A2, _, _, C1, C2]
def thenIX[B11, B12, C1, C2](that: IX[B11, B12, B2, C1, C2])(using ev: B1 =:= B11 |*| B12): A1 |*| A2 ~⚬ C1 |*| C2 |*| B12
def thenIXI[B11, B12, B21, B22, C1, C2, C3, C4](that: IXI[B11, B12, B21, B22, C1, C2, C3, C4])(implicit ev1: B1 =:= B11 |*| B12, ev2: B2 =:= B21 |*| B22): A1 |*| A2 ~⚬ C1 |*| C2 |*| C3 |*| C4
def thenSwap: A1 |*| A2 ~⚬ B2 |*| B1
def thenXI[B21, B22, C2, C3](that: XI[B1, B21, B22, C2, C3])(implicit ev: B2 =:= B21 |*| B22): A1 |*| A2 ~⚬ B21 |*| C2 |*| C3
def xi_this_assocRL[X, Y1, Y2](g: AssocRL[X, B1, B2, Y1, Y2]): A1 |*| X |*| A2 ~⚬ Y1 |*| Y2 |*| B2
def xi_this_xi[X, C2, C3](g: XI[X, B1, B2, C2, C3]): A1 |*| X |*| A2 ~⚬ B1 |*| C2 |*| C3

Concrete methods

def >[C1, C2](that: Transfer[B1, B2, C1, C2]): A1 |*| A2 ~⚬ C1 |*| C2
override def fold[->[_, _]](using ev: SymmetricSemigroupalCategory[->, |*|]): A1 |*| A2 -> B1 |*| B2

Attributes

Definition Classes
def to[C1, C2](implicit ev: B1 |*| B2 =:= C1 |*| C2): Transfer[A1, A2, C1, C2]

Inherited methods

def asShuffle: A1 |*| A2 ~⚬ B1 |*| B2

Attributes

Inherited from:
TransferOpt
def ixiPairWith_:[X1, X2, X3, X4, Y1, Y2, Y3, Y4](that: IXI[X1, X2, X3, X4, Y1, Y2, Y3, Y4]): BiTransferOpt[X1 |*| X2, X3 |*| X4, A1, A2, Y1 |*| Y2, Y3 |*| Y4, B1, B2]

Attributes

Inherited from:
TransferOpt
def nonePairWith_:[X1, X2](that: None[X1, X2]): BiTransferOpt[X1, X2, A1, A2, X1, X2, B1, B2]

Attributes

Inherited from:
TransferOpt
def pairWith[X3, X4, Z1, Z2](that: TransferOpt[X3, X4, Z1, Z2]): BiTransferOpt[A1, A2, X3, X4, B1, B2, Z1, Z2]

Attributes

Inherited from:
TransferOpt
def swapPairWith_:[X1, X2](that: Swap[X1, X2]): BiTransferOpt[X1, X2, A1, A2, X2, X1, B1, B2]

Attributes

Inherited from:
TransferOpt