~⚬

libretto.lambda.Shuffle.~⚬
See the~⚬ companion object
sealed trait ~⚬[A, B]

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Composed[X, Y]
class Bimap[X1, X2, Y1, Y2]
class Xfer[A1, A2, X1, X2, B1, B2]
trait Id0[A, B]
class Id[X]

Members list

Concise view

Value members

Abstract methods

def apply[F[_]](a: F[A])(using Cartesian[|*|, F]): F[B]
def chaseBw[G[_], X](i: Focus[|*|, G])(using ev: B =:= G[X]): ChaseBwRes[A, G, X]
def chaseFw[F[_], X](i: Focus[|*|, F])(using ev: A =:= F[X]): ChaseFwRes[F, X, B]
def invert: B ~⚬ A
def projectProper[C](p: Proper[|*|, B, C]): ProjectProperRes[A, C]
def translate[<*>[_, _], F[_, _], X](fa: F[A, X])(m: ObjectMap[|*|, <*>, F], sh: Shuffle[<*>]): Exists[[t] =>> (X ~⚬ t, F[B, t])]

Translate to a different product type.

Translate to a different product type.

Attributes

Concrete methods

def >[C](that: B ~⚬ C): A ~⚬ C
def after[Z](that: Z ~⚬ A): Z ~⚬ B
def at[F[_]](f: Focus[|*|, F]): F[A] ~⚬ F[B]
def fold[->[_, _]](using ev: SymmetricSemigroupalCategory[->, |*|]): A -> B
def from[Z](using ev: Z =:= A): Z ~⚬ B
def inFst[C, D](snd: C ~⚬ D): A |*| C ~⚬ B |*| D
def inFst[C]: A |*| C ~⚬ B |*| C
def inSnd[P, Q](fst: P ~⚬ Q): P |*| A ~⚬ Q |*| B
def inSnd[P]: P |*| A ~⚬ P |*| B
def project[C](p: Projection[|*|, B, C]): ProjectRes[A, C]
def to[C](using ev: B =:= C): A ~⚬ C