Xfer

libretto.lambda.Shuffle.~⚬.Xfer
case class Xfer[A1, A2, X1, X2, B1, B2](f1: A1 ~⚬ X1, f2: A2 ~⚬ X2, transfer: Transfer[X1, X2, B1, B2]) extends Composed[A1 |*| A2, B1 |*| B2]

An operator that transfers resources across inputs.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Composed[A1 |*| A2, B1 |*| B2]
trait (A1 |*| A2) ~⚬ (B1 |*| B2)
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

override def apply[F[_]](a: F[A1 |*| A2])(using F: StrongZippable[|*|, F]): F[B1 |*| B2]

Attributes

Definition Classes
override def chaseBw[G[_], T](i: Focus[|*|, G])(using ev: (B1 |*| B2) =:= G[T]): ChaseBwRes[A1 |*| A2, G, T]

Attributes

Definition Classes
override def chaseFw[F[_], T](i: Focus[|*|, F])(using ev: (A1 |*| A2) =:= F[T]): ChaseFwRes[F, T, B1 |*| B2]

Attributes

Definition Classes
override def preShuffle[F[_, _], C](f: F[B1 |*| B2, C])(using F: PairwiseRel[|*|, |*|, F]): Exists[[X] =>> (F[A1 |*| A2, X], X ~⚬ C)]

Attributes

Definition Classes
override def projectProper[C](p: Proper[|*|, B1 |*| B2, C]): ProjectProperRes[A1 |*| A2, C]

Attributes

Definition Classes
override def proveId(inputIsAtomic: [x, y] => ((A1 |*| A2) =:= (x |*| y)) => Nothing): (A1 |*| A2) =:= (B1 |*| B2)

Attributes

Definition Classes
override def translate[<*>[_, _], F[_, _], S](fa: F[A1 |*| A2, S])(m: SemigroupalObjectMap[|*|, <*>, F], sh: Shuffle[<*>]): Exists[[t] =>> (S ~⚬ t, F[B1 |*| B2, t])]

Translate to a different product type.

Translate to a different product type.

Attributes

Definition Classes

Inherited methods

def >[C](that: (B1 |*| B2) ~⚬ C): A1 |*| A2 ~⚬ C

Attributes

Inherited from:
~⚬
def after[Z](that: Z ~⚬ (A1 |*| A2)): Z ~⚬ B1 |*| B2

Attributes

Inherited from:
~⚬
def at[F[_]](f: Focus[|*|, F]): F[A1 |*| A2] ~⚬ F[B1 |*| B2]

Attributes

Inherited from:
~⚬
def fold[->[_, _]](using ev: SymmetricSemigroupalCategory[->, |*|]): A1 |*| A2 -> B1 |*| B2

Attributes

Inherited from:
~⚬
def from[Z](using ev: Z =:= (A1 |*| A2)): Z ~⚬ B1 |*| B2

Attributes

Inherited from:
~⚬
def inFst[C]: (A1 |*| A2 |*| C) ~⚬ (B1 |*| B2 |*| C)

Attributes

Inherited from:
~⚬
def inFst[C, D](snd: C ~⚬ D): (A1 |*| A2 |*| C) ~⚬ (B1 |*| B2 |*| D)

Attributes

Inherited from:
~⚬
def inSnd[P]: (P |*| A1 |*| A2) ~⚬ (P |*| B1 |*| B2)

Attributes

Inherited from:
~⚬
def inSnd[P, Q](fst: P ~⚬ Q): (P |*| A1 |*| A2) ~⚬ (Q |*| B1 |*| B2)

Attributes

Inherited from:
~⚬
override def invert: Composed[B1 |*| B2, A1 |*| A2]

Attributes

Definition Classes
Inherited from:
Composed
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product
def project[C](p: Projection[|*|, B1 |*| B2, C]): ProjectRes[A1 |*| A2, C]

Attributes

Inherited from:
~⚬
def proveIdBw(outputIsAtomic: [x, y] => ((B1 |*| B2) =:= (x |*| y)) => Nothing): A1 |*| A2 =:= B1 |*| B2

Attributes

Inherited from:
~⚬
def to[C](using ev: (B1 |*| B2) =:= C): A1 |*| A2 ~⚬ C

Attributes

Inherited from:
~⚬