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
- Known subtypes
Members list
Value members
Abstract methods
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 assocRL_this_assocLR[X, Y2, Y3](h: AssocLR[B1, B2, X, Y2, Y3]): (A1 |*| (A2 |*| X)) ~⚬ (B1 |*| (Y2 |*| Y3))
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 ix_this_assocLR[X, Y2, Y3](that: AssocLR[B1, B2, X, Y2, Y3]): (A1 |*| X |*| A2) ~⚬ (B1 |*| (Y2 |*| Y3))
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))
infix def thenAssocLR[B11, B12, C2, C3](that: AssocLR[B11, B12, B2, C2, C3])(using ev: B1 =:= (B11 |*| B12)): (A1 |*| A2) ~⚬ (B11 |*| (C2 |*| C3))
infix def thenAssocRL[B21, B22, C1, C2](that: AssocRL[B1, B21, B22, C1, C2])(using ev: B2 =:= (B21 |*| B22)): (A1 |*| A2) ~⚬ (C1 |*| C2 |*| B22)
def xi_this_assocRL[X, Y1, Y2](g: AssocRL[X, B1, B2, Y1, Y2]): (A1 |*| (X |*| A2)) ~⚬ (Y1 |*| Y2 |*| B2)
def xi_this_ixi[P1, P2, C1, C2, C3, C4](g: IXI[P1, P2, B1, B2, C1, C2, C3, C4]): (A1 |*| (P1 |*| P2 |*| A2)) ~⚬ (C1 |*| C2 |*| (C3 |*| C4))
Concrete methods
final override def chaseBw[G[_], T](i: Focus[|*|, G])(using ev: (B1 |*| B2) =:= G[T]): ChaseBwRes[A1 |*| A2, G, T]
Attributes
- Definition Classes
final override def chaseFw[F[_], T](i: Focus[|*|, F])(using ev: F[T] =:= (A1 |*| A2)): ChaseFwRes[F, T, B1 |*| B2]
Attributes
- Definition Classes
override def fold[->[_, _]](using ev: SymmetricSemigroupalCategory[->, |*|]): (A1 |*| A2) -> (B1 |*| B2)
Attributes
- Definition Classes
def ixi_fstThis_ix[P1, P2, Q1, Q2, R1, R2](g2: TransferOpt[P1, P2, Q1, Q2], that: IX[B1, B2, Q1 |*| Q2, R1, R2]): (A1 |*| P1 |*| (A2 |*| P2)) ~⚬ (R1 |*| R2 |*| B2)
Attributes
- Definition Classes
Inherited methods
Attributes
- Inherited from:
- TransferOpt
Attributes
- Inherited from:
- TransferOpt
final def translate[<*>[_, _], F[_, _], S](fa: F[A1 |*| A2, S])(m: SemigroupalObjectMap[|*|, <*>, F], tgt: Shuffle[<*>]): Exists[[t] =>> (S ~⚬ t, F[B1 |*| B2, t])]
Attributes
- Inherited from:
- TransferOpt
Inherited and Abstract methods
Attributes
- Inherited from:
- TransferOpt
def chaseBwFst[G[_], T](i: Focus[|*|, G])(using B1 =:= G[T]): ChaseBwRes[A1 |*| A2, [t] =>> G[t] |*| B2, T]
Attributes
- Inherited from:
- TransferOpt
def chaseBwSnd[G[_], T](i: Focus[|*|, G])(using B2 =:= G[T]): ChaseBwRes[A1 |*| A2, [t] =>> B1 |*| G[t], T]
Attributes
- Inherited from:
- TransferOpt
def chaseFwFst[F[_], T](i: Focus[|*|, F])(using F[T] =:= A1): ChaseFwRes[[t] =>> F[t] |*| A2, T, B1 |*| B2]
Attributes
- Inherited from:
- TransferOpt
def chaseFwSnd[F[_], T](i: Focus[|*|, F])(using F[T] =:= A2): ChaseFwRes[[t] =>> A1 |*| F[t], T, 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
Attributes
- Inherited from:
- TransferOpt
infix 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 preShuffle[F[_, _], C](f: F[B1 |*| B2, C])(using PairwiseRel[|*|, |*|, F]): Exists[[Q] =>> (F[A1 |*| A2, Q], Q ~⚬ C)]
Attributes
- Inherited from:
- TransferOpt
Attributes
- Inherited from:
- TransferOpt
def translateLR[<*>[_, _], F[_, _], S1, S2](fa1: F[A1, S1], fa2: F[A2, S2])(m: SemigroupalObjectMap[|*|, <*>, F])(using tgt: Shuffle[<*>]): Exists[[T1] =>> Exists[[T2] =>> (TransferOpt[S1, S2, T1, T2], F[B1, T1], F[B2, T2])]]
Attributes
- Inherited from:
- TransferOpt
def translateRL[<*>[_, _], F[_, _], T1, T2](fb1: F[B1, T1], fb2: F[B2, T2])(m: SemigroupalObjectMap[|*|, <*>, F])(using tgt: Shuffle[<*>]): Exists[[S1] =>> Exists[[S2] =>> (F[A1, S1], F[A2, S2], TransferOpt[S1, S2, T1, T2])]]
Attributes
- Inherited from:
- TransferOpt
In this article