Shuffled

libretto.lambda.Shuffled
See theShuffled companion object
sealed abstract class Shuffled[->[_, _], |*|[_, _]](using x$1: BiInjective[|*|]) extends ShuffledModule[->, |*|]

Attributes

Companion
object
Graph
Supertypes
trait ShuffledModule[->, |*|]
class Object
trait Matchable
class Any

Members list

Type members

Classlikes

case class Impermeable[A, X, Y, B](l: A shuffle.~⚬ X, m: Plated[X, Y], r: Y shuffle.~⚬ B) extends Shuffled[A, B]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Shuffled[A, B]
class Object
trait Matchable
class Any
Show all
object Permeable

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Permeable.type
sealed trait Permeable[A, B] extends Shuffled[A, B]

Attributes

Companion
object
Supertypes
trait Shuffled[A, B]
class Object
trait Matchable
class Any
Known subtypes
class Pure[A, B]
class SemiObstructed[A, X1, X2, Y2, Z2, B1, B2]
object Plated

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Plated.type
sealed trait Plated[A, B]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait BiInput[A1, A2, B]
class SemiCons[A1, A2, X2, Y2, Z1, Z2, B]
class Stacked[A1, A2, B1, B2]
class XI[A1, A2, P1, P2, Q, R, S1, S2, B1, B2]
trait BiOutput[A, B1, B2]
class SemiSnoc[A, X1, X2, Y2, Z2, B1, B2]
class Sandwich[A, X, Y, B]
class Solid[A, B]
Show all
object Punched extends PunchedCompanion

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Punched.type
override trait Punched[F[_], G[_]]

A Shuffled with a hole through it.

A Shuffled with a hole through it.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Self type
Punched[F, G]
case class Pure[A, B](s: A shuffle.~⚬ B) extends Permeable[A, B]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Permeable[A, B]
trait Shuffled[A, B]
class Object
trait Matchable
class Any
Show all
case class RevDecomposition1[X, X1, X2, Y1, Y2, Z1, Z2](ev: X =:= (X1 |*| X2), t: RevTransferOpt[X1, X2, Y1, Y2], g1: Y1 shuffle.~⚬ Z1, g2: Y2 shuffle.~⚬ Z2)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class RevTransferOpt[A1, A2, B1, B2](t: shuffle.TransferOpt[B1, B2, A1, A2])

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class SemiObstructed[A, X1, X2, Y2, Z2, B1, B2](left: A shuffle.~⚬ (X1 |*| X2), bottom1: Plated[X2, Y2], bottom2: Y2 shuffle.~⚬ Z2, right: shuffle.TransferOpt[X1, Z2, B1, B2]) extends Permeable[A, B1 |*| B2]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Permeable[A, B1 |*| B2]
trait Shuffled[A, B1 |*| B2]
class Object
trait Matchable
class Any
Show all
sealed trait Shuffled[A, B]

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Impermeable[A, X, Y, B]
trait Permeable[A, B]
class Pure[A, B]
class SemiObstructed[A, X1, X2, Y2, Z2, B1, B2]
enum UnconsSomeRes[A, B]

Attributes

Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Known subtypes
class Cons[A, F, X, Y, B]

Inherited classlikes

object ChaseBwRes

Attributes

Inherited from:
ShuffledModule
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
sealed trait ChaseBwRes[A, G[_], X]

Attributes

Inherited from:
ShuffledModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Blocked[A, G, X]
class OriginatesFrom[A, F, V, W, X, G]
class Split[A, G, X, X1, X2]
class Transported[A, F, G, X]
object ChaseFwRes

Attributes

Inherited from:
ShuffledModule
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
sealed trait ChaseFwRes[F[_], X, B]

Attributes

Inherited from:
ShuffledModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Blocked[F, X, B]
class FedTo[F, X, V, W, G, B]
class Split[F, X, X1, X2, B]
class Transported[F, X, G, B]
enum ProjectRes[A, C]

Attributes

Inherited from:
ShuffledModule
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Known subtypes
class Projected[A0, A, C]
object ProjectRes

Attributes

Inherited from:
ShuffledModule
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any

Attributes

Inherited from:
ShuffledModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Punched

Attributes

Inherited from:
ShuffledModule
Supertypes
class Object
trait Matchable
class Any
Show all

Value members

Concrete methods

def absorbSnd[F[_], X, Y](i: Focus[|*|, F]): Shuffled[F[X] |*| Y, F[X |*| Y]]
override def andThen[A, B, C](f: Shuffled[A, B], g: Shuffled[B, C]): Shuffled[A, C]

Attributes

Definition Classes
def assocLR[X, Y, Z]: Shuffled[X |*| Y |*| Z, X |*| (Y |*| Z)]
def assocRL[X, Y, Z]: Shuffled[X |*| (Y |*| Z), X |*| Y |*| Z]
def extractSnd[F[_], X, Y](i: Focus[|*|, F]): Shuffled[F[X |*| Y], F[X] |*| Y]
def fromForest[X, Y](f: AForest[->, |*|, X, Y]): Shuffled[X, Y]
def fst[X, Y, Z](f: Shuffled[X, Y]): Shuffled[X |*| Z, Y |*| Z]
def id[X]: Shuffled[X, X]
def id[X, Y](using ev: X =:= Y): Shuffled[X, Y]
def ix[X, Y, Z]: Shuffled[X |*| Y |*| Z, X |*| Z |*| Y]
def ixi[W, X, Y, Z]: Shuffled[W |*| X |*| (Y |*| Z), W |*| Y |*| (X |*| Z)]
def lift[X, Y](f: X -> Y): Shuffled[X, Y]
def par[X1, X2, Y1, Y2](f1: Shuffled[X1, Y1], f2: Shuffled[X2, Y2]): Shuffled[X1 |*| X2, Y1 |*| Y2]
def pure[X, Y](f: X shuffle.~⚬ Y): Shuffled[X, Y]
def revDecompose1[X, Z1, Z2](f: X shuffle.~⚬ (Z1 |*| Z2)): RevDecomposition1[X, _, _, _, _, Z1, Z2]
def snd[X, Y, Z](f: Shuffled[Y, Z]): Shuffled[X |*| Y, X |*| Z]
def swap[X, Y]: Shuffled[X |*| Y, Y |*| X]
def xi[X, Y, Z]: Shuffled[X |*| (Y |*| Z), Y |*| (X |*| Z)]

Abstract fields

val shuffle: Shuffle[|*|]

Givens

Inherited and Abstract givens

Attributes

Inherited from:
ShuffledModule

Extensions

Extensions

extension [A, B](f: Shuffled[A, B])
def chaseBw[G[_], X](i: Focus[|*|, G])(using B =:= G[X]): ChaseBwRes[A, G, X]
def chaseFw[F[_], X](i: Focus[|*|, F])(using A =:= F[X]): ChaseFwRes[F, X, B]
override def foldMap[->>[_, _]](h: [x, y] => (x -> y) => ->>[x, y])(using SymmetricSemigroupalCategory[->>, |*|]): A ->> B

Attributes

Definition Classes
override def project[C](p: Projection[|*|, B, C], h: [X, Y, Z] => (x$1: X -> Y, x$2: Projection[|*|, Y, Z]) => ProjectRes[X, Z]): ProjectRes[A, C]

Attributes

Definition Classes
override def takeLeadingForestAtWhile[F[_], X, ->>[_, _]](pos: Focus[|*|, F], pred: [x, y] => (x -> y) => Option[->>[x, y]])(using A =:= F[X]): Exists[[Y] =>> (AForest[->>, |*|, X, Y], Shuffled[F[Y], B])]

Extracts the maximum forest-shaped prefix at the given position satisfying the given predicate.

Extracts the maximum forest-shaped prefix at the given position satisfying the given predicate.

Attributes

Definition Classes
extension [F[_], G[_]](p: Punched[F, G])
override def focusIn: Focus[|*|, F]

Attributes

Definition Classes
override def focusOut: Focus[|*|, G]

Attributes

Definition Classes
override def knitBw(k: Knit[|*|, G]): Exists[[F0] =>> (Knitted[|*|, F, F0], Shuffled[F0, k.Res])]

Attributes

Definition Classes
override def plug[X]: Shuffled[F[X], G[X]]

Attributes

Definition Classes

Inherited extensions

extension [A, B](f: Shuffled[A, B])
def fold(using SymmetricSemigroupalCategory[->, |*|]): A -> B

Attributes

Inherited from:
ShuffledModule
def foldMapA[G[_], ->>[_, _]](h: [t, u] => (t -> u) => G[->>[t, u]])(using G: Applicative[G], cat: SymmetricSemigroupalCategory[->>, |*|]): G[A ->> B]

Attributes

Inherited from:
ShuffledModule
def takeLeadingForestAt[F[_], X](pos: Focus[|*|, F])(using ev: A =:= F[X]): Exists[[Y] =>> (AForest[->, |*|, X, Y], Shuffled[F[Y], B])]

Extracts the maximum forest-shaped prefix at the given position.

Extracts the maximum forest-shaped prefix at the given position.

Attributes

Inherited from:
ShuffledModule
extension [F[_], G[_]](p: Punched[F, G])
def >[H[_]](that: Punched[G, H]): Punched[F, H]

Attributes

Inherited from:
ShuffledModule
def after[H[_]](H: Focus[|*|, H], h: [x] => DummyImplicit ?=> Shuffled[H[x], F[x]]): Punched[H, G]

Attributes

Inherited from:
ShuffledModule
def andThen[H[_]](H: Focus[|*|, H], h: [x] => DummyImplicit ?=> Shuffled[G[x], H[x]]): Punched[F, H]

Attributes

Inherited from:
ShuffledModule
def inFst[P]: Punched[[x] =>> F[x] |*| P, [x] =>> G[x] |*| P]

Attributes

Inherited from:
ShuffledModule
def inFst[P, Q](g: Shuffled[P, Q]): Punched[[x] =>> F[x] |*| P, [x] =>> G[x] |*| Q]

Attributes

Inherited from:
ShuffledModule
def inSnd[P]: Punched[[x] =>> P |*| F[x], [x] =>> P |*| G[x]]

Attributes

Inherited from:
ShuffledModule
def inSnd[P, Q](f: Shuffled[P, Q]): Punched[[x] =>> P |*| F[x], [x] =>> Q |*| G[x]]

Attributes

Inherited from:
ShuffledModule