SemiSnoc

libretto.lambda.Shuffled.Plated.SemiSnoc
case class SemiSnoc[A, X1, X2, Y2, Z2, B1, B2](init: Plated[A, X1 |*| X2], t: RevTransferOpt[X1, X2, B1, Y2], s: Y2 shuffle.~⚬ Z2, semiLast: Plated[Z2, B2]) extends BiOutput[A, B1, B2]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait BiOutput[A, B1, B2]
trait Plated[A, B1 |*| B2]
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

override def chaseBwFst[G[_], T](i: Focus[|*|, G])(using ev: B1 =:= G[T]): Blocked[A, [x] =>> G[x] |*| B2, T]

Attributes

Definition Classes
override def chaseBwSnd[G[_], T](i: Focus[|*|, G])(using B2 =:= G[T]): Blocked[A, [x] =>> B1 |*| G[x], T]

Attributes

Definition Classes
override def chaseFw[F[_], T](i: Focus[|*|, F])(using A =:= F[T]): Blocked[F, T, B1 |*| B2]

Attributes

Definition Classes
override def discardFst(f: [X, Y, Z] => (x$1: X -> Y, x$2: Projection[|*|, Y, Z]) => ProjectRes[X, Z]): ProjectRes[A, B2]

Attributes

Definition Classes
override def discardSnd(f: [X, Y, Z] => (x$1: X -> Y, x$2: Projection[|*|, Y, Z]) => ProjectRes[X, Z]): ProjectRes[A, B1]

Attributes

Definition Classes
override def foldMap[->>[_, _]](tr: [x, y] => (x$1: x -> y) => ->>[x, y])(using ev: SymmetricSemigroupalCategory[->>, |*|]): A ->> (B1 |*| B2)

Attributes

Definition Classes
override def projectFst[C](p1: Proper[|*|, B1, C], f: [X, Y, Z] => (x$1: X -> Y, x$2: Projection[|*|, Y, Z]) => ProjectRes[X, Z]): ProjectRes[A, C |*| B2]

Attributes

Definition Classes
override def projectSnd[C](p2: Proper[|*|, B2, C], f: [X, Y, Z] => (x$1: X -> Y, x$2: Projection[|*|, Y, Z]) => ProjectRes[X, Z]): ProjectRes[A, B1 |*| C]

Attributes

Definition Classes
override def sweepL[F[_], ->>[_, _]](a: F[A], f: [t, u] => (x$1: F[t], x$2: t -> u) => (->>[t, u], F[u]))(using tgt: With[->>, |*|, shuffle.type], F: StrongZippable[|*|, F]): (tgt.Plated[A, B1 |*| B2], F[B1 |*| B2])

Attributes

Definition Classes
override def translate[->>[_, _], <*>[_, _], F[_, _], S](fa: F[A, S], om: SemigroupalObjectMap[|*|, <*>, F], am: ArrowMap[->, ->>, F])(using tgt: Shuffled[->>, <*>]): Exists[[T] =>> (Plated[S, T], F[B1 |*| B2, T])]

Attributes

Definition Classes
override def traverse[G[_] : Applicative, ->>[_, _]](f: [t, u] => (x$1: t -> u) => G[->>[t, u]])(implicit evidence$1: Applicative[G], tgt: With[->>, |*|, shuffle.type]): G[tgt.Plated[A, B1 |*| B2]]

Attributes

Definition Classes
override def unconsSome: UnconsSomeRes[A, B1 |*| B2]

Attributes

Definition Classes

Inherited methods

def afterPermeable[Z](that: Permeable[Z, A]): Preshuffled[Z, _, B1 |*| B2]

Attributes

Inherited from:
Plated
def asShuffled: Shuffled[A, B1 |*| B2]

Attributes

Inherited from:
Plated
final override def chaseBw[G[_], X](i: Focus[|*|, G])(using ev: (B1 |*| B2) =:= G[X]): Blocked[A, G, X]

Attributes

Definition Classes
Inherited from:
BiOutput
def fold(using ev: SymmetricSemigroupalCategory[->, |*|]): A -> B1 |*| B2

Attributes

Inherited from:
Plated
def impermeable: Impermeable[A, A, B1 |*| B2, B1 |*| B2]

Attributes

Inherited from:
Plated
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product
def project[C](p: Projection[|*|, B1 |*| B2, C], f: [X, Y, Z] => (x$1: X -> Y, x$2: Projection[|*|, Y, Z]) => ProjectRes[X, Z]): ProjectRes[A, C]

Attributes

Inherited from:
Plated
final override def projectProper[C](p: Proper[|*|, B1 |*| B2, C], f: [X, Y, Z] => (x$1: X -> Y, x$2: Projection[|*|, Y, Z]) => ProjectRes[X, Z]): ProjectRes[A, C]

Attributes

Definition Classes
Inherited from:
BiOutput
def thenPermeable[C](that: Permeable[B1 |*| B2, C]): Postshuffled[A, _, C]

Attributes

Inherited from:
Plated
def to[C](using ev: (B1 |*| B2) =:= C): Plated[A, C]

Attributes

Inherited from:
Plated